jmeter pass command line variables into a jmx

GeorgeFabian picture GeorgeFabian · Nov 6, 2013 · Viewed 50.1k times · Source

I'm trying to automate some perf testing. I'd to pass server locations into a generic jmx from a Jenkins job. I'd like to be able to do something like:

jmeter -n -t foo.jmx -JtestingIP=IP

and have foo.jmx pick up testingIP.

What is the proper way to do this? When I run that jmeter command, it says that the variable has been stored, but inserting either ${testingIP} or ${\_\_P(testingIP,)} into the jmx results in ${testingIP} or ${\_\_P(testingIP,)} to be interpreted as just a string.

What am I doing wrong/not doing at all? Is this even possible?

Answer

Refael picture Refael · Nov 7, 2013

All you need to do is start your JMeter from the command line (or shell) with the -J option. For example :

-JTestIP=10.0.0.1

And in your script, to get the value, just use function _P:

Example:

${__P(TestIP)}

That should do it.

Note you should put a default value in case you run the script without passing that JMeter property like:

${__P(TestIP,1.1.1.1)}