katebl58
katebl58

Reputation: 143

Jmeter: Running the nongui command using java

I am trying to run the jmeter nongui command using java as follows:

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

It runs perfectly fine, until I add the argument: -Jusers=15 inside the command mentioned above in the next run.

The property set for the number of threads is: ${__P(users,10)}

The result file does not seem to fill up and the process seems to run forever under the CPU Resource monitor.

P.S.: Please do not suggest me to run the jmeter file using the steps given in the blazemeter website. It has used one of the deprecated method and there is no resolution given for the plausible runtime errors in that website.

Upvotes: 0

Views: 920

Answers (3)

vernjan
vernjan

Reputation: 371

Use this snippet.

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

Upvotes: 0

katebl58
katebl58

Reputation: 143

It works after I add the property value for Synchronization timer similar to Thread count.

Also, if I have to pass the value of -Jusers in the form of variable, how to do it? I am trying to do the following. But it's not getting executed. eg: 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");

Update:

I tried with String value="10"; as well. Still the jmeter logs says:

"jmeter.reporters.Summariser: summary = 0 in 0s = ******/s Avg: 0 Min: 9223372036854775807 Max: -9223372036854775808 Err: 0 (0.00%)"

Upvotes: 0

Richard Friedman
Richard Friedman

Reputation: 942

I was not able to reproduce your error, but here is a complete example with JMX File. I removed the need for the "".

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

Just to make sure I ran modified on Windows as well

// 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

Upvotes: 1

Related Questions