普通的线程组难以支撑我们多类型多规则的测试场景需求,因此我们来分享下另外两个线程组在不同测试场景下的使用方法
中文名为步进式线程组,可控制定量线程的循环递增及持续运行
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 个线程,直到结束
优点:可设置总进程数、线程递增速度和循环延迟,可通过这种方式来达到逐步加压的目的
缺点:只适用于递增型场景;只会记录单客户端信息,所以无法用于分布式环境
总结:该线程组更多的是通过这种逐步加压的方式来探索单客户端的性能拐点
中文名为终极线程组,是以多阶段结合来进行线程的灵活控制
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 是最适合的选择
例子 2:本次需验证系统在压力上下波动较大时的运行情况,本次测试线程关闭时间皆为 1s,第一次 30 线程运行 10s,第二次 50 线程运行 8s,第三次 40 线程运行 13s,第 4 次 80 线程运行 20s,第 5 次 20 线程运行 6s,在单次线程关闭后 10s 启动下一次
注:要注意每个阶段所设定的关闭时间内能否将启动的线程关闭完成,如未完成可能会对后一阶段造成影响