Jmeter:在所有其他线程组完成后,是否可以 运行 一个特定的线程组
Jmeter: Is it possible to run a particular thread group after all the other thread group gets completed
在 JMeter 中,我有一个要求,我想在所有其他线程组完成它们的 运行 之后 运行 一个特定的线程组,我知道 tearDown 线程组具有类似的行为但是不幸的是,逻辑必须成为我的常规线程的一部分。
假设我的测试计划中有 4 个线程组 A、B、C 和 D,我希望线程组 D 仅在 A、B 和 C 完成它们的 运行 后执行。
我们可以不使用 "setup, teardown & Run groups one at a time" 实现吗??
问题截图:
我可以建议 2 个选项:
- 使用 Inter-Thread Communication Plugin. See example test plan 获取详细信息。
如果出于某种原因您无法使用 JMeter 插件,您可以使用 JMeter 属性实现相同的效果,例如:
当线程组 A 完成设置 JMeter 属性,即 ThreadGroupADone=true
使用 __setProperty() 函数,如
${__setProperty(ThreadGroupADone,true,)}
在线程组 D 中:
在Thread Group开头添加While Controller,使用条件如下:
${__javaScript("${__P(ThreadGroupADone,)}"=="false",)}
- 添加 Test Action 采样器作为 While 控制器的子级,并将其配置为暂停合理的秒数,即 5 秒,这样每 5 秒 While 控制器将检查
ThreadGroupADone
属性 值,如果它仍然是 false
- 再睡 5 秒。当 属性 值将变为 true
- 线程组 D 将继续。
在 JMeter 中,我有一个要求,我想在所有其他线程组完成它们的 运行 之后 运行 一个特定的线程组,我知道 tearDown 线程组具有类似的行为但是不幸的是,逻辑必须成为我的常规线程的一部分。
假设我的测试计划中有 4 个线程组 A、B、C 和 D,我希望线程组 D 仅在 A、B 和 C 完成它们的 运行 后执行。
我们可以不使用 "setup, teardown & Run groups one at a time" 实现吗??
问题截图:
我可以建议 2 个选项:
- 使用 Inter-Thread Communication Plugin. See example test plan 获取详细信息。
如果出于某种原因您无法使用 JMeter 插件,您可以使用 JMeter 属性实现相同的效果,例如:
当线程组 A 完成设置 JMeter 属性,即
ThreadGroupADone=true
使用 __setProperty() 函数,如${__setProperty(ThreadGroupADone,true,)}
在线程组 D 中:
在Thread Group开头添加While Controller,使用条件如下:
${__javaScript("${__P(ThreadGroupADone,)}"=="false",)}
- 添加 Test Action 采样器作为 While 控制器的子级,并将其配置为暂停合理的秒数,即 5 秒,这样每 5 秒 While 控制器将检查
ThreadGroupADone
属性 值,如果它仍然是false
- 再睡 5 秒。当 属性 值将变为true
- 线程组 D 将继续。