JMeter的。如何确定线程组何时完成

时间:2014-10-20 12:07:02

标签: jmeter threadgroup

我需要运行两个单独的线程组(第二组具有无限循环计数)。当第一组完成后停止第二组。如何确定第一组的完成时间?

3 个答案:

答案 0 :(得分:4)

这对我有用:

  • Crete" BeanShell PreProcessor"使用此代码:
    props.put("DONE", "FALSE");
  • 创建" BeanShell PostProcessor"使用此代码:
    int activeThreadCount = org.apache.jmeter.threads.JMeterContextService.getNumberOfThreads(); if (activeThreadCount <= 1) { props.put("DONE", "TRUE"); }

如果控制器添加:
${__BeanShell( props.get("DONE") != null && props.get("DONE")=="TRUE")}

如果控制器内部停止当前线程。

答案 1 :(得分:2)

您可以将后处理器附加到第一个线程组,该线程组在属性中设置标志值。

您的第二个线程组将包含一个循环,直到该属性包含您正在等待的标志值。

答案 2 :(得分:0)

您可以使用以下解决方案:

主题组1
      Beanshell采样器 - props.put(&#34;完成&#34;,&#34; FALSE&#34;);
      HTTP1
      HTTP2
      ....
      Beanshell Sampler - props.put(&#34; finish&#34;,&#34; TRUE&#34;);

线程组2
      Controller - $ {__ BeanShell(props.get(&#34; finish&#34;)!= null || props.get(&#34; finish&#34;)==&#34; TRUE&#34;)}
            HTTP1
            HTTP2
            ....

希望这会有所帮助。