性能测试工具 Jmeter 之 Stepping&Ultimate 线程组的使用方法

今晚打老虎 · 2021年07月26日 · 1956 次阅读

开门见山

普通的线程组难以支撑我们多类型多规则的测试场景需求,因此我们来分享下另外两个线程组在不同测试场景下的使用方法

一、线程组

Stepping Thread Group

中文名为步进式线程组,可控制定量线程的循环递增及持续运行


This group will start 100 threads:设置线程组启动的线程总数为 100 个;
First,wait for 0 seconds:启动第一个线程之前,需要等待 0 秒;
Then start 10 threads:设置最开始时启动 10 个线程;
Next,add 10 threads every 5 seconds,using ramp-up 0 seconds:每隔 5 秒,启动 10 个线程,10 个线程在 0 秒内启动完成;
Then hold load for 60 seconds:启动的线程总数达到最大值之后,再持续运行 60 秒;
Finally,stop 5 threads every 1 seconds:每 1 秒停止 5 个线程,直到结束

优点:可设置总进程数、线程递增速度和循环延迟,可通过这种方式来达到逐步加压的目的
缺点:只适用于递增型场景;只会记录单客户端信息,所以无法用于分布式环境
总结:该线程组更多的是通过这种逐步加压的方式来探索单客户端的性能拐点

Ultimate Thread Group

中文名为终极线程组,是以多阶段结合来进行线程的灵活控制


Start Threads Count:每个阶段开启线程数
Initial Delay/sec:延迟N 秒后启动本次阶段线程
Startup Time/sec:在N 秒内启动本次阶段所有线程
Hold Load For/sec:本次阶段所启动线程运行时间N 秒
Shutdown Time:本次阶段所启动线程在N 秒内全部关闭

优点:可对每个阶段的线程数、启动时间、延迟时间、运行时间、关闭时间进行灵活配置,场景兼容性较强
缺点:暂未发现
总结:该线程组可用于多种不规则类型的测试场景

二、测试场景

步进式测试场景

该场景是采用逐步加压的方式来探索系统在不同压力下的运行情况,进一步探索性能拐点,并为后面的测试工作定下参照点。
例子 1:本次需通过逐步加压的方式来探索性能拐点,目标线程数为 100,可使用 20 单位为步进值,每个压力点在运行 20s 后才可进入下一压力阶段,到达预定压力后持续运行 60s,最终所有线程数统一在 10s 内关闭

Stepping Thread Group


步进值、运行时间等变量都是固定值,所以步进值线程组很简单的就可以出货了

Ultimate Thread Group


终极线程组配置起来则有些复杂了,需要通过各阶段运行时间的递减和延迟时间的递增来达到总线程数的递增效果
冼儿易剑,定量场景或者说步进式测试场景下 Stepping Thread Group 是最适合的选择

不规则测试场景

例子 2:本次需验证系统在压力上下波动较大时的运行情况,本次测试线程关闭时间皆为 1s,第一次 30 线程运行 10s,第二次 50 线程运行 8s,第三次 40 线程运行 13s,第 4 次 80 线程运行 20s,第 5 次 20 线程运行 6s,在单次线程关闭后 10s 启动下一次

Stepping Thread Group

🙃

Ultimate Thread Group


:要注意每个阶段所设定的关闭时间内能否将启动的线程关闭完成,如未完成可能会对后一阶段造成影响

总结:Ultimate Thread Group 足以支撑我们的多场景需求,但是 Stepping Thread Group 在递增式场景下更为方便

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册