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

时间:2016-09-27 12:28:52

标签: jmeter performance-testing load-testing beanshell blazemeter

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

假设有4个线程组A,B,C& D在我的测试计划中,我希望线程组D仅在A,B和B之后执行。 C将完成他们的跑步。

我们可以在不使用"设置,拆卸和放大的情况下实现这一目标吗?一次运行一个组#34; ??

问题ScreenShot:

enter image description here

1 个答案:

答案 0 :(得分:1)

我可以建议2个选项:

  1. 使用Inter-Thread Communication Plugin。有关详细信息,请参阅example test plan
  2. 如果由于某种原因您无法使用JMeter插件,您可以使用JMeter Properties实现相同的功能,如:

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

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

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

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