2

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

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

我们可以在不使用“一次一个设置、拆卸和运行组”的情况下实现这一目标吗?

问题截图:

在此处输入图像描述

4

1 回答 1

2

我可以建议 2 个选项:

  1. 使用线程间通信插件。有关详细信息,请参阅示例测试计划
  2. 如果由于某种原因您无法使用 JMeter 插件,您可以使用 JMeter 属性实现相同的功能,例如:

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

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

      • 在线程组的开头添加While 控制器并使用以下条件:

        ${__javaScript("${__P(ThreadGroupADone,)}"=="false",)}
        
      • 测试操作采样器添加为 While 控制器的子项,并将其配置为暂停合理的秒数,即每 5 秒暂停 5 秒,而控制器将检查ThreadGroupADone属性值,如果它仍然存在false- 再休眠 5 秒。当属性值变为true- 线程组 D 将继续。
于 2016-09-27T17:43:45.707 回答