1.压力测试的定义
压力测试是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内,向系统发送预期数量的交易请求、测试系统在不同压力情况下的效率状况,以及系统可以承受的压力情况。然后做针对性的测试与分析,找到影响系统性能的瓶颈,评估系统在实际使用环境下的效率情况,评价系统性能以及判断是否需要对应用系统进行优化处理或结构调整。并对系统资源进行优化。
软件系统的负载压力是指系统在某种指定软件、硬件及网络环境下承受的流量,例如并发用户数、持续运行时间、数据量等。其中并发用户数是负载压力的重要指标。
2. 相关概念
2.1 响应时间(Response Time,RT)
用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间
2.2 HPS(Hits Per Second)
每秒点击次数,单位:次/s
2.3 TPS(Transaction per Second)
系统每秒处理交易数,单位:笔/s
参考用例:
金融行业(不包括互联网):1000TPS ~ 50000TPS
保险行业(不包括互联网):100TPS ~ 100000TPS
制造行业:10TPS ~ 5000TPS
互联网电子商务:10000TPS ~ 1000000TPS
互联网中型网站:1000TPS ~ 50000TPS
互联网小型网站:500TPS ~ 10000TPS
2.4 QPS(Query per Second)
系统每秒处理查询次数,单位:次/s
注意:如果某些业务有且仅有一个请求连接,即,TPS = QPS = HPS。一般情况下用TPS来衡量整个业务流程,用QPS来衡量接口查询次数,用HPS来表示对服务器单击请求
2.5 最大响应时间(Max Response Time)
用户发出请求或者指令到系统做出反应的最大时间
2.6 最小响应时间(Mininum Response Time)
用户发出请求或者指令到系统做出反应的最少时间
2.7 90%响应时间
所有用户的响应时间进行排序,第90%的响应时间
3.关键指标
- 吞吐量:每秒系统能够处理的请求数,任务数
- 响应时间:服务处理一个请求或一个任务的耗时
- 错误率:一批请求中结果出错的请求所占比例