一、什么是性能测试
1.1 性能测试的定义
测试人员借助性能测试工具,模拟系统在不同场景下,性能指标是否达到预期。
1.2性能测试与功能测试的区别
1.功能测试依靠人工执行,而性能测试依靠工具执行
2.功能测试:不管在什么场景下,只要能正常运行就成
性能测试:软件在一些极端情况下,是否能正常运行
1.3影响一个软件性能的因素
软件:服务器CPU利用率、内存、磁盘操作频率、CPU核心数
硬件:算法、编程语言
用户:用户数量、用户访问频率
二、为什么要进行性能测试
三、性能测试常见的术语以及性能测试衡量指标
3.1并发用户数
并发需要满足的条件:
1.需要有大量用户
2.对系统请求(同时间)
用户数:
系统用户数:系统注册的用户
在线用户数:成功登录系统的用户数
并发用户数:访问系统的用户数
业务层面的并发用户数:指的是同时向服务器发送请求的用户数量。
后端服务器层面的并发用户数:指的是同时向服务器发送请求的请求数量
3.2响应时间/平均响应时间(RT/ART)
用户响应时间:N1+A1+N2+A2+N3+A3+N4
系统响应时间:系统收到请求~系统发出响应所用时间,A1+N2+A2+N3+A3
从用户视角来考虑,响应时间反映了完成某个操作所需要的时间,标准定义是,应用系统从发出请求开始,到客户端接收完所有的字节数据所消耗的时间。
3.3事务响应时间
程序处理一个事务花费的时间
每秒完成的事务数,通常指每秒成功的事务数,性能测试中重要的综合性性能指标。
这里的一个事务是一个业务度量单位,是指一组密切相关的子操作的组合。比如,一笔电子支付操作,后台处理的时候可能需要经过会员系统,账务系统,支付系统,银行系统等,这就是是一个关于支付事务里面包含的操作。而对于用户,往往也只关注整个支付花费了多长时间。
3.4每秒事务通过数
TPS 是指每秒系统能够处理的事务数。它是衡量系统处理能力的重要指标。
3.5点击率
每秒点击数代表用户每秒向Web 服务器提交的HTTP请求数。点击率越大,服务器压力越大。
3.6吞吐量/吞吐率
单位时间内系统处理的客户请求的数量叫做吞吐量
吞吐率:单位时间内服务器和用户之间交互的次数;交互次数越多说明系统性能越好
3.7思考时间
指模拟正式用户在实际操作时的停顿间隔时间,从业务的角度来讲,思考时间指的是用户在进行操作时,每个请求之间的间隔时间。
3.8资源利用率
不同系统资源的使用情况。包含CPU,内存,硬盘,网络等。
四、性能测试的分类
4.1基准性能测试
让系统在正常情况下运行,观察软件性能指标
应用场景:软件刚上线需要进行性能摸底
4.2负载性能测试
让软件在有一定压力的情况下运行,观察性能指标是否出现了拐点
4.3压力性能测试
系统处于饱和的情况下,观察系统的性能指标
(往往会把系统搞崩溃)
4.4可靠性性能测试
验证系统在一个持续的时间段内运行,在这个运行时间段内,观察系统各项性能指标是否正常
五、性能测试执行流程
功能测试流程:
需求分析->测试计划->测试设计->测试执行->测试评估->上线
性能测试流程:
需求分析->测试计划->选择一款性能测试工具->性能测试脚本编写->执行性能测试脚本->产出一个性能测试报告
性能测试中出现了不符合预期的情况,不叫它BUG,叫它性能瓶颈。在性能测试中,出现了性能瓶颈,开发修复的过程,叫它优化。