【问题标题】:JMeter - Loop Count time takenJMeter - 循环计数时间
【发布时间】:2021-10-03 22:59:06
【问题描述】:

#Thread: 20, Ramp-up: 10s, Loop Count: 1000

20 线程将启动并运行 10 秒(2 线程 = 1 秒间隔)。 所以一旦 20 个线程完成,下一个循环再次开始 20 个线程在 10 秒间隔内启动? 而下一个loopx1, 20又在10秒内打开,关闭 而下一个loopx2, 20又在10秒内打开,关闭...... ..和下一个loopx1000, 20在10秒内打开。

所以 1000 循环,10 秒 x 1000 = 10,000 秒 /60 = 167 分钟 JMeter 将完成 但是我的程序完成了 13 分钟。

我猜是 20 个线程,有些提前完成了,这是否意味着在循环 1 中可能有 7 个线程仍在运行,但我们已经进入循环 2 以启动完成的线程?这就是它提前结束的原因吗?

【问题讨论】:

    标签: multithreading loops time count jmeter


    【解决方案1】:

    不,不,不,不。

    Thread: 20, Ramp-up: 10s, Loop Count: 1000 意味着:

    • JMeter 将在 10 秒内启动 20 个线程,即每秒 2 个线程,10 秒后所有 20 个线程将启动并运行
    • 一旦启动,每个线程将开始执行倒置的Samplers(或根据Logic Controllers
    • 当没有更多的采样器来执行线程开始下一次迭代时,它不会等待其他线程,除非你明确告诉它使用 Synchronizing Timer
    • 当没有更多循环来迭代线程时,线程将被关闭
    • 当最后一个线程在最后一次迭代中执行最后一个采样器时,测试结束

    总测试持续时间取决于采样器的响应时间,您无法事先精确计算

    【讨论】:

      【解决方案2】:

      以下是 Apache JMeter 官网的摘录。

      Ramup-up period

      加速期告诉 JMeter 需要多长时间才能“加速”到所选线程的全部数量。如果使用 10 个线程,并且加速周期为 100 秒,那么 JMeter 将需要 100 秒才能让所有 10 个线程启动并运行。每个线程将在前一个线程开始后 10 (100/10) 秒后开始。如果有 30 个线程和 120 秒的加速周期,那么每个连续的线程将延迟 4 秒。

      在您的场景中,有 20 个线程和 10 秒的加速期

      Time Number of threads
      0 2
      1 4
      2 6
      3 8
      4 10
      5 12
      6 14
      7 16
      8 18
      9 20

      实际上,9 秒后所有 20 个线程都会启动并运行。

      Thread Group 文档

      您可以设置一个示例测试计划,并在右上方的 JMeter IDE 中查看线程是如何增加的

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多