一、定义
- 压力测试是在计算机数量较少或系统资源匮乏的条件下运行测试。通常要进行软件压力测试的资源包括内存、CPU可用性、磁盘空间和网络带宽。
- 压力测试是给软件不断加压、强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷。
- 通过搭建与实际环境相似的测试环境,通过测试程序向系统发送预期数量的交易请求,测试系统在不同压力情况下的效率状况,以及系统可以承受的压力情况。
二、关注指标
1、响应时间(RT)
响应时间是指系统对请求作出响应的时间。对于单用户系统,响应时间可以很好的度量系统的性能。
2、吞吐量
吞吐量是指系统在单位时间内处理请求的数量。对于无并发的应用系统而言,吞吐量与响应时间成严格的反比关系,对于多用户系统,吞吐量是一个比较通用的指标。
3、并发用户数
- 并发用户数是指系统可以同时承载的正常使用系统功能的用户的数量。
- 对于一个网站一般会有三个关于用户数的统计数字:注册用户数、在线用户数和同时发送请求用户数。相比而言,以在线用户作为性能指标更直观些,而以同时发请求用户数作为性能指标更准确些。
4、QPS每秒查询率
QPS是对一个特定的查询服务器在规定时间内处理流量多少的衡量标准。
三、如何做一个压测请求
1、明确压测功能和压测指标
- 要求支持多少并发数?单接口多少,关联接口多少,容错率多少
- TPS目标多少?响应时间要达到多少?
2、场景设计
- 压力测试分两种:单接口和多接口
- 压测时间:一般场景运行10~15分钟,疲劳测试可设置为一天或一周。
3、进行压测
四、压测分析与调整
- 若Throunghput吞吐量每秒请求的数大于并发数,则可以慢慢的往上增加