1

我正在寻找一种使用 Java 包装 JMeter CLI 的方法。但是,我一直坚持如何找到它并在找到它后执行它。在我自己的用户上,jmeter在我的路径上可用。但是,当我尝试像这样执行它时:

ProcessBuilder processBuilder = new ProcessBuilder("jmeter");
processBuilder.start();

我得到:

Exception in thread "main" java.io.IOException: Cannot run program "jmeter": error=2, No such file or directory
        at java.lang.ProcessBuilder.start(ProcessBuilder.java:1042)
        at com.vodori.pepper.loadtester.Main.main(Main.java:10)
        Caused by: java.io.IOException: error=2, No such file or directory
        at java.lang.UNIXProcess.forkAndExec(Native Method)
        at java.lang.UNIXProcess.<init>(UNIXProcess.java:135)
        at java.lang.ProcessImpl.start(ProcessImpl.java:130)
        at java.lang.Proc

我不确定如何最好地将 jmeter 添加到我的路径中。我可以在我的文件系统上硬编码 JAR 的路径,但我需要一个可移植的解决方案。


交替

对于我的情况,我也很感激其他解决方法。基本上,我需要为每个 jmeter 运行生成模拟数据。数据需要有多种类型(例如,JPEG、PDF、XLS),并且文件名需要可跟踪每个线程。我认为创建一个指向生成数据的 CSV 文件将是解决此问题的一个不错的、相对简单的解决方案,但我很高兴听到其他选择。

4

1 回答 1

1

ProcessBuilder 不处理查找和运行正确可执行文件的一般方法。这些好人推荐的方法:http ://commons.apache.org/proper/commons-exec/是使用您正在寻找的程序作为第一个参数来调用 shell。

由于您必须首先确定您的体系结构并调用其中之一cmd.exe/bin/sh适当地调用,然后您传入jmeter(or jmeter.bat) 作为第一个参数,并让本机操作系统处理其余部分。

于 2013-05-31T17:51:29.290 回答