Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: [Original edit by JMeterAdmin] Clarify properties/variables

...

  • know the basics of JMeter
  • have an existing test plan
  • have a bit of knowledge on using variables in test plans
  • have touched on remote testing (from GUI is fine)

Set up

  • Wiki Markup
    In your existing test plan, make sure that any variations in testing make use of functions or variables. For example, if running a HTTP sampler, use HTTP Request Defaults to specify a host as {{$\{+P(targetHost,localhost)\}}}. Other useful places for
    variables
     parameterisation might include number of threads, ramp-up period or scheduler duration in a thread group, using a format of {{$\{+P(threadgroup.threads,500)\}}}  (The {{+P}} function is shorthand for
    +parameter. See the userguide for more info on using this parameter
     {{+property}}. See the \[http://jakarta.apache.org/jmeter/usermanual/functions.html#__P user manual\] for more info on using this function).
  • Save your test plan and properties file to a directory.
  • Create a properties file containing all your variables. E.g. mytest.properties could contain threadgroup.threads=100, targetHost=my-target-host.com
  • The test plan does not need Listeners, as this will be configured via parameters. This will improve performance on the testing.
  • Run the test mode in stand-alone mode (i.e. no remote servers): jmeter -n -t load_test.jmx -l load_test_report.jtl -q mytest.properties -j mytest.log
  • 1 small piece of functionality missing is the ability to set global variables from a property file. the The "-q" parameter defines an additional property file, which is the equivalent of setting properties for the contents of the file using the -J parameter. These parameters are not global however, as would be set by sent to remote servers; for that one can use the -G parameter. The -G parameter can reference either a property in the format of -Gprop=val or a properties file, such as -G./myglobal.properties
  • Properties can be referenced anywhere in the test plan using the +P() function - e.g. ${+P(propname)}
  • There is no way currently to predefine variables, however the User Defined Variables table on the Test Plan can be used to create variables from properties. For example:

Name:

Value:

HOST

${__P(host,localhost)}

  • On all client machines, start up JMeter server, ensuring that firewall is not blocking connections (clients must all be on the same subnet).
  • On JMeter controller (the host initializing the test), run the test with the -R parameter (can be run using -r and specfiying hosts in jmeter properties file):
    jmeter -n -t load_test.jmx -l load_test_report.jtl -Gmytest.properties -j mytest.log -R remotehost1,remotehost2 ${GLOBAL_VARS}

...