【二】jmeter系列之《线程组性能压测的巧用详解》

 线程组即用户组,是一般进行性能测试时的用户资源池,也是任何一个测试计划的执行开始点。

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部分如下图所示:

Thread Group 线程组

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进行简单介绍。

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

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

通过该线程组达到控制请求数的目的。

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个请求数。

你可能感兴趣的:(【二】jmeter系列之《线程组性能压测的巧用详解》)