Jmeter 非UI界面jmx脚本不能正常退出

脚本执行过程中出现过jmeter脚本不能正常退出的现象,如下报错:

... end of run
The JVM should have exited but did not.
The following non-daemon threads are still running (DestroyJavaVM is OK):
Thread[commons-pool-evictor-thread,5,main], stackTrace:sun.misc.Unsafe#park
java.util.concurrent.locks.LockSupport#parkNanos at line:215
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject#awaitNanos at line:2078
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue#take at line:1093
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue#take at line:809
java.util.concurrent.ThreadPoolExecutor#getTask at line:1074
java.util.concurrent.ThreadPoolExecutor#runWorker at line:1134
java.util.concurrent.ThreadPoolExecutor$Worker#run at line:624
java.lang.Thread#run at line:748

Thread[DestroyJavaVM,5,main], stackTrace:

解决办法:修改/usr/Jmeter/apache-jmeter-5.1.1/bin/jmeter.properties ,jmeterengine.force.system.exit=true(默认为false)

转载于:https://www.cnblogs.com/learner34/p/10821063.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Java的ProcessBuilder类来执行JMeterjmx脚本。以下是一个示例代码: ``` import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; public class JMeterRunner { public static void main(String[] args) { String jmeterHome = "C:\\apache-jmeter-5.4.1"; String jmxFile = "C:\\test.jmx"; String jtlFile = "C:\\test.jtl"; String jmeterBin = jmeterHome + "\\bin\\jmeter.bat"; // Build command line arguments List<String> command = new ArrayList<String>(); command.add(jmeterBin); command.add("-n"); command.add("-t"); command.add(jmxFile); command.add("-l"); command.add(jtlFile); // Build process builder ProcessBuilder pb = new ProcessBuilder(command); pb.directory(new File(jmeterHome)); // Start JMeter process try { Process process = pb.start(); // Read JMeter output BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } // Wait for JMeter to finish process.waitFor(); } catch (IOException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } } ``` 在这个示例中,jmeterHome是JMeter的安装目录,jmxFile是要执行的jmx脚本的路径,jtlFile是结果文件的路径。然后创建一个ProcessBuilder对象,将JMeter的bin目录作为工作目录,并传递命令行参数来运行JMeter。启动JMeter进程后,可以读取JMeter的输出并等待进程完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值