一、什么是性能测试
性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
二、为什么要做性能测试
- 获取系统性能的指标,作为性能指标的基准
- 验证系统的性能指标是否达到需求(性能需求)
- 应用程序是否能够满足系统要求的各种性能指标
- 应用程序是否能处理预期的用户负载并有盈余能力
- 应用程序是否能处理业务所需要的事务数量
- 在预期和非预期的用户负载下,应用程序是否稳定
- 是否能确保用户在真正使用软件时获得舒服的体验
- 发现系统的性能瓶颈,内存泄漏等问题
- 系统正常工作的情况下的最大容量
- 帮助系统运维部门能更好的规划硬件配置
三、性能测试常见的术语
(一)并发用户数
在线用户数:当前时刻在使用应用程序的人数。
系统用户数:就是该系统的注册用户数。
业务层面的并发用户数:指的是同时向服务器发送请求的用户数量。
后端服务器层面的并发用户数:指的是同时向服务器发送请求的请求数量 。
(二)响应时间
- 用户响应时间:N1 + A1 + N2 + A2 + N3 + A3 + N4
- 请求响应时间:A1 + N2 + A2 + N3 + A3
(三)事务响应时间(Transaction Response Time)
事务响应时间(TRT)是指执行一个事务从开始到最后收到响应数据所花费的总体时间。一个事务是指一个客户端向服务器发送请求然后服务器做出响应的过程。比如:支付操作,需要经过会员系统、账务系统、支付系统、银行系统等,这是一个关于 支付事务 里面包含的一些操作。
(四)每秒事务通过数(Transaction Per Second)
TPS 是指每秒系统能够处理的事务数。对于同一系统会存在一个最大处理事务能力,它并不随着并发用户的增减而改变。
(五)点击率(Hit Per Second )
每秒点击数代表用户每秒向 Web 服务器提交的 HTTP 请求数。这里区别于鼠标的一次点击,一次点击可能有多次 HTTP 请求。
(六)吞吐率
吞吐率是指单位时间内系统处理的客户请求的数量。
(七)思考时间
思考时间(Think Time)是指用户在进行操作时,每个请求之间的时间间隔。对于交互系统来说,用户不可能持续不断地发出请求,一般情况下,用户在向服务端发送一个请求后,会等待一段时间再发送下一个请求。 性能测试过程中,为了模拟这个过程而引入思考时间的概念。
(八)资源利用率
指不同系统资源的使用情况。包含CPU,内存,硬盘,网络等。
四、性能测试方法介绍
- 基准性能测试:它的主要目的是确定系统在标准条件下的性能表现,以便与其他系统进行比较或将来的性能改进。
- 负载性能测试:验证软件在一定的压力情况下运行,观察性能指标是否出现了拐点。
- 压力测试:系统处于饱和情况下,观察系统性能指标。
- 可靠性测试:验证系统在一个持续的时间段内运行,在这个运行时间段。观察系统各项性能指标是否正常。
五、性能测试执行流程
性能测试执行流程:需求分析->测试计划->选择一款性能测试工具->性能测试脚本编写->执行性能测试脚本->产出一个性能测试报告。