线程组即用户组,是一般进行性能测试时的用户资源池,也是任何一个测试计划的执行开始点。
jmeter线程组目前分为基本型和引入型。
1.基本型线程组包括:Thread Group、setUp Thread Group和tearDown Thread Group三种。2.引入型线程组包括:bzm - Arrivals Thread Group 、bzm - Concurrency Threadp Group、bzm - Free_From Arrivals Thread Group、jp@gc - Stepping Thread Group、jp@gc - Ultimate Thread Group等五种。
一、基本型
Thread Group 线程组
日常测试中最常用的线程组,它用于模拟用户数,每一个线程相当于一个虚拟的用户。
该线程组的操作页面大概分为3部分如下图所示:
N0.1:在取样器出现错误后要执行的动作( 意思如果采样器出现错误,将按照此设置执行)
continue(继续):将继续执行接下来的操作;
start next thread loop: 忽略错误,执行下一次循环;
stop thread :停止当前线程(不在进行此线程的任何操作);
stop test: 等等当前采样器执行结果后, 停止整个测试;
stop test now: 立即停止所有测试;
NO.2:Thread Properties 线程属性
number of threads : 并发线程,模拟多少个虚拟用户操作
ramp_up period : 启动上面指定线程数耗费时间,即在设置时间内线程数达到设定的线程数
loop count : 循环次数,如果不设定具体的值,就会一直循环执行下去,直到手动停止
delay thread creation until need 直到需要时延迟线程的创建
sceduler :调度器
NO.3:Scheduler Configuration 调度器设置
duration(seconds):压测持续时间
start delay (seconds): 启动延迟时间,即点击启动后多久之后才正式开始测试
setUp Thread Group
用于执行测试之前的初始化操作,日常测试中可根据具体需要进行引用,基本配置同 Thread Group
tearDown Thread Group
用于执行测试结束之后的回收工作, 日常测试中可根据具体需要进行引用, 基本配置同 Thread Group
二、引入型
Concurrency Thread Group & Stepping Thread Group
二者皆用于阶梯式加压测试,但由于Stepping Thread Group已不再被官方推荐使用了,所以仅对Concurrency Thread Group进行简单介绍。
target concurrency:目标并发数
ramp up time(min):加速时间
ramp-up steps count:加速步骤计数
hold target rate time(min):保持目标费率时间
thread iterations limit:线程迭代次数限制
log threads status into file:将线程状态记录到文件
如上图:1000个线程组,加速时间为10秒钟,10个加速步骤,保持目标费率20秒钟。
测试场景解析:10个加速步骤,每步10个线程组,10秒钟/10步=1,每步1秒钟;即每1秒加载100线程组,直到达到1000个,达到100个线程组之后,所有这些线程组将继续运行20秒钟。
Ultimate Thread Group
该线程组与Concurrency Thread Group相类似,可以设置多个线程组的结合,各个时刻的运行结果都是几个线程组的叠加。
start threads count:目标并发数
initial delay:启动延迟时间
startup time:启动目标线程所需时间
hold load for:以目标线程并发持续加压时间
shutdown time:结束当前线程时间
Arrivals Thread Group & Free-Form Arrivals Thread Group
通过该线程组达到控制请求数的目的。
target rate:目标费率,每秒钟多少个请求数
ramp up time(sec):达到目标费率需要的时间
ramp-up steps count:达到目标费率需要多少步
hold target rate time(sec):保持目标费率时间
thread iterations limit:线程迭代次数限制
log threads status into file:将线程状态记录到文件
concurrency limit:最大并发数限制
如上图:目标费率为1000个线程组,加速时间为10秒钟,10个加速步骤,保持目标费率20秒钟。
测试场景解析:10个加速步骤,每步10个线程组,10秒钟/10步=1,每步1秒钟;即每1秒加载100线程组,直到达到1000个,达到100个线程组之后,所有这些线程组将继续运行20秒钟。前十秒钟按照设置不断增加费率,请求数为(100+200+300+400+500+600+700+800+900+1000)*2=11000个;后十秒钟,按照每秒100个费率计算,请求数为100*10=1000个;共计12000个请求数。