Jmeter Test

A guide for creating JMeter test on Loadium

You should choose “Create JMeter Test” option on the main screen. There are 3 main steps to follow to create a JMeter test.

Step 1: Basic Settings

  • Test Name is a mandatory field as it will be in the name you will see when you go to “Tests“ menu.

  • Project is an optional field that allows you to assign your tests to a specific project in order to group them.

  • Upload File field let you upload JMeter scripts, CSV file or other third-party JARs. Whenever a test is saved, newly added files are uploaded to our servers. In case there’s an update, Loadium will automatically update the files by matching them by their file name.

Note: At least one JMX file is mandatory to save a performance test project.

Note: In case, your JMeter scripts are using a CSV file, this file’s location should be an absolute path.

🙌🏻 Example: In case JMX file has “/usr/loadium/perf_test/user_data.csv” as CSV file path, it should be changed to “user_data.csv”. Uploaded files will be stored in the same directory in remote engines so there shouldn’t be a relative path.

  • Split CSV File: Select this option to split your CSV data into engines uniquely. You can find more detailed information about this feature here.

  • JMeter Version: Choose the JMeter version where you implemented your test scripts.

  • Sandbox Test: If you just want to make sure that your system is ready for testing, or your script is is properly working, you can enable this option. Enabling sandbox test will limit the test configuration to the minimum, and running a test while this option is enabled will not cost as a test count

Performance Test Parameters

Performance test parameters can be configured in your JMeter scripts. But for some cases, you may want to override them. So, you use those options to change any value you want. In case you want to use uploaded JMeter script’s configuration, tick the checkbox next to each parameter.

  • Total Thread Count: Total amount of virtual users that are going to execute the script. Calculated by Engine Count * Thread Per Engine Count

  • Engine Count: Amount of engines that will be used for the test execution.

  • Thread Per Engine Count: This parameter lets you define thread number to create in each engine generated.

  • Ramp Up Time: The amount of time (in seconds) to reach the total thread count, starting from 0 threads. Threads increase linearly.

🙌🏻 Example: In case you have 500 total thread count and  10 seconds ramp-up time, for every second, 50 threads will be generated by Loadium.

  • Iteration: Number of iterations for every thread to execute the test script.

  • Duration: Test period (in minutes) for Loadium to execute.

Note: If your test script has 3 Thread Groups in it and you set 500 thread on test configuration, Loadium will override each Thread Group. So the total number of Thread count will be 1500. This might corrupt your metrics in case it is not considered. So be careful about it!

Note: The execution time of a test script is defined by Duration or Iteration parameters. In case not all iterations are completed during the defined “Duration”, test execution will stop. The same rule applies vice versa. If all “Iterations” are completed before the defined “Duration”, the test will stop.

Limit TPS

This parameter allows you to limit the total throughput (requests happening per second) of the test’s execution. This limitation works on engines individually, so if you are using “X” amount of engines, the maximum throughput across all engines will be limited to X * Limit Value. You can find more detailed information about TPS here.

Geolocation

In order to create a realistic performance test, tests needed to be run on different geolocations. Loadium lets you select geolocation according to your performance needs. When a network is chosen, engines will be generated in that particular region and all requests will come from that region. You can find more detailed information about Geolocation here.

Network Type

Loadium lets you choose different network types to simulate network behavior by imitating the bandwidth and network delays.

They all have different bandwidth and network delay values. In case nothing is selected, by default Wifi is set to all engines. You can find more detailed information about Network Types here.

Note

You can write a note for your test which you can access later.

Send Email

In case you would like to be notified by e-mail after the test ends, you can enable this feature.

Dedicated IP

If the system that is going to be tested has access limitations such as a firewall or DDoS protection, you can rent static IP’s and whitelist them to allow Loadium to perform a load test on the system. Enabling this option will run the test with the rented dedicated IP’s. To rent dedicated IP’s, please contact our support. You can find more detailed information about Dedicated IP’s here.

Step 2: Advanced Settings JMeter Properties

When a JMeter script is executed, execution is done with some predefined configurations. In order to override those configurations, you need to change some configurations by using Advanced Settings. Furthermore, you can also define variables and change their values using these settings.

🙌🏻Example: If you want to change that JTL to save response headers, you need to set JMeter.save.saveservice.responseHeaders to true

You can also add additional command line parameters to your execution.

Every JMeter script creates a JTL file after its execution. That JTL files content is defined by JMeter.properties file and Loadium always executes the default one. You can change the JTL file’s content by using this option.

Note: Those values must be carefully selected as they might corrupt the test and its results.

Step 3: Test Failure Settings

Loadium allows you to define a set of rules to track certain conditions, or even automatically stop the test if the condition is met. You can find more detailed information about Test Failure Settings here.

Happy testing!

If you don't see the answer to your question here, please reach out to us to let us know! We're always improving our documentation.