2015-08-28 25 views
0

我尝试按以下方式运行使用Java jmeter nongui命令nongui命令:JMeter的运行使用Java

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(users,10)}

结果文件似乎并没有填满,过程似乎对CPU资源监视器下运行下去。

P.S.:请不要建议我使用blazemeter网站中提供的步骤来运行jmeter文件。它使用了不推荐使用的方法之一,并且没有针对该网站中可能出现的运行时错误给出解决方案。

+0

Jmeter日志文件是否显示任何错误或帮助点在这个问题? –

+0

你会得到什么错误?请显示jmeter.log,当它打破时,您还可以显示完整的代码吗? –

+0

没有错误。网络资源监视器中的进程ID运行一段时间,然后熄灭。但是CPU资源监视器仍然显示与状态运行相同的进程ID。 – katebl58

回答

1

我无法重现您的错误,但这里是JMX文件的完整示例。我删除了对“”的需求。

// 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"); 
     } 
    } 

JMeter Test Plan

+0

嗨理查德,它打破了用户只有当他添加-Jusers = 10 –

+0

对不起,我发布的代码没有-J,但我测试了两个。感谢您的接触 - 更新示例 –

+0

实际上Windows示例确实有--Jusers = 20 –

0

它的工作原理后,我加入了类似线程数同步定时器的属性值。

另外,如果我必须以变量的形式传递-Jusers的值,该怎么做呢?我正在尝试做以下事情。但它没有被执行。例如: int value = 10; Process 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 \ Desktop \ nonGUI.csv“);

更新:

我与字符串值= “10” 尝试;以及。仍然JMeter的日志说:

“jmeter.reporters.Summariser:摘要= 0中的0 = ******/s的平均值:0最小:9223372036854775807最大:-9223372036854775808错误:0(0.00%)”

+0

您是否试图从命令行传入? java RunMyTest 50 –

+0

@RichardFriedman,no。我使用eclipse,而java程序有上面的代码片段。你能告诉我如何在下面的代码中传递变量代替值吗?它不工作。 int value = 2; 运行时rt = Runtime.getRuntime(); 进程pr = rt.exec(“C:\\ apache-jmeter-2.13 \\ bin \\ jmeter.bat -t \”C:\\ jmeter scripts \\ test.jmx \“-Jusers = value -Jsync =值-n -l“C:\\ jmeter脚本\\ nonGUI.csv \”-j \“C:\\ jmeter脚本\\ jmeterLogs.log \”“); – katebl58

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\"");