在jmeter

时间:2017-10-17 21:44:49

标签: jmeter

我想在两个线程组之间引入一些延迟。

我的测试计划是 -

  1. 线程组1 -

    一个。线程1
    湾线程2
    C。线程3(循环控制器作为父线程添加到线程3.循环控制器设计为永远运行)

  2. 线程组2

  3. 我的计划是启动线程组1,然后在一段延迟后启动线程组2。一旦两个线程组都已启动,它们应该继续运行。我需要在线程组1和2之间引入延迟。

    我在下面尝试了两种方法,但它们不符合我的目的。

    1. 我从测试计划中连续选择了运行线程组,并在线程组1的末尾引入了一个测试Action Sampler

      目标:所有主题
      行动:暂停
      持续时间:5000

    2. 并添加了Synchronizing Timer作为Test Action采样器的子级,并将Thread of Simultaneous Users的数量设置为线程组1中的线程数(虚拟用户数)。

      1. 在线程组2开始之前添加一个常量计时器。
      2. 这有什么好的解决方案?

1 个答案:

答案 0 :(得分:4)

  1. 您的解决方案1非常好,但您需要在线程组2的最开头添加Test Action采样器,因为您当前的设置假定它在线程组1的末尾运行,如:< / p>

    • 线程组1
    • 等待5秒
    • 线程组2
  2. 在线程组之间添加一个常量定时器绝对不是你想要做的事情,因为你有一个与线程组相同级别的常量定时器,这意味着延迟将应用于每个采样器。您需要将计时器移动到线程组2的第一个请求的子节点。计时器将在请求之前执行,这似乎是您正在寻找的东西。有关计时器用例和最佳做法的详情,请参阅Advanced Load Testing Part 3 - Top 4 Timers文章
  3. 最后,最快和最简单的解决方案可能是为第二个线程组设置Startup delay。它可以在“Scheduler”部分下完成:

    JMeter startup delay

    根据documentation

      

    如果选中了“调度程序”复选框,则可以选择相对启动延迟。 JMeter将使用它来计算开始时间,并忽略开始时间值。