JMeter Options

JMeter scenarios have various options available. This document describes each option in detail.

Scenario

Basic

Includes the basic setup to define your scenario:

  • Test Plan: You must upload a JMeter test plan (*.jmx file). The data files are shared across the test case so if you have uploaded multiple test plans make sure you select the one you want to use in this scenario.
  • JMeter Version: Which version of the JMeter application to use. Currently only 2.13 is supported. Please contact us to request other version added.

Thread Group Parameters

Thread Group Parameters

Thread Group defines various concurrency parameters for your test including threads, iterations, duration, and ramp up time. These are specified in your test plan and can be overridden in the scenario definition.

Make sure to read the JMeter Test Configuration documentation to fully understand how the Testable test configuration affects the overall concurrency of your test.

  • Threads: Number of threads. Each thread will execute the test plan in its entirety and completely independently of other test threads. Multiple threads are used to simulate concurrent connections to your server application.
  • Iterations: Number of times to execute your test on each thread.
  • Ramp Up: The number of seconds to take scaling to the desired number of tests in a linear fashion. If 10 threads are used, and the ramp-up period is 100 seconds, then JMeter will take 100 seconds to get all 10 threads up and running. Each thread will start 10 (100/10) seconds after the previous thread was begun.
  • Delay + Duration: Instead of specifying iterations you can specify a delay and duration in seconds. The delay indicates how long to wait after the test plan starts executing before starting the first thread. The duration indicates how long to loop through the test for before finishing.

Properties

Properties

There are quite a few ways to load properties into your JMeter runtime environment. Testable supports most of these. We try to provide sensible defaults for everything but feel free to override anything you want.

  • System Properties: Specify Java system properties in the format -Dfoo=bar -Dabc=def. Inside your JMeter test plan these are available using the ${__P(foo,defaultVal)} syntax.
  • JMeter Properties: Specify JMeter properties in the format -Jaaa=bbb. Inside your JMeter test plan these are available using the ${__P(aaa,defaultVal)} syntax. These are often used to initialize JMeter plugins or other extras.
  • System Properties Files: Just like above except upload a system properties file with one or more settings. NOTE that these files do not have to be uploaded. You can use a remote URL like http://mywebserver.com/custom.properties.
  • JMeter Properties Files: Just like above except upload a JMeter properties file with one or more settings. NOTE that these files do not have to be uploaded. You can use a remote URL like http://mywebserver.com/jmeter.properties.

Custom Metrics

Custom Metrics

Use Javascript code to process each result produced from executing your JMeter test plan. The function you specify will be called once per result. The row parameter is an object of key/value pairs corresponding to the JMeter results. For example:

{ 
    timestamp: 1449940220375,
    connectionCloseMs: 217,
    label: 'HTTP Request',
    httpResponseCode: '200',
    threadName: 'Thread Group 1-1',
    success: 'true',
    bandwidth: 155310,
    url: 'http://www.google.com/',
    firstReceivedMs: 107,
    connectionOpenMs: 72
}

The result parameter is the Testable object to which you can add your custom metrics.

See the write a script and custom metrics guides for more details on all the options available to you when writing this function.

When you check the box to enable the custom metrics function, some sample code is inserted to get you started.

JMeter JARs

Feel free to upload JAR files for JMeter plugins, utilties, and dependencies to your scenario. Then in this section of the scenario choose which JARs you want to put in the plugin directory (i.e. lib/ext) and which to put in the utilities and dependencies directory (i.e. lib).

Params

Params

Parameters are a way to specify values when defining your Test Configuration and then utilizing these within your scenario.

For example let's say we want to change the number of threads per test plan when defining our Test Configuration.

  1. Add a Threads parameter in the Params section.
  2. Use this value within a property using the ${Threads} syntax or within your custom metrics function using params['Threads'] javascript syntax.
  3. When you create your Test Configuration it will ask you to specify a value for Threads. This value will then be passed down into your test plan as defined above.