前面几篇文章已经介绍完成的一个电商从注册登录到购物下单的典型场景的
Jmeter
压测脚本,具体可参考文章:
基于电商模式的性能测试(五)-基于Jmeter完成一次日常典型电商场景的压测(下单-支付)
1、场景调整
在实际压测前,我们还需要对场景做适当的调整
1.1 调整目的
从Thread Group
中看,我们的Thread
会在某个时间点同时起多个,而日常场景中我们需要的可能是一个递增的梯度加压的方式
为了实现梯度递增,我们就需要借助于插件Ultimate Thread Group
1.2 Ultimate Thread Group插件简介
- 先看下
Ultimate Thread Group
插件的面板信息,如下: - 参数解释:
-
Start Threads Count
:当前行启动的线程总数 -
Initial Delay/sec
:延时启动当前行的线程,单位:秒 -
Startup Time/sec
:启动当前行所有线程达峰值所需时间,单位:秒 -
Hold Load For/sec
:当前行线程达到峰值后的稳定加载时间,单位:秒 -
Shutdown Time
:停止当前行所有线程所需时间,单位:秒
-
- 文字的描述还是稍显晦涩,
Ultimate Thread Group
插件有个很好的地方就是下方的图表,它会根据你的设定而展示出趋势图,那么现在我们设定如下参数:-
Start Threads Count
:100 -
Initial Delay/sec
:10秒 -
Startup Time/sec
:200秒 -
Hold Load For/sec
:100秒 -
从插件的趋势图我们可以看到在延迟10秒后100个线程在200秒时间内逐步从0递增至100,然后持续100秒的时间,最后在10秒的时间内有逐步从100递减到0.Shutdown Time
:10秒
-
- 当然你还可以继续添加
Thread Schedule
,趋势图会帮你绘制出综合的线程运行趋势:
1.3 调整方式
介绍完
Ultimate Thread Group
插件,要开始实操调整我们的电商压测脚本了
1) 选择插件Ultimate Thread Group
2)将写好的Jmeter脚本整体移至Ultimate Thread Group
下
3)现在我们需要的场景是:
- 开始我们需要在60秒的时间内起是10个thread,然后保持运行
- 接着我们继续在60秒的时间内再起10个thread,然后和开始的10个线程一起保持运行100秒后结束
具体设置如下:
2、实操演示
2.1 运行
1)命令启动,实际运行脚本期间会用命令行的方式,减少客户端自身运行性能造成的测试影响
$ jmeter -n -t RegisterLogin.jmx
复制代码
2)在grafana中查看运行数据
2.2 数据分析
从数据中简单的分析,可以看到:
- 线程数在设定的120秒时间内均匀的从0递增至20
- 错误率在38分30秒的时候出现剧增,而这个时候的线程数为5,说明在
Active User
达到5的时候系统出现了问题造成错误率陡增 - 从错误率和响应时间来看,结果较差的接口主要集中在下单流程这块,而首页的响应时间也很大,很可能是因为首页相关的表数据是和订单的表数据有关联的,因而订单的响应时间增加也会造成首页的耗时增加。
2.3 补充说明-AutoStop Listener插件
2.3.1 AutoStop Listener简介
在实际的测试中,可能还需要设置触发点,假如请求的响应时间过长,错误率过大,已经没有测试的必要了后自动停止测试,这个时候就可以借助另外一个插件——
AutoStop Listener
- 插件添加后在如下位置选择
注:因为本片文章的重点不是介绍Jmeter插件体系,所以省略了插件的安装说明和原理等,可自行查阅资料或待后续补充相关文章,我本人在这块也是入门级别,在踩坑学习中~
- 打开后的面板如下:
- 现在可以设置当平均响应时间大于200ms持续10秒,平均延迟时间大于300ms持续10秒或者错误率大于1%持续5秒时测试停止
2.3.2 运行效果
- 可以看到当我们的响应时间持续10秒超过200ms时,测试自动停止了
3、写在最后
客户端方面的电商压测实战学习就暂时到这里了,后面如果还想继续深入学习就需要关注服务端的指标了,依然可以结合docker+grafana+prometheus
的方式来监控服务端的各项指标进行分析,这里先保留位置,如果后续我学习了解清楚将再次继续更新我的笔记链接:待补充学习——基于电商模式的性能测试-服务端性能监控与分析
软件测试学习资源分享
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
下方这份完整的软件测试视频学习教程已经上传CSDN官方认证的二维码,朋友们如果需要可以自行免费领取 【保证100%免费】
这些对想进阶【自动化测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助……基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源免费分享~