Jmeter:在所有其他线程组完成后,是否可以 运行 一个特定的线程组

Jmeter: Is it possible to run a particular thread group after all the other thread group gets completed

在 JMeter 中,我有一个要求,我想在所有其他线程组完成它们的 运行 之后 运行 一个特定的线程组,我知道 tearDown 线程组具有类似的行为但是不幸的是,逻辑必须成为我的常规线程的一部分。

假设我的测试计划中有 4 个线程组 A、B、C 和 D,我希望线程组 D 仅在 A、B 和 C 完成它们的 运行 后执行。

我们可以不使用 "setup, teardown & Run groups one at a time" 实现吗??

问题截图:

我可以建议 2 个选项:

  1. 使用 Inter-Thread Communication Plugin. See example test plan 获取详细信息。
  2. 如果出于某种原因您无法使用 JMeter 插件,您可以使用 JMeter 属性实现相同的效果,例如:

    • 当线程组 A 完成设置 JMeter 属性,即 ThreadGroupADone=true 使用 __setProperty() 函数,如

      ${__setProperty(ThreadGroupADone,true,)}
      
    • 在线程组 D 中:

      • 在Thread Group开头添加While Controller,使用条件如下:

        ${__javaScript("${__P(ThreadGroupADone,)}"=="false",)}
        
      • 添加 Test Action 采样器作为 While 控制器的子级,并将其配置为暂停合理的秒数,即 5 秒,这样每 5 秒 While 控制器将检查 ThreadGroupADone 属性 值,如果它仍然是 false - 再睡 5 秒。当 属性 值将变为 true - 线程组 D 将继续。