如何在某个步骤中暂停所有线程组,直到进程在其他线程组中完成 - Jmeter

时间:2018-05-11 13:24:41

标签: groovy jmeter

我有一个复杂的场景,我想在Jmeter测试计划中构建。 我有一个测试计划,我想在同一时间开始运行一些测试。 我创建了3个线程组,问题是我希望线程组2 + 3在步骤2中保持,直到线程组1(外部进程)完成。 (外部进程是运行jenkins作业,它使用在我的系统中的步骤1 + 2中创建的数据。如果jenkins没有完成,则接下来的所有步骤3 - 100将失败) 复杂性是我希望所有线程将一起开始运行,线程组(= tests)2 + 3将在步骤2之后保持,并等待线程组1的外部进程完成并继续运行。这种情况可以在Jmeter中完成吗?没有在线程2 + 3中使用延迟? 请参阅附件中我想要创建的图片

** test2 + 3中的步骤1 + 2必须在外部进程之前运行,步骤3必须在外部进程之后运行

[enter image description here] [测试计划]

[enter image description here] [完整测试计划 - 测试2 + 3中的第3步必须在外部进动后运行]

1 个答案:

答案 0 :(得分:0)

在努力解决方案后,我发现阳光帮助是使用while循环+系统属性。 我在第一个线程组标志中创建并以0开始。 flag是系统变量所以我使用props.put(" flag",flag)命令。 在第二个线程组中,我使用${__javaScript(props.get("_flag") == 0)}循环 作为条件。 我使用了Test Action sampler,并将其置于while循环中,操作Pause和持续时间为5000毫秒 - 循环将每隔5秒检查一次标志。 完成作业后,我输入系统变量flag = 1.并且循环被加载