JMeter核心组件之线程组(Thread Group)
一、概念
JMeter 的线程组元件中的线程属性,线程组建立是你使用 JMeter 进行性能测试最基础的步骤,压力发起策略几乎都依赖于这个元件,所以理解其核心参数很有必要。
线程组(Thread Group)顾名思义是用来管理线程的 。在jmeter里,模拟多用户操作是通过设置多线程来实现的,一般一个线程组可看作一个虚拟用户组,其中的每个线程模拟为一个虚拟用户。
二、线程组
-
第一部分:请求取样器执行错误时,需要执行的下一步操作
- continue:继续执行接下来的操作;
- Start Next Thread Loop:忽略错误,执行下一个循环;
- Stop Thread:退出线程(不再进行此线程的任务操作);
- Stop Test:等待当前执行的采样器结束,接着结束整个压测;
- Stop Test Now:直接停止整个测试。
-
第二部分:线程属性
-
Number of Threads(users):表示该线程组准备启动的线程数,即模拟的用户数;
-
Ramp-up period(seconds):表示设置的线程数在多少秒内启动完毕。比如:线程数(Number of Threads(users))设置为100,此处(Ramp-up period(seconds))设置为5,那么每秒启动的线程数就是100/5=20个线程。相当于每秒启动20个线程,也就是每秒增加20个访问系统的用户;
-
Loop Count:表示设置的线程数循环的次数,如果选择Infinite(无限)选项,则会一直循环(注意,如果选择了Infinite且调度器配置中设置了持续时间,则会在持续时间到达之后结束循环);
-
Delay Thread creation until needed:此选项和Ramp-up period(seconds)设置配合使用,如果选择此项,则所有线程会在需要的时候启动,即会在Ramp-up period(seconds)时间结束后启动所有线程;如果不选择这个选项,那么,在计划开始的时候,所有需要的线程就都被创建好了。
举例说明,假设设置线程数为10,Ramp-up period(seconds)为100,则如果不选择此项则此次测试会每隔10s创建并启动1个线程,那么100s后会有1~10个线程在运行;但是如果选择此项,那么线程组会每隔10s创建1个线程但并不启动,而是会等待100s,所有10个线程都创建好之后同时启动。
-
Specify Thread lifetime:选项用来打开时间调度配置。
-
Duration(seconds):持续时间(秒),此项填入数字n,那么代表这个测试计划将从某个时间开始,执行n秒后才结束(此处会忽略结束时间的选项);注意这个时间设置不要比Ramp-up period(seconds)小。另外,即使选择了循环次数中的Infinite,测试一样会在此持续时间到达后结束。
-
Startup delay(seconds):表示启动测试后多久开始创建线程组,通常用于定时,也就是手动点击开始执行计划,然后延迟n秒后,计划才真正的开始执行(此处会忽略启动时间的选项)。
-