前言:
除了常用的如下图线程组,很少人知道自定义线程组,场景设计也往往未达到想要的实际的压测场景
自定义线程组,目前有三种,如下:
1、jp@gc-stepping thread group
【This group will start】:总加载线程数100
【Fist,wait for】:等待多长时间开始运行,相当于延时多少秒开始执行
【Then start】:初次加载5个线程
【next add /threads every/using ramp-up】:每5秒增加5个线程,5个线程要在2秒内加载完,增加5个线程要花7秒,5秒增加,2秒加载
【then hold load for】:所有线程加载完之后,运行5秒
【fianlly,stop/ threads every】:每1秒停止5个线程
加载完100个线程需要花:7x20=140秒=2分20秒
2、Concurrency Thread Group
【Target Concurrency】:目标并发线程数100
【Ramp Up Time】:启动时间;若设置秒,则目标线程在5s内全部启动
【Ramp-Up Steps Count】:阶梯次数;设置 10,则目标线程在 5s 内分10次阶梯加压(启动线程);每次启动的线程数 = 目标线程数 / 阶梯次数 = 100/ 5 = 20
【Hold Target Rate Time】:持续负载运行时间;若设置 2 ,则启动完所有线程后,持续负载运行 2 s,然后再结束
【Time Unit】:时间单位:分钟或者秒
【Thread Iterations Limit】:线程迭代次数限制(循环次数);默认为空,理解成永远,如果运行时间到达Ramp Up Time + Hold Target Rate Time=7秒,则停止运行线程
【Log Threads Status into File】:将线程状态记录到文件中(将线程启动和线程停止事件保存为日志文件);
3、jp@gc-UItimate thread group
【Start Thread Count】:总线程数1000*3
【initialDelay】:延迟多少秒开始,我三个线程,第一个是直接开始,第二个是延迟20秒,第三个是延迟20秒开始
【startupTime】:线程加载时间,三个都设置10秒加载完,因此30秒加载完3000个线程
【holdLoadFor】:线程持续运行时间,第一个40秒,第二个20,第三个20,之所有设置成阶梯样式,等待后面的线程,是要保证3000个线程能同时执行
【shutdownTime】:线程停止时间10秒