Search code examples
command-linejmeter

How to Use Command Line Parameters in JMeter


I'm using Jmeter for testing APIs and I want to parametrize the project's path from the terminal and then I want to use this parameter in JMeter.

The parameter that I've sent via Command Line :

./jmeter -n -t your_script.jmx -Jurl=abcdef.com

The parameter that I've used in User Defined Variables :

${__P(url)}

But when I run my automation in JMeter, my test scripts are not going to URL that's been defined. When I check the request body, I see POST https://1 as URL.

Please see the attached photos. https://mylifebox.com/shr/3df5bb35-cf43-4488-b20b-5c2d59656212&language=en


Solution

  • Let's start clean:

    1. In the User Defined Variables configure the variable with the name of url and the value of ${__P(url,)}

      enter image description here

    2. In the HTTP Request sampler (or even better HTTP Request Defaults) put ${url} into "Server Name or IP" field:

      enter image description here

    3. Run your test in command-line non-GUI mode like:

      jmeter -n -t your_script.jmx -Jurl=abcdef.com -f -l result.jtl
      

      mind this -f argument which tells JMeter to overwrite the existing results file (it might be the case you're looking into "old" results where the url property value was starting with 1)

    4. That's it, you should see the HTTP Request sampler making a call to abcdef.com in the .jtl results file. And if you change this url parameter - you will see the impact in the .jtl results file:

      enter image description here