Buse Kaya
Buse Kaya

Reputation: 95

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

Upvotes: 6

Views: 18080

Answers (2)

Dmitri T
Dmitri T

Reputation: 168147

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

Upvotes: 10

Ori Marko
Ori Marko

Reputation: 58862

Put ${__P(url)} inside Server Name field in HTTP Request.

Domain name or IP address of the web server, e.g. www.example.com. [Do not include the http:// prefix.] Note: If the "Host" header is defined in a Header Manager, then this will be used as the virtual host name.

Don't use User Defined Variables

Upvotes: 1

Related Questions