一、什么是性能测试以及性能测试的价值和目的
1、性能测试的概念
- 通过性能压测工具(例如:jmeter、loadrunner、PTS 等)、特定方式,对系统施加一定的压力(正常场景、异常负载以及峰值)得到各项性能指标。保证性能需求。
2、价值和目的
-
评估系统的能力(负载时间、响应时间、并发用户数等各项性能指标是否能达到上线要求)
-
识别系统的弱点(瓶颈、弱点等)
-
检查系统隐藏的问题(无压力时未暴露,需要在加压下暴露一些问题等)
-
检验系统的稳定性和可靠性(在长期有压力的条件下,系统会不会崩溃、服务器是否会宕机等)
二、性能指标的理解与测算
-
下面使用 jmeter 举例(安装 jmeter 教程:https://www.cnblogs.com/yangsxuan/p/17852789.html)
-
虚拟用户数:线程(每一个线程就是一个虚拟用户数),线程=用户
-
并发数:指在某一时间,一定数量的虚拟用户同时对系统的某一个功能进行交互,一般通过集合点实现
-
事务:一个接口可以是事务,多个接口也可以是事务;一个流程可以是事务,事务代表一个完成的功能,由测试人员来决定。
-
场景:性能测试的用例
-
RT:响应时间(Response Time)
-
平均响应时间:例如一个接口请求100次,各有各的响应时间,可计算出平均响应时间是多少
-
中位数:例如在请求100次中,排在第50位的响应时间是多少
-
90%:例如在请求100次中,排在第90位的响应时间是多少
-
95%:例如在请求100次中,排在第95位的响应时间是多少
-
99%:例如在请求100次中,排在第99位的响应时间是多少
-
基准测试:一个用户请求接口,一般在200-500ms、
-
压力测试:N个用户并发请求接口,一般在2s左右(258原则)
-
-
TPS:(Transaction per Second)系统的重要性能指标,用于衡量系统在一定时间内能够处理的事务数(交易数),如果事务中有多个接口则需要计算
-
计算公式:总事务数/总运行时间(s)
-
例1:一个商品从搜索到加入购物车到支付成功整个流程算一个事务,一秒完成了该流程,则 TPS=1/1=1
-
例2:一个系统1分钟处理了1000个事务,则 TPS=1000/60=16.7
-
例3:2020年中最高的一天有10万笔交易,预测2023年 TPS 需要达到多少算合格,则理论 TPS=100000/(24*60*60)=1.2
-
没有更详细的数据:根据二八定律(80%的事务在20%的时间完成),计算 TPS=(100000*0.8)/(24*60*60*0.2)=4.6
-
有更详细的数据:5万笔交易是晚上的8点到9点完成的,计算 TPS=50000/(60*60)=13.9
-
业务增长:30%,计算 TPS=(50000+50000*0.3)/(60*60)=18.1
-
-
-
QPS:每秒查询率(一般形容数据库)
-
-
吞吐量:衡量网络成功传输的数据量,就是数据的传输率,单位:字节(byte)/秒(s)
-
资源利用率:CPU、内存、磁盘、网络