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秒后,计划才真正的开始执行(此处会忽略启动时间的选项)。

posted @ 2022-09-02 15:32  xyztank  阅读(871)  评论(0编辑  收藏  举报