2

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

4

3 回答 3

6

这对我有用:

  • 克里特岛“BeanShell PreProcessor”,代码如下:
    props.put("DONE", "FALSE");
  • 使用以下代码创建“BeanShell PostProcessor”:
    int activeThreadCount = org.apache.jmeter.threads.JMeterContextService.getNumberOfThreads(); if (activeThreadCount <= 1) { props.put("DONE", "TRUE"); }

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

停止 If 控制器内的当前线程。

于 2014-10-26T16:57:26.763 回答
2

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

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

于 2014-10-21T01:59:53.540 回答
1

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

线程组 1
Beanshell 采样器 - props.put("finish", "FALSE");
HTTP1 HTTP2
....
Beanshell
采样器 - props.put("finish", "TRUE");

线程组 2
While Controller - ${__BeanShell( props.get("finish") != null || props.get("finish")=="TRUE" )}
HTTP1
HTTP2
....

希望这会有所帮助。

于 2014-10-21T04:48:23.897 回答