Apache 如何在jsr223采样器中暂停线程执行

Apache 如何在jsr223采样器中暂停线程执行,apache,jmeter,Apache,Jmeter,我使用以下代码在特定条件下停止使用jsr223采样器的线程。 线程组.stop(Thread.currentThread.getname()) 但是jmeter引擎忽略了上述条件并继续。 有人能帮上忙吗 问候 Shankar呼叫SampleResult SampleResult.setStopThread(真) 见: 正确的功能是 还要注意的是,它们不同于,即它们有不同的“名称” 因此,您需要修改代码,使其看起来像: ctx.getThreadGroup().stopThread(ctx

我使用以下代码在特定条件下停止使用jsr223采样器的线程。 线程组.stop(Thread.currentThread.getname()) 但是jmeter引擎忽略了上述条件并继续。 有人能帮上忙吗

问候
Shankar

呼叫SampleResult

SampleResult.setStopThread(真)

见:


    • 正确的功能是

      还要注意的是,它们不同于,即它们有不同的“名称”

      因此,您需要修改代码,使其看起来像:

      ctx.getThreadGroup().stopThread(ctx.getThread().getThreadName(),true)
      
      其中,
      ctx


      您还可以查看以了解使用Groovy脚本还可以做些什么。

      Hi Dmitry感谢您发布语法。.函数返回true。但是此语句后面的行仍在执行中。那么这里还有什么我需要做的吗。JSR223采样器本身是不可中断的,这些行仍将由Groovy脚本引擎执行。但是,如果您在JSR223采样器下面有任何其他采样器,它们将不会执行,因为线程将停止。感谢Dmitri..但有点奇怪,我无法在JSR223中挂起线程..再次感谢您的快速响应加载包,这也不起作用。这是一个示例codedef x=1;if(x>1){log.info(“保留线程”);}else{log.info(“挂起线程”);SampleResult.setStopThread(true);}log.info(“条件后的语句”);2018-08-21 11:09:23694信息o.a.j.p.j.s.JSR223采样器:挂起线程2018-08-21 11:09:23695信息o.a.j.t.JMeterThread:停止:线程组1-1 2018-08-21 11:09:23695警告o.a.j.t.JMeterThread:采样器不可中断:JSR223采样器2018-08-21 11:09:23696信息o.a.j.p.j.s.JSR223Sampler:条件后的语句线程不可中断在采样器中立即停止,但在完成之后。我确信这一点。在java中,不能立即停止线程。在我看来,你接受了错误的答案。你应该知道我们是JMeter的提交人。是的。这是真的。当我检查采样器时,采样器在当前迭代后被挂起。。谢谢你的留言:)