我正在尝试使用java运行jmeter nongui
命令,如下所示:
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("C:\\apache-jmeter-2.13\\bin\\jmeter.bat -t \"C:\\jmeter scripts\\test.jmx\" -n -l \"C:\\jmeter scripts\\nonGUI.csv\"");
它运行得非常好,直到我添加参数:
-Jusers=15
在下一次运行中上面提到的命令中。{/ p>
为线程数设置的属性为:${__P(users,10)}
结果文件似乎没有填满,并且该进程似乎永远在CPU资源监视器下运行。
P.S。:请不要建议我使用blazemeter网站上给出的步骤运行jmeter文件。它使用了一种已弃用的方法,并且没有给出该网站中可能的运行时错误的解决方案。
答案 0 :(得分:1)
我无法重现您的错误,但这是JMX File的完整示例。我删除了对#34;"的需要。
// OSX exmaple
public class r {
public static void main(String[] args) throws Exception {
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("/usr/local/bin/jmeter -t /Users/rfriedman/jmeter/SimpleUrl.jmx -Jusers=15 -n -l /Users/rfriedman/jmeter/nonGUI.csv");
}
}
只是为了确保我在Windows上运行修改
// Windows Example
public class r {
public static void main(String[] args) throws Exception {
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("C:\\Users\\rfriedman\\Desktop\\apache-jmeter-2.13\\bin\\jmeter.bat -t C:\\Users\\rfriedman\\Desktop\\SimpleUrl.jmx -Jusers=20 -n -l C:\\Users\\rfriedman\\Desktop\\nonGUI.csv");
}
}
答案 1 :(得分:0)
在我为同步计时器添加类似于线程计数的属性值后,它可以正常工作。
另外,如果我必须以变量的形式传递-Jusers的值,该怎么做?我正在尝试执行以下操作。但它没有被执行。 例如: int值= 10; 处理pr = rt.exec(“C:\ Users \ rfriedman \ Desktop \ apache-jmeter-2.13 \ bin \ jmeter.bat -t C:\ Users \ rfriedman \ Desktop \ SimpleUrl.jmx -Jusers = value -n -l C:\ Users \用户rfriedman \桌面\ nonGUI.csv“);
<强>更新强>
我尝试使用String value =“10”;同样。 jmeter日志仍然说:
“jmeter.reporters.Summariser:summary = 0 in 0s = ****** / s Avg:0 Min:9223372036854775807 Max:-9223372036854775808 Err:0(0.00%)”
答案 2 :(得分:0)
使用此代码段。
int value = 10;
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("C:\\apache-jmeter-2.13\\bin\\jmeter.bat" +
" -t \"C:\\jmeter scripts\\test.jmx\" -Jusers=" + value + " -Jsync=" + value +
" -n -l \"C:\\jmeter scripts\\nonGUI.csv\" -j \"C:\\jmeter scripts\\jmeterLogs.log\"");