本文为霍格沃兹测试学院优秀学员课程学习系列笔记,希望大家可以从中学到想了解的知识。
前面几篇文章已经介绍完一个电商从注册登录到购物下单的典型场景的 Jmeter压测脚本,具体可参考前期文章:基于电商模式的性能测试(五)-基于Jmeter完成一次日常典型电商场景的压测(下单-支付)。
1、场景调整
在实际压测前,我们还需要对场景做适当的调整。
1.1 调整目的
从 ThreadGroup中看,我们的 Thread会在某个时间点同时起多个,而日常场景中我们需要的可能是一个递增的梯度加压的方式。
为了实现梯度递增,我们就需要借助于插件 UltimateThreadGroup
1.2 Ultimate Thread Group插件简介
先看下 UltimateThreadGroup插件的面板信息,如下:
- 参数解释:
- StartThreadsCount:当前行启动的线程总数
- InitialDelay/sec:延时启动当前行的线程,单位:秒
- StartupTime/sec:启动当前行所有线程达峰值所需时间,单位:秒
- HoldLoadFor/sec:当前行线程达到峰值后的稳定加载时间,单位:秒
- ShutdownTime:停止当前行所有线程所需时间,单位:秒
- 文字的描述还是稍显晦涩, UltimateThreadGroup插件有个很好的地方就是下方的图表,它会根据你的设定而展示出趋势图,那么现在我们设定如下参数:
- StartThreadsCount:100
- InitialDelay/sec:10秒
- StartupTime/sec:200秒
- HoldLoadFor/sec:100秒
- ShutdownTime:10秒
从插件的趋势图我们可以看到在延迟10秒后100个线程在200秒时间内逐步从0递增至100,然后持续100秒的时间,最后在10秒的时间内有逐步从100递减到0。
当然你还可以继续添加 ThreadSchedule,趋势图会帮你绘制出综合的线程运行趋势:
1.3 调整方式
介绍完 UltimateThreadGroup插件,要开始实操调整我们的电商压测脚本了。
1) 选择插件 UltimateThreadGroup
2)将写好的Jmeter脚本整体移至 UltimateThreadGroup下
3)现在我们需要的场景是:
- 开始我们需要在60秒的时间内起是10个thread,然后保持运行
- 接着我们继续在60秒的时间内再起10个thread,然后和开始的10个线程一起保持运行100秒后结束
具体设置如下:
(文章来源于霍格沃兹测试学院)
--福利福利:
免费领取:接口测试+性能测试+自动化测试+测试开发+测试用例+简历模板+测试文档