线程数,加速周期,循环计数,jmeter中的调度程序持续时间

zhe*_*gyu 9 jmeter

我是Jmeter的新手并且对这4个设置感到困惑:

  • 线程数,
  • 加速期,
  • 循环计数,
  • 调度程序中的持续时间

    Thread Group 1: # of threads:1, ramp up period:0, loop count:5, no scheduler
    Thread Group 2: # of threads:5, ramp up period:0, loop count:1, no scheduler
    Thread Group 3: # of threads:1, ramp up period:1s, loop count:5, no scheduler
    Thread Group 4: # of threads:5, ramp up period:5s, loop count:1, no scheduler
    Thread Group 5: # of threads:1, ramp up period:1s, loop count:forever, duration in scheduler:5s
    Thread Group 6: # of threads:5, ramp up period:5s, loop count:forever, duration in scheduler:5s
    
    Run Code Online (Sandbox Code Playgroud)
    1. 线程组1和2之间有什么区别吗?
    2. 每个循环之间的时间上限有多长?
    3. 线程组3,4,5和6之间有什么区别吗?
    4. 3组,4组,5组和6组是否需要5秒才能完成发送所有请求?每组的结果总数应该是5吗?
    5. 当我尝试线程组5时,我得到了大约83个响应,为什么不只有5个响应?这是否意味着加速期不起作用?

我对这些群体之间的差异感到困惑,希望有人可以帮助我.非常感谢提前!

小智 9

首先,每个参数的简短定义:

  1. 线程数:模拟用户数

  2. 加速周期:Jmeter启动所有线程所需的时间

  3. 循环计数:每个线程执行测试用例的次数

  4. 调度程序中的持续时间:运行测试的持续时间.在这种情况下,应忽略结束时间字段中的值,并从起始时间和持续时间计算相对结束时间.

这里需要了解的重要一点是,Ramp-up周期与Loop计数无关.它只与线程数有关.如果有10个线程并且加速时间为100秒,则每个线程将在上一个线程启动后10秒开始,总时间为100秒以启动线程组中的所有线程.

现在回答每个Thread Group案例:

Thread Group 1: # of threads:1, ramp up period:0, loop count:5, no scheduler
Thread Group 2: # of threads:5, ramp up period:0, loop count:1, no scheduler
Thread Group 3: # of threads:1, ramp up period:1s, loop count:5, no scheduler
Thread Group 4: # of threads:5, ramp up period:5s, loop count:1, no scheduler
Thread Group 5: # of threads:1, ramp up period:1s, loop count:forever, duration in scheduler:5s
Thread Group 6: # of threads:5, ramp up period:5s, loop count:forever, duration in scheduler:5s
Run Code Online (Sandbox Code Playgroud)

Q1.线程组1和2之间有什么区别吗?

线程组1有一个线程,它将重复相同的测试5次,即当一个测试完成重复测试,直到达到5的循环计数

线程组2有5个线程,当Ramp-up Period为0时将同时启动,所以它应该在系统上同时模拟5个用户

Q2.每个循环之间的时间上限有多长?

时间上限是上升周期的一个因素,它在线程组中的线程数之间平均分配.循环是一个连续的过程,一直持续到达到循环计数."时间上限"不是JMeter文档中使用的术语,但假设您的意思,如果您需要细粒度控制,可以使用" 测试操作"或其他JMeter机制在循环之间进行设置.

Q3.线程组3,4,5和6之间有什么区别吗?

是的,所有参数都不同,因此如上所述,行为是不同的.

Q4.3组,4组,5组和6组是否需要5秒才能完成发送所有请求?每组的结果总数应该是5吗?

不,这对每种情况都是主观的.在线程组3中,单个线程应执行相同的线程5次,因此无法随时控制

在线程组4中,有5个线程,并且基于加速周期,每个线程应该在另一个之后1秒开始,因此完成测试至少需要4-5秒(在最后一次测试之后)

线程组5和6每个只运行一段时间,持续5秒.如果在此之前完成测试则罚款,否则测试应终止并停止

Q5.当我尝试线程组5时,我得到了大约83个响应,为什么不只有5个响应?这是否意味着加速期不起作用?

为什么只有5个回复?线程组5应创建一个线程,该线程将永远执行测试.如果未定义持续时间,则测试将在无限循环中运行.由于定义了持续时间,因此测试只能持续一段时间.

全部注释:循环计数是特定于线程的.它指定了每个线程应重复测试的次数.加速期与#Thread(用户)有关,与循环计数无关


UBI*_*ACK 3

  1. 是的,1模拟一个用户在线程组1内执行5次测试场景,2,模拟5个用户执行一次测试场景
  2. 如果你不使用任何计时器就没有时间
  3. 是的,3与线程组1相同,4与线程组2相同,但用户彼此相隔1秒启动,5,与线程组1相同,但运行5秒,所以你不知道它会执行多少次。6 与线程组 2 相同但运行 5 秒
  4. 5和6将运行5秒,3和4如3中所述。否5。因为它运行5秒而没有任何暂停,因为您没有设置任何计时器。由于只有一个线程,因此它会立即启动并运行 5 秒。

读: