1.1性能测试的定义与目的
1.1.1什么是性能?
-时间:系统处理用户请求的响应时间
-资源:系统运行过程中,系统资源的消耗情况
1.1.2什么是性能测试?
使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程。
1.1.3什么是性能测试的目的?
-评估当前系统能力
-寻找性能瓶颈,优化性能
-评估软件是否能够满足未来的需要
1.1.4性能测试与功能测试
(1)功能测试和性能测试有什么不同?
-功能测试:验证系统的功能需求规格。焦点:功能(正向,逆向)
-性能测试:验证系统的业务需求场景。焦点:时间,资源
(2)功能测试和性能测试有什么关系?
-一般项目中,先功能测试通过后,后进行性能测试
2.1性能测试的分类
2.1.1基准测试
(1)什么是基准测试?
-狭义上讲:就是单用户测试。(单用户循环多次得到的数据)
-广义上讲:建立基准线,当系统的软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响。
(2)基准测试数据的用途?
-基准测试不会单独存在
-为多用户并发测试和综合场景测试等提供参考依据
-为系统/环境配置,系统优化前后的性能提升/下降提供参考指标
2.2.2负载测试
(1)概念
通过逐步增加系统负载确定在满足系统的性能指标 (如响应时间等) 情况下,找出系统所能够承受的最大负载量的测试
(2)作用
系统最大负载量达到用户要求时,系统才能正式上线使用
(3)例子
电梯行业规范:电梯从1楼到5楼(15m)的运行时间不超过24s
进行负载测试
case1:1人乘坐电梯,从1楼到5楼,运行时间为20s
case2:7人乘坐电梯,从1楼到5楼,运行时间为20s
case3:13人乘坐电梯,从1楼到5楼,运行时间为20s 最大负载量
case4:16人乘坐电梯,从1楼到5楼,运行时间为25s
Case5:19人乘坐电梯,从1楼到5楼,运行时间为28s
Case6:21人乘坐电梯,从1楼到5楼,运行过程中绳子断了。
- 通过负载测试,可以确定系统的最大负载量和极限负载量
- 系统对外宣称的最大负载量
- 负载测试的时间一般为1-2小时
2.2.3稳定性测试
(1)概念
在服务器稳定运行(用户正常的业务负载下) 的情况下进行长时间测(1天-1周等),并最终保证服务器能满足线上业务需求
(2)作用
系统在用户要求的业务负载下运行达到规定的时间时,系统才能正式上线使用。
2.2.4压力测试
(1)概念
在强负载下的测试,查看系统在峰值情况下是否功能隐患、系统是否具有良好的容错能力和可恢复能力
(2)测试场景
极限负载情况下的破坏性压力测试
高负载下的长时间的稳定性压力测试
- 高负载下的长时间稳定性压力测试 (如:B-C区间内进行24/3*24小时长时间测试)
- 极限负载下的破坏性压力测试(如:C-D区间内进行测试)
2.2.5并发测试
(1)概念
并发测试 (绝对并发) : 是指在极短的时间内,发送多个请求来验证服务器对并发的处理能力.
(2)应用场景
特定活动场景,如:抢红包、秒杀、抢购等
- 负载测试:主要目的是测试高负载情况下,对系统资源的消耗,是否会耗尽的问题(双11活动)
- 并发测试:主要目的是测试极短时间内,并发请求时,系统资源争抢的问题(抢红包、秒杀)
3.1性能测试中常见的性能指标
3.1.1响应时间
![](https://i-blog.csdnimg.cn/blog_migrate/b0763b973717f233b104dd50921e328c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/d05b2b902754507aa9c09bc549690f51.png)
3.1.2并发用户数
![](https://i-blog.csdnimg.cn/blog_migrate/81c9940ecedbcd0ac11449fe9aff67fd.png)
3.1.3吞吐量
QPS:
TPS:
[TPS] TPS是系统的重要性能指标,用于衡量系统在一定时间内能够处理的事务数(交易数)
计算公式:总的事务数/总的运行时间
比如:某一系统1分钟处理1000个事务,那么TPS=1000/60=16.7(理想下)
比如:按去年的经营数据,2022年最高的一天有10万笔交易。预测2023年TPS需要多少合格?总事务数=10万,时间=1天=24*60*60=86,400秒
理论上TPS =100000/86400=1.2
(理想状态下,把所有交易都平均分布在这一天时间里。实际状态下,某段时间可能没有任何交易,而某段时间可能交易暴增)
所以引出了以下两种方式计算:
(1)没有更详细的数据: 根据二八定律 (80%的事务在20%的时间完成)计算:TPS=100000*0.8/86400*0.2=80000/17280=4.6
(2)如果有更详细的数据: 5万比交易是晚上的8-9点完成的。
TPS=50000/3600=13.9
业务的增长: 30%
TPS=(50000+50000*0.3)/3600=18
注意:以上TPS的计算是要一个团队来做评审的;
[QPS]每一秒的查询率。
TPS,QPS,RPS(每一秒的请求),HPS (每一秒的点击率)
TPS,QPS,RPS是用来衡量服务器的性能,但HPS是用来衡量客户端的性能的(所以一般只拿前三个对比)
若一个事务里只有一个接口,那么TPS=RPS
若一个事务里只有一个接口,并且这个接口是查询接口,那么TPS=RPS=QPS
一般面试只会问TPS,QPS
[吞吐量]衡量网络成功传输的数据量,单位Byte/S(再企业来看,吞吐量和TPS,QPS有没有联系,视情况而定)
3.1.4事务
一个接口可以是事务,多个接口也可以是事务,事务代表一个完整的功能。由测试人员决定的。
3.1.5点击数(只有在web中才有的指标)
3.1.6错误率
- 错误率是性能指标,是高负载下的失败业务的概率
- 随机bug是功能bug,先解决随机bug才能进行性能测试
3.1.7资源利用率
(1)什么是资源利用率
系统各种资源的使用情况 “资源的使用量/总的资源使用量x100%”
(2)常用的资源指标有哪些
cpu使用率:75%-85%
内存(大小)使用率:不高于80%
磁盘IO(速率):不高于90%
网络(速率):不高于80%
4.1性能测试流程
- 性能测试的核心:需求分析、性能测试执行、性能分析调优
- 需要大家掌握:性能测试执行
(1)需求分析
(2)性能测试计划:
(3)性能测试用例:
(4)性能测试执行
(5)性能测试分析和调优
![](https://i-blog.csdnimg.cn/blog_migrate/8627a1406f4a31f6a3fd231a60d63db2.png)