电商性能测试实战 | JMeter 插件 Ultimate Thread Group 完成梯度递增场景的压测(下篇)
本文为霍格沃兹测试学院优秀学员课程学习系列笔记,希望大家能从中学到想了解的知识。
前面几篇文章已经介绍完一个电商从注册登录到购物下单的典型场景的 Jmeter压测脚本,具体可参考前期文章:基于电商模式的性能测试(五)-基于Jmeter完成一次日常典型电商场景的压测(下单-支付)。
2、实操演示
2.1 运行
1)命令启动,实际运行脚本期间会用命令行的方式,减少客户端自身运行性能造成的测试影响
$ jmeter -n -t RegisterLogin.jmx
2)在grafana中查看运行数据
2.2 数据分析
从数据中简单的分析,可以看到:
线程数在设定的120秒时间内均匀的从0递增至20
错误率在38分30秒的时候出现剧增,而这个时候的线程数为5,说明在 ActiveUser达到5的时候系统出现了问题造成错误率陡增。
从错误率和响应时间来看,结果较差的接口主要集中在下单流程这块,而首页的响应时间也很大,很可能是因为首页相关的表数据是和订单的表数据有关联的,因而订单的响应时间增加也会造成首页的耗时增加。
2.3 AutoStop Listener插件
2.3.1 AutoStop Listener简介
在实际的测试中,可能还需要设置触发点,假如请求的响应时间过长,错误率过大,已经没有测试的必要了后自动停止测试,这个时候就可以借助另外一个插件—— AutoStopListener
- 插件添加后在如下位置选择
注:因为本片文章的重点不是介绍Jmeter插件体系,所以省略了插件的安装说明和原理等,可自行查阅资料。
打开后的面板如下:
现在可以设置当平均响应时间大于200ms持续10秒,平均延迟时间大于300ms持续10秒或者错误率大于1%持续5秒时测试停止。
2.3.2 运行效果
可以看到当我们的响应时间持续10秒超过200ms时,测试自动停止了。
总结
客户端方面的电商压测实战学习暂时到这里了,后面如果还想继续深入学习就需要关注服务端的指标了,依然可以结合 docker+grafana+prometheus的方式来监控服务端的各项指标进行分析。