在 Beanshell 预处理器中停止 JMeter 测试

Bla*_*oil 2 java preprocessor jmeter beanshell

我需要一种方法来阻止我的主要示例的执行并停止我的测试。

我已经在 stackoverflow 上阅读了这篇文章,但这并不妨碍主示例的执行。JMeter - 从 BeanShell 预处理器中停止线程

我在 JMeter 3.2 中有一个 HTTP 采样器(可以是除 BeanShell 采样器之外的任何其他示例),其中包含以下代码行的 BeanShell 预处理器:

org.apache.jmeter.engine.StandardJMeterEngine.stopThread(Thread.currentThread().getName()); 
Run Code Online (Sandbox Code Playgroud)

现在这确实停止了我的测试,但不是在执行主示例之后。所以我需要一些东西来停止我的测试并防止主样本被执行。

任何帮助将不胜感激!

Dmi*_*i T 6

只需ctx.getEngine().askThreadsToStop()在需要的地方调用,它就会执行正常关闭。

比较“硬”的方法有:

ctx.getEngine().stopTest();
Run Code Online (Sandbox Code Playgroud)

甚至

System.exit(1);
Run Code Online (Sandbox Code Playgroud)

请记住,不建议使用 Beanshell 进行脚本编写,从 JMeter 3.1 开始,鼓励用户切换到JSR223 测试元素Groovy语言,请查看Apache Groovy - Why and How You Should Use It 了解详细信息。