使用“立即停止/停止”操作添加Test Action
您有目标选项:所有主题/当前主题
在多线程环境中选择当前线程时,它会停止并且不再继续使用此采样器
问题在于选择所有主题时有些线程会在Test Action
之后执行其他采样器
这非常令人困惑,因为我希望All Threads
选项比Current Thread
更严格
在代码中我看到它在当前线程中也会停止当前线程context.getThread().stop();
,并且在“所有线程”选项中它不会。
是错误还是功能(添加停止的宽限期)?
例如测试计划:
采样器2仅在Target:All Threads时执行,而不在Target:Current Thread
时执行注意:同样选择Action Go to next loop iteration
(禁用目标字段)会阻止Sampler2执行
答案 0 :(得分:2)
现在停止和停止是不同的:
当前线程只会停止当前线程而不是所有线程,所以可以:
在多线程环境中选择“当前线程”时,它会停止并且不再继续此“采样器”
所有线程将在我们拥有的代码中对所有测试线程执行操作:
if (action == STOP_NOW) {
log.info("Stopping all threads now from element {}", getName());
context.getEngine().stopTest();
} else {
log.info("Stopping all threads from element {}", getName());
context.getEngine().askThreadsToStop();
}
关于您的具体情况,以下是正在发生的事情:
当您选择“当前线程”时,JMeter会立即停止当前线程,因为此操作在测试操作
当您选择“所有线程”时,JMeter异步触发对所有线程关闭/停止的调用,这就是调用Sampler2的原因
您可能认为这是一个错误,但我认为用例是不同的。 现在还在修复: