# Welcome to Loadium

Effective - Innovative - Simple

Got questions about using Loadium or anything related to load testing? This comprehensive guide will walk you through everything, from designing your first load test to analyzing your test results, and the latest technologies available related to load testing.

If you're new to Loadium and you are familiar with load testing, you can check out our Quick Start guide to get things going quickly.

{% content-ref url="/pages/hI2S1v1P7s5BIs9sCHgV" %}
[Quick Start](/creating-your-first-test-1)
{% endcontent-ref %}

If you're new to load testing, we recommend starting with "**Getting Started With Loadium"**. If you're looking for something in particular, you can use the search function or jump to one of the sections below.

{% content-ref url="/pages/MyXygFWRPhcbbkkjn4jQ" %}
[Getting Started with Loadium](/getting-started-1)
{% endcontent-ref %}

Happy Testing!


# Getting Started with Loadium

Loadium is designed to be user-friendly, but things sometimes can get complicated. Please read on if you are looking for more information about load testing and Loadium.

## What is Load Testing?

A brief explanation of load testing for beginners.

Let’s say we are an engineer who is to design a bridge. What should we consider when designing this bridge?

First of all, we have to calculate the maximum number of cars that could pass over the bridge and the average weight of these cars. Similarly, in the software world, applications are designed for a specific concurrent user load.

The load test ensures that potential malfunctions in the system are detected and prevented in advance by identifying problems such as delays and enabling page prevention in the system when multiple users access the application.

The purpose of load testing is to maintain system reliability and performance, to ensure the successful operation of the system software, and to ensure that the end user benefits from the system with full efficiency.

## What is Loadium?

Loadium is a 100% domestic product developed by Testinium Inc. R\&D engineers. Its purpose is to simulate demands from heavy loads and disorganized systems, that are close to real user behavior and provide reports instantly. The most important difference from standard products is that the demands requested from a wide network get the closest results to the real demands and the reach loads of millions of demands can be reached.

### How can Loadium help you run your load tests?

First, you need to create an account to be able to use Loadium and its basic features. There are two types of accounts:

* Free Account (free 10 monthly load tests)
* Paid account

To create an account, go to the website.

After logging in with valid credentials, you will be greeted with Loadium’s home page.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FPl1zEtJYhkzVAspgX9eu%2FLoadium%20home%20io.png?alt=media\&token=40c87e24-fa65-45cc-babb-65d38a461aa5)

You will be presented with Home Page. There are five tabs in the banner menu:

**1. Home:** Displays the list of the created tests, information for previous test runs, and package usage

**2. Projects:** Allows grouping of the created tests and displays them.

**3. Create:** This option allows you to start creating a test with Script Builder, JMeter file, Gatling file, Selenium WebDriver editor, and also presents other options Convert to JMX and JTL to Loadium Report.

**4. Running Test:** This option shows your actively running tests.

**5. Compare Test:** This option allows you to compare the results of test runs with each other.&#x20;

On the upper right, there is a navigation menu.

You can use the <mark style="color:green;">UPGRADE</mark> button to upgrade your subscription to a premium plan.

{% content-ref url="/pages/-MUSAoEB7WKUP6OKgxHU" %}
[Quick Start](/creating-your-first-test)
{% endcontent-ref %}

{% content-ref url="/pages/-MUT5hLDUtoTsSYDaFkV" %}
[Pricing OLD](/about-loadium/pricingold)
{% endcontent-ref %}

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.

Happy Testing!


# Getting Started with Loadium

Loadium is designed to be user-friendly, but things sometimes can get complicated. Please read on if you are looking for more information about load testing and Loadium.

{% embed url="<https://www.youtube.com/watch?v=TzdMpTmNNek>" %}

## What is Load Testing?

A brief explanation of load testing for beginners.

Let’s say we are an engineer who is to design a bridge. What should we consider when designing this bridge?

First of all, we have to calculate the maximum number of cars that could pass over the bridge and the average weight of these cars. Similarly, in the software world, applications are designed for a specific concurrent user load.

The load test ensures that potential malfunctions in the system are detected and prevented in advance by identifying problems such as delays and enabling page prevention in the system when multiple users access the application.

The purpose of load testing is to maintain system reliability and performance, to ensure the successful operation of the system software, and to ensure that the end user benefits from the system with full efficiency.

## What is Loadium?

Loadium is a product developed by Testinium Inc. R\&D engineers to simulate high-load traffic patterns that closely reflect real user behavior and to provide instant, actionable reports. It generates requests from a distributed network to achieve realistic load conditions and supports simulations at scale, including millions of requests.

In addition, Loadium supports a one-to-many user structure, allowing a single user to be associated with multiple companies under a single account. This enables centralized management of test assets, configurations, and environments across different projects or teams without requiring separate accounts.

Users can switch between companies associated with their account by selecting the relevant option from the designated area in the interface.

<figure><picture><source srcset="/files/MQx3n3mWx7wHfvH6h5zi" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FjyeoIFquYbwkSYyz1Baa%2Fimage.png?alt=media&amp;token=d515b987-b5f9-4054-9fb4-cea975a17b67" alt=""></picture><figcaption></figcaption></figure>

### How can Loadium help you run your load tests?

First, you need to create an account to be able to use Loadium and its basic features. There are two types of accounts:

* Free Account (free 10 monthly load tests)
* Paid account

To create an account, go to the website.

After logging in with valid credentials, you will be greeted with Loadium’s home page.

<figure><picture><source srcset="/files/r4Qs7ROjqycnrXLN9rPb" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FqOBUlr2smqoid41eKwQ8%2Fimage.png?alt=media&amp;token=f93f071a-237f-4074-8dd6-e8688914f4d7" alt=""></picture><figcaption></figcaption></figure>

You will be presented with Dashboard Page. There are nine tabs in the banner menu:

**1. Dashboard:** Displays the user’s plan details, the number of tests executed over the past six months, monthly VUH usage, and recent sessions.

**2. Projects:** Allows grouping of the created tests and displays them.

**3. Tests:** Displays the list of created test sessions along with their configuration details, including test type, ramp-up duration, test duration, and number of virtual users.

**4. Create:** This option allows you to start creating a test with Script Builder, JMeter file, Gatling file, Selenium WebDriver editor.

**5. Convert:** Converts Postman collections, HAR, and Swagger files into testable formats within Loadium. Also allows uploading JTL reports to generate more readable report outputs.

**6. Compare Test:** This option allows you to compare the results of test runs with each other.&#x20;

**7. Wiki:** Provides access to documentation and guides for using Loadium, including feature explanations, best practices, and step-by-step instructions.

**8. Usage Statistics:** Displays Loadium usage details through usage trend charts, including remaining VUH balance and the distribution of executed tests by type.

**9. Integrations:** Enables integration with third-party applications such as Microsoft Teams, Datadog, and Microsoft Azure.


# Quick Start

A quick introduction for Test Creation - Running - Analyzing

Loadium is designed to have a straightforward process to manage your load tests.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F7MVADeuFafe5G5vcnsBD%2Fimage.png?alt=media&amp;token=99da267e-37fa-422b-a76e-d1f5c3532bc4" alt=""><figcaption></figcaption></figure>

When you first log in to Loadium, you will be presented with Home Page. There are five tabs in the banner menu:

{% tabs %}
{% tab title="Home Page" %}
Displays the list of the created tests, information for previous test runs, and package usage.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FgyFHQRB9R06ciGHZG2A7%2Fimage.png?alt=media&amp;token=cd1a42c6-f1cd-4e0c-a2d1-2156751b5898" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Projects" %}
Allows grouping of the created tests and displays them.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fp4sSoQ3t0At4fdjpD0Xj%2Fimage.png?alt=media&amp;token=f0eb0c5e-6b8c-47a2-9538-18d1d58d017f" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Create" %}
Allows you to start creating a test with Script Builder, JMeter file, Gatling file, and Selenium WebDriver editor. Also presents other options Convert to JMX and JTL to Loadium Report.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FyQOrSTQatzrAKAcRVrZn%2Fimage.png?alt=media&amp;token=39ca8418-d049-4c7d-8e1b-d91c439a144d" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Running" %}
Displays your actively running tests.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FxVFDsi9oAdiObkIhNf18%2Fimage.png?alt=media&amp;token=811dc25c-59f5-4616-af65-e23097bbdef7" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Compare" %}
Allows you to compare the results of test runs with each other.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FBuUqe6Lw4el3NLw10sqL%2Fimage.png?alt=media&amp;token=b8c01472-d39a-4271-84e6-9b9639784278" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

## 1) Test Creation

To start creating a test, you can either choose to create a new one through the online no-code web editor or upload your previously created script from the desired technology.

### Script Builder

You can create your own script from scratch through Loadium's online editor.

{% tabs %}
{% tab title="Simple HTTP Builder" %}

#### Simple HTTP Builder

A simplistic approach for creating your script where you will enter basic parameters like request type (GET, POST, PUT, DELETE), request URL, reponse\&connection timeout, etc.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FN4xtPinRqZjBLSZ4qqbN%2Fimage.png?alt=media&amp;token=5abcff15-ffc0-4ed9-87e8-44ce03537e82" alt=""><figcaption></figcaption></figure>

Get started quickly with the Simple HTTP Builder guide:

{% content-ref url="/pages/-MUSBrNVrAlMwDQwoAG6" %}
[Broken mention](broken://pages/-MUSBrNVrAlMwDQwoAG6)
{% endcontent-ref %}
{% endtab %}

{% tab title="Record\&Play" %}

#### Record & Play

A more advanced approach where you can also record your web surfing with the Google Chrome extension to be used in the editor.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fj9A7A1w3hVrYIGpX6imK%2Fimage.png?alt=media&amp;token=aaa7ef4a-cde0-448c-82cb-ddcabeb387b1" alt=""><figcaption></figcaption></figure>

&#x20;                                       <img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FgavTTeH6H8kLozcbeCcH%2Fimage.png?alt=media&amp;token=ad0eb6f4-26ce-4d30-a272-db93c936e77f" alt="" data-size="original">

Get started quickly with the Record\&Play guide:

{% content-ref url="/pages/-MZDGn7b1fvU2nxsA08m" %}
[Script Builder](/create-test/loadium-record-and-play)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}

### By Uploading Script

Loadium supports open-source technologies to create & run your tests:

{% tabs %}
{% tab title="JMeter" %}

#### JMeter Test

Apache JMeter is an open-source tool that supports many protocols like HTTP, JDBC, LDAP, FTP, etc. Creating a JMeter test is the main feature of Loadium which supports all the key features of JMeter.

Get started quickly with the JMeter Test guide:

{% content-ref url="/pages/-MUSAunBwe2J09CIl1hu" %}
[JMeter Test](/create-test/jmeter-test)
{% endcontent-ref %}
{% endtab %}

{% tab title="Gatling" %}

#### **Gatling Test**&#x20;

Gatling is an open-source performance testing framework based on Scala, Akka and Netty. You can simply upload your Gatling file and desired CSV files to create your test and start testing.&#x20;

Get started quickly with the Gatling Test guide:

{% content-ref url="/pages/-MUSBc3iHQSjgBJ9Ppxx" %}
[Gatling Test](/create-test/gatling-test)
{% endcontent-ref %}
{% endtab %}

{% tab title="Web Driver" %}

#### Web Driver Test

Selenium WebDriver is a functional test automation library, you can use your Selenium scripts to create performance tests. You can also use Java and Javascript language to create Selenium-based performance tests.

Get started quickly with the Web Driver Test guide:

{% content-ref url="/pages/-MUSBuRvSupUi9j9Pb3I" %}
[WebDriver Test](/create-test/web-driver-test)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}

## 2) Running

During test creation, you can manage the test settings to shape the test running course.

{% tabs %}
{% tab title="Load Configuration" %}
You can configure the virtual user amount, their ramp-up period, and test duration (some parameters may vary between the technologies)

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FcAyYpe23xK9XhmCy2JYT%2Fimage.png?alt=media&amp;token=fd968c3e-9c0b-4956-9a5a-0fd4457c8567" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Geolocation" %}
You can choose to distribute your load generation to multiple locations with Cloud Service or use your personal servers with Private Locations.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FfmmMJbRvc3OzR2qVr7g6%2Fimage.png?alt=media&amp;token=60960409-be4c-4cb1-b60f-cc119849175c" alt=""><figcaption></figcaption></figure>

You can see our guides for more detailed information.

{% content-ref url="/pages/-MUSE7GXKewmLpQmOWWW" %}
[Broken mention](broken://pages/-MUSE7GXKewmLpQmOWWW)
{% endcontent-ref %}

{% content-ref url="/pages/-MYABRi8YJLiiG9YuvpQ" %}
[Broken mention](broken://pages/-MYABRi8YJLiiG9YuvpQ)
{% endcontent-ref %}
{% endtab %}

{% tab title="Failure Criteria" %}
An <mark style="color:purple;">optional</mark> feature where you can choose certain KPI metrics and set thresholds for each request to track their performance

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FazMFzOO94Yjv2LdEhZR8%2Fimage.png?alt=media&amp;token=987dab3a-7fd9-46ca-a8c2-b0e3594a76dd" alt=""><figcaption></figcaption></figure>

You can see our guide for more detailed information.

{% content-ref url="/pages/CDD5Gw1xs3k317iv9ZFt" %}
[Broken mention](broken://pages/CDD5Gw1xs3k317iv9ZFt)
{% endcontent-ref %}
{% endtab %}

{% tab title="Scheduling" %}
An <mark style="color:purple;">optional</mark> feature where you can schedule your tests to automate their run.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FzHy0KDOjHkgjZFR8Ksj4%2Fimage.png?alt=media&amp;token=bbef5641-b854-4290-a35d-74c647b81ca6" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="APM" %}
An <mark style="color:purple;">optional</mark> feature where you can integrate New Relic or AppDynamics APM Tools to get their metrics displayed on the Loadium Report.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F8XAb4tyOMD1bgswnCn4Z%2Fimage.png?alt=media&amp;token=73dbaca5-3d39-4182-a8a9-4171862f3f37" alt=""><figcaption></figcaption></figure>

You can see our guide for more detailed information.

{% content-ref url="/pages/-MUheY65faqUboU8iwG4" %}
[Broken mention](broken://pages/-MUheY65faqUboU8iwG4)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}

When you finish creating a test, the information you have put; uploaded files, load configurations, geolocations, KPI, etc. will be saved and you can access it from the Home Page. You can run your created tests from the Home Page.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FNvpqgt17kELFzi0jp2ry%2Fimage.png?alt=media&amp;token=72a44550-58e1-4459-a53a-e3ca1a2c47d0" alt=""><figcaption></figcaption></figure>

## 3) Analyzing

{% tabs %}
{% tab title="Test Report" %}
During a test run, the test metrics will be presented lively. After a test finishes, you can access these reports from the test's Sessions page.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fly2DKkXeXrnxD9tw53Sk%2Fimage.png?alt=media&amp;token=4c6aad37-7574-4676-b755-6620ee574118" alt=""><figcaption></figcaption></figure>

You can check out the Test Report guide for a more comprehensive cover:

{% content-ref url="/pages/tL8rqie6IhBi2pRqvD3G" %}
[Broken mention](broken://pages/tL8rqie6IhBi2pRqvD3G)
{% endcontent-ref %}
{% endtab %}

{% tab title="Compare Test" %}
Loadium allows you to compare your tests to help you to analyze your tests better. A quick guide for it will be coming soon!
{% endtab %}

{% tab title="Observing Progress" %}
After several runs of your same created test, the overall progress of test results will be presented in the test's Sessions Page.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FA10AdFgtdElWO75Z8oMw%2Fimage.png?alt=media&amp;token=a7cd963a-1be4-4260-9aaa-6a2a162ef19c" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.

Enjoy testing!


# Quick Start

A quick introduction for Test Creation - Running - Analyzing

Loadium is designed to have a straightforward process to manage your load tests.

<figure><picture><source srcset="/files/rqIUQ6b6S2AE2sbCUj64" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FJ2Po8fZcuaFZAw87KBtk%2FChatGPT%20Image%207%20May%202026%2001_10_46.png?alt=media&amp;token=287ab708-c72d-4658-bccc-33fa933aeaf7" alt=""></picture><figcaption></figcaption></figure>

When you first log in to Loadium, you will be presented with Dashboard Page. There are nine tabs in the banner menu:

{% tabs %}
{% tab title="Dashboard" %}
Displays the user’s plan details, the number of tests executed over the past six months, monthly VUH usage, and recent sessions.

<figure><picture><source srcset="/files/aRuyRjO4xvlq5MtUfBdu" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FK2vY50SpUXYF6EnTWHlV%2Fimage.png?alt=media&amp;token=b6c7c20f-3c68-494c-b610-a87a53747434" alt=""></picture><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Projects" %}
Allows grouping of the created tests and displays them.

<figure><picture><source srcset="/files/2j96jCEAejJ5CF0X70B0" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FduRkfJsX9RUzElC8OnAQ%2Fimage.png?alt=media&amp;token=d39b738a-6c4d-43b1-b81e-bf959488db81" alt=""></picture><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Tests" %}
Displays the list of created test sessions along with their configuration details, including test type, ramp-up duration, test duration, and number of virtual users.

<figure><picture><source srcset="/files/9PXkmH0Gy7TxFfG2bEcU" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F54zxcLhq3NhxAjRBWXom%2Fimage.png?alt=media&amp;token=629dacd5-d3a0-4987-b996-2f4deec58149" alt=""></picture><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Create" %}
Allows you to start creating a test with Script Builder, JMeter file, Gatling file, and Selenium WebDriver editor.

<figure><picture><source srcset="/files/rXwpv6Qp3f7JVomq8v7h" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FNvYweku8fZcqb5xeSjeA%2Fimage.png?alt=media&amp;token=0dcab973-7c21-433f-b6ed-efef5e63c885" alt=""></picture><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Convert" %}
Converts Postman collections, HAR, and Swagger files into testable formats within Loadium. Also allows uploading JTL reports to generate more readable report outputs.

<figure><picture><source srcset="/files/o19OBfPEzzEeIf8B03fC" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FMdZcs86xujI6FkfIR09r%2Fimage.png?alt=media&amp;token=79876a92-c4c8-46d3-9fd0-66971633016f" alt=""></picture><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Compare" %}
Allows you to compare the results of test runs with each other.

<figure><picture><source srcset="/files/7xqzmCVIJOEnYeXj3P5l" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FfS3EBeexpmiBlutKvD5a%2Fimage.png?alt=media&amp;token=55f5dbf9-83ca-47b4-9f28-308af9b7adcc" alt=""></picture><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Wiki" %}
Provides access to documentation and guides for using Loadium, including feature explanations, best practices, and step-by-step instructions.

<figure><picture><source srcset="/files/O2r4hMwSF6Td1B8Td57S" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FvShoEGegdiJuqTBbJQEq%2Fimage.png?alt=media&amp;token=fb25ee94-8733-47c3-8057-011d58678df4" alt=""></picture><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Usage Statistics" %}
Displays Loadium usage details through usage trend charts, including remaining VUH balance and the distribution of executed tests by type.

<figure><picture><source srcset="/files/xdyzORl4Pn3geufrc28R" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FWmgjcNyIjXvQKAVd677W%2Fimage.png?alt=media&amp;token=501b1806-7ff1-423e-9550-b0f9597b0b9d" alt=""></picture><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Integrations" %}
Enables integration with third-party applications such as Microsoft Teams, Datadog, and Microsoft Azure.
{% endtab %}
{% endtabs %}

## 1) Test Creation

To start creating a test, you can either choose to create a new one through the online no-code web editor or upload your previously created script from the desired technology.

### Script Builder

You can create your own script from scratch through Loadium’s online editor. It can be accessed from the left-hand menu by navigating to Create → Script Builder after login.

{% tabs %}
{% tab title="Simple HTTP Builder" %}

#### Simple HTTP Builder

A simplistic approach for creating your script where you will enter basic parameters like request type (GET, POST, PUT, DELETE), request URL, reponse\&connection timeout, etc.

<figure><picture><source srcset="/files/bibd2a80NII1CKza8Zev" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FtyTT6VRohAaaHYynB7vf%2Fimage.png?alt=media&amp;token=aeb42600-7716-406c-80f0-1df00d919303" alt=""></picture><figcaption></figcaption></figure>

Get started quickly with the Simple HTTP Builder guide:

{% content-ref url="/pages/p4Qj6mAUhBDNFuf0dAkN" %}
[Script Builder](/create-test/loadium-record-and-play-1)
{% endcontent-ref %}
{% endtab %}

{% tab title="Record\&Play" %}

#### Record & Play

A more advanced approach where you can also record your web surfing with the Google Chrome extension to be used in the editor.

<div data-full-width="false"><figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FitjSC0IY9bOxegeKIv2m%2Fimage.png?alt=media&amp;token=3dc5c576-363a-4dca-8639-8413c969e527" alt="" width="303"><figcaption></figcaption></figure></div>

Get started quickly with the Record\&Play guide:

{% content-ref url="/pages/p4Qj6mAUhBDNFuf0dAkN" %}
[Script Builder](/create-test/loadium-record-and-play-1)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}

### By Uploading Script

Loadium supports open-source technologies to create & run your tests:

{% tabs %}
{% tab title="JMeter" %}

#### JMeter Test

Apache JMeter is an open-source tool that supports many protocols like HTTP, JDBC, LDAP, FTP, etc. Creating a JMeter test is the main feature of Loadium which supports all the key features of JMeter.

Get started quickly with the JMeter Test guide:

{% content-ref url="/pages/WfTjbcNWw11klGow67OJ" %}
[JMeter Test](/create-test/jmeter-test-1)
{% endcontent-ref %}
{% endtab %}

{% tab title="Gatling" %}

#### **Gatling Test**&#x20;

Gatling is an open-source performance testing framework based on Scala, Akka and Netty. You can simply upload your Gatling file and desired CSV files to create your test and start testing.&#x20;

Get started quickly with the Gatling Test guide:

{% content-ref url="/pages/9Cenwdp15fENjqCERuAp" %}
[Gatling Test](/create-test/gatling-test-1)
{% endcontent-ref %}
{% endtab %}

{% tab title="Web Driver" %}

#### Web Driver Test

Selenium WebDriver is a functional test automation library, you can use your Selenium scripts to create performance tests. You can also use Java and Javascript language to create Selenium-based performance tests.

Get started quickly with the Web Driver Test guide:

{% content-ref url="/pages/CJepNQB2G9GeTDTVqAvS" %}
[WebDriver Test](/create-test/web-driver-test-1)
{% endcontent-ref %}
{% endtab %}

{% tab title="HLS" %}
HLS testing is supported in Loadium to analyze streaming performance under load. It enables simulation of concurrent users consuming media content and provides detailed metrics for evaluating streaming quality and stability.

{% content-ref url="/pages/1U7N01Mhy2xBGEOrKiwF" %}
[HLS Test](/create-test/hls-test-1)
{% endcontent-ref %}
{% endtab %}

{% tab title="Locust" %}
Locust is an open-source load testing tool that allows writing test scenarios using Python. Loadium supports Locust by enabling users to upload and execute Locust scripts while leveraging distributed infrastructure for scalable test execution.

{% content-ref url="/pages/XTbjPTPZcnFr3AV7utrb" %}
[Locust Test](/create-test/locust-test-1)
{% endcontent-ref %}
{% endtab %}
{% endtabs %}

## 2) Running

During test creation, you can manage the test settings to shape the test running course.

{% tabs %}
{% tab title="Load Configuration" %}
You can configure the virtual user count, ramp-up period, and test duration, as well as define load distribution using linear or multi-step patterns (some parameters may vary between technologies).

Load Type: Linear

<figure><picture><source srcset="/files/fOI2dZkFCJsUhWEtnSSr" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F1OqD8Ng2ZlL3hpic0Mej%2Fimage.png?alt=media&amp;token=4175f0a7-2dd1-4084-a29d-992397256b12" alt=""></picture><figcaption></figcaption></figure>

Load Type: Multi-Step

<figure><picture><source srcset="/files/VZ46fcyOWPoCue2ZIGQ0" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FRvrFSe31s0IW4JX79abV%2Fimage.png?alt=media&amp;token=96fda11c-22f3-4167-8bae-6d7f904418bd" alt=""></picture><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Geolocation" %}
You can choose to distribute your load generation to multiple locations with Cloud Service or use your personal servers with Private Locations.

<figure><picture><source srcset="/files/Olbhboc3NR12aK4TS37G" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FwP2uEnZ6EHrAi5MxMj84%2Fimage.png?alt=media&amp;token=e935df23-52d0-48c8-abd0-a71e6a80254d" alt=""></picture><figcaption></figcaption></figure>

You can see our guides for more detailed information.

{% content-ref url="/pages/SFNOS0dGFBaza0lOUVmw" %}
[Geolocation](/test-settings/what-is-geolocation-1)
{% endcontent-ref %}
{% endtab %}

{% tab title="Scheduling" %}
An <mark style="color:purple;">optional</mark> feature where you can schedule your tests to automate their run.

<figure><picture><source srcset="/files/UohNvke6yKwTKA4d1vus" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FSvq3vctnzqnRt9btQ9I2%2Fimage.png?alt=media&amp;token=a53193b1-1a2a-45cd-a0a0-294894b4d9f2" alt=""></picture><figcaption></figcaption></figure>

{% content-ref url="/pages/e8VHtHoyq8cX051p68VY" %}
[Test Scheduling](/test-settings/test-scheduling-1)
{% endcontent-ref %}
{% endtab %}

{% tab title="Failure Criteria" %}
An <mark style="color:purple;">optional</mark> feature where you can choose certain KPI metrics and set thresholds for each request to track their performance

<figure><picture><source srcset="/files/BLEjYJkusvl97MyaZ3wM" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FoKIcYzSEzUwuQ3R2UNqD%2Fimage.png?alt=media&amp;token=2186c075-0d72-460f-9f09-130c64560c30" alt=""></picture><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

When you finish creating a test, the information you have put; uploaded files, load configurations, geolocations, KPI, etc. will be saved and you can access it from the Tests Page. You can run your created tests from the Tests Page.

<figure><picture><source srcset="/files/XACnEeLSr1AKvaVuBd3C" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FMOJtFGBdBI7V9CqvEDyG%2Fimage.png?alt=media&amp;token=f3ff556d-6021-46ea-bc10-25093b74f595" alt=""></picture><figcaption></figcaption></figure>

## 3) Analyzing

{% tabs %}
{% tab title="Test Report" %}
During a test run, the test metrics will be presented lively. After a test finishes, you can access these reports from the test's Sessions page.

<figure><picture><source srcset="/files/ttiG25KYDqeEAevakFlK" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FpzEzYwyTogTDXdY4QeX8%2Fimage.png?alt=media&amp;token=d6db2e39-b80f-4f13-8dbf-66db9afc5399" alt=""></picture><figcaption></figcaption></figure>

You can check out the Test Report guide for a more comprehensive cover:

{% content-ref url="/pages/Fiy2SmQZalTXkcr3g8ww" %}
[Test Report](/features/test-report)
{% endcontent-ref %}
{% endtab %}

{% tab title="Compare Test" %}
Loadium allows you to compare your tests to help you to analyze your tests better.

<figure><picture><source srcset="/files/qj10aHlpBYEuv4ZG7vXH" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fn8ew7S1yGByM1XYaM2jh%2Fimage.png?alt=media&amp;token=0f489673-924c-4c58-9081-73d76d8ada07" alt=""></picture><figcaption></figcaption></figure>

You can check out the Compare Test guide for a more comprehensive cover:

{% content-ref url="/pages/mjAzEYSRDQcZFnnquzIH" %}
[Compare Test](/features/compare-test-1)
{% endcontent-ref %}
{% endtab %}

{% tab title="Observing Progress" %}
After several runs of your same created test, the overall progress of test results will be presented in the test's Sessions Page.

<figure><picture><source srcset="/files/4EKUFzqLLaz63RRXeUYA" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FcdjLKxcadNVpAi4SyXSD%2Fimage.png?alt=media&amp;token=938b8498-21bc-4326-b200-9e4c29aaf9a8" alt=""></picture><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# Common Reasons For Execution Fails

Loadium test executions can occasionally be interrupted due to user-side misconfigurations, missing data, or network access issues. This guide addresses the most common problems and their solutions.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FmzgBTMDQv4zFohK3WiAR%2Fimage.png?alt=media&amp;token=d853787f-86be-4dd4-ad5c-f5bf8cb331d0" alt=""><figcaption></figcaption></figure>

## 1. CSV Dataset Config Configurations

* Typo in csv dataset config.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FnU7Ij4IUG4nfrvkiAu8D%2Fimage.png?alt=media&amp;token=43207d9b-2142-4d7e-b15a-981aed2d1fcf" alt=""><figcaption><p>Example: JMeter CSV Element</p></figcaption></figure>

* Giving an invalid file extension in csv dataset config.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FTYafEmBETGtv8B8Igj1U%2Fimage.png?alt=media&amp;token=d247a4a1-d76f-44c0-b3b8-2063c3568e26" alt=""><figcaption><p>Example: JMeter CSV Element</p></figcaption></figure>

## 2. Incorret CSV Format

An incorrect CSV format can cause JMeter tests to fail unexpectedly. Issues such as the wrong number of columns, incorrect headers, or mismatched data types often lead to errors during test execution. To ensure proper functionality, the CSV file must be correctly formatted and aligned with the test plan's requirements, providing the necessary data accurately.

## 3. Public Access Restriction

Loadium initializes virtual machines for load tests from cloud providers such as AWS, Azure, and GCP. If the target environment is restricted from public access, the virtual machines may not be able to connect, preventing the test from starting.

## 4. Plugin Versions

The versions of the plugins used in the test scripts are not up to date, the tests may start properly.&#x20;

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FPU1ox1sWWDLQxNQItzoX%2Fimage.png?alt=media&amp;token=dce5860c-5c82-4986-b479-f76c1c3bd2e2" alt=""><figcaption><p>Example: JMeter Plugin Manager</p></figcaption></figure>

## 5. Invalid JMX

An invalid JMX file in JMeter tests can cause tests to fail before they start.

Common issues include:

* Syntax errors
* Corrupted elements
* Unsupported font types (such as non-Latin characters)
* Missing configurations within the JMX file.

These errors prevent Loadium from properly executing the test file, leading to failures. It's essential to validate and correct the JMX file to ensure smooth and successful test execution.

## 6. Very Long Response Times

In cases where the first HTTP response (from any request) during a performance test takes more than 120 seconds to return to Loadium, it may be labeled as 'failed' by the system. Ensure that your virtual user load configuration (e.g., ramp-up time) is appropriate for the target environment, or consider using a monitoring tool to check your services.

Similarly, at any point during the test, if no data is received for 120 seconds, the system may label it as 'failed'.


# Common Reasons For Execution Fails

Loadium test executions can occasionally be interrupted due to user-side misconfigurations, missing data, or network access issues. This guide addresses the most common problems and their solutions.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F6xgpJvL3N0CP3HO7m4tH%2Fimage.png?alt=media&amp;token=84a5f443-faa4-4936-a9a3-498866a4095d" alt=""><figcaption></figcaption></figure>

## 1. CSV Dataset Config Configurations

* Typo in csv dataset config.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FnU7Ij4IUG4nfrvkiAu8D%2Fimage.png?alt=media&amp;token=43207d9b-2142-4d7e-b15a-981aed2d1fcf" alt=""><figcaption><p>Example: JMeter CSV Element</p></figcaption></figure>

* Giving an invalid file extension in csv dataset config.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FTYafEmBETGtv8B8Igj1U%2Fimage.png?alt=media&amp;token=d247a4a1-d76f-44c0-b3b8-2063c3568e26" alt=""><figcaption><p>Example: JMeter CSV Element</p></figcaption></figure>

## 2. Incorret CSV Format

An incorrect CSV format can cause JMeter tests to fail unexpectedly. Issues such as the wrong number of columns, incorrect headers, or mismatched data types often lead to errors during test execution. To ensure proper functionality, the CSV file must be correctly formatted and aligned with the test plan's requirements, providing the necessary data accurately.

## 3. Public Access Restriction

Loadium initializes virtual machines for load tests from cloud providers such as AWS, Azure, and GCP. If the target environment is restricted from public access, the virtual machines may not be able to connect, preventing the test from starting.

## 4. Plugin Versions

The versions of the plugins used in the test scripts are not up to date, the tests may start properly.&#x20;

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FPU1ox1sWWDLQxNQItzoX%2Fimage.png?alt=media&amp;token=dce5860c-5c82-4986-b479-f76c1c3bd2e2" alt=""><figcaption><p>Example: JMeter Plugin Manager</p></figcaption></figure>

## 5. Invalid JMX

An invalid JMX file in JMeter tests can cause tests to fail before they start.

Common issues include:

* Syntax errors
* Corrupted elements
* Unsupported font types (such as non-Latin characters)
* Missing configurations within the JMX file.

These errors prevent Loadium from properly executing the test file, leading to failures. It's essential to validate and correct the JMX file to ensure smooth and successful test execution.

## 6. Very Long Response Times

In cases where the first HTTP response (from any request) during a performance test takes more than 120 seconds to return to Loadium, it may be labeled as 'failed' by the system. Ensure that your virtual user load configuration (e.g., ramp-up time) is appropriate for the target environment, or consider using a monitoring tool to check your services.

Similarly, at any point during the test, if no data is received for 120 seconds, the system may label it as 'failed'.


# JMeter Test

A quick guide for creating JMeter test on Loadium

Apache JMeter is an open-source tool that supports many protocols like HTTP, JDBC, LDAP, FTP, etc. You can upload your previously created JMX script to Loadium to run tests. You can go to Create Page and choose JMeter Test to start creating a test.

## **1) Basics**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FpGA4cljHv5BUOoVY97pg%2Fimage.png?alt=media&amp;token=1350cdbe-f46d-40f0-87d3-2ba63c596d5e" alt=""><figcaption></figcaption></figure>

* **File Upload** area let you upload JMeter scripts, CSV files 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
* **Test Name** is a mandatory field as it will be referenced in future usage (test reports, comparing tests, etc.)

{% hint style="info" %}
**Note:** At least a JMX file is mandatory to save a performance test project.
{% endhint %}

{% hint style="info" %}
**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.
{% endhint %}

* **Split CSV** is optional. Toggle your CSV files to split their data into engines uniquely. You can find more detailed information about this feature [here](https://wiki.loadium.com/test-settings/what-is-split-csv).

## **2) Configuration**

Configuration panel allows you to set the size and progression of your load test. Depending on the configuration set here, the behavior of the load will be determined. In case you want to override Loadium parameters, tick the checkbox next to each parameter to use the uploaded JMeter script’s configuration.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FsvkF77l3nqsjXAywly0G%2Fimage.png?alt=media&amp;token=d0e3ade3-6661-4b32-9e7f-72787bbe7877" alt=""><figcaption></figcaption></figure>

* **Maximum Users:** Total amount of virtual users that are going to execute the script. Calculated by Engine Count \* Users Per Engine
* **Ramp-Up Time:** The amount of time that should pass (in seconds) to reach the total users, starting from 0 threads. Threads increase linearly.

{% hint style="info" %}
🙌🏻  **Example:** In case you have 500 total users and 10 seconds ramp-up time, for every second, 50 threads will be generated by Loadium.
{% endhint %}

* **Iteration:** Number of the script executions will be iterated by virtual users.
* **Duration:** Test period (in minutes) for Loadium to execute.&#x20;
* **TPS Limit: A**llows 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](broken://pages/-MUSE27VOvlt1xnKhF7z).

You can find more detailed information on the TPS page.

{% content-ref url="/pages/-MUSE27VOvlt1xnKhF7z" %}
[Broken mention](broken://pages/-MUSE27VOvlt1xnKhF7z)
{% endcontent-ref %}

If you want to configure engine count and threads manually, click on the button indicated in the image.

<p align="center"><br><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FE1jcJivcSjxabkCIT5Sm%2Fimage.png?alt=media&amp;token=051a4c3b-2d28-45ba-b599-70b234889a7d" alt=""></p>

<p align="center"></p>

This button allows you to see and configure ***Users Per Engine*** selection.&#x20;

<p align="center"><br><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FyKebdVJIkpSfhCAZrqKK%2Fimage.png?alt=media&amp;token=72b3f5a7-61c3-46fd-8cd2-66175fbd2492" alt="" data-size="original"></p>

<p align="center"></p>

* **Users Per Engine:** Amount of users (threads) that will be generated from each engine to execute the script.

{% hint style="warning" %}
**Note:** The test will be concluded whichever is reached first; test duration or iteration.

The test can be concluded before the iteration count is reached, due to the duration being reached. The same rule applies to vice versa. If all iterations are completed before the defined duration, the test will be concluded.
{% endhint %}

## **3) Geolocation**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FBb2r67lEBLmNENKWjRld%2Fimage.png?alt=media&amp;token=92afcf87-3b4c-4ab9-9bd5-74e2618bcd70" alt=""><figcaption></figcaption></figure>

#### Cloud Services

Loadium allows you to run globally distributed load tests by providing servers. Lets you select regions to execute situational user simulations. When a location is chosen, engines will be generated in that particular region and all requests will come from that region.

You can find more detailed information on the Geolocation page.

{% content-ref url="/pages/-MUSE7GXKewmLpQmOWWW" %}
[Broken mention](broken://pages/-MUSE7GXKewmLpQmOWWW)
{% endcontent-ref %}

#### Private Location

Instead of provided servers, Loadium allows you to create custom locations with [Docker](https://www.docker.com/) integration to run load tests from your personal servers.

You can find more detailed information on the Private Location page.

{% content-ref url="/pages/-MYABRi8YJLiiG9YuvpQ" %}
[Broken mention](broken://pages/-MYABRi8YJLiiG9YuvpQ)
{% endcontent-ref %}

**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](https://loadium.com/contact-us).

You can find more detailed information on the Dedicated IP page.

{% content-ref url="/pages/-MUSDlUqfBVdT1lh-1Bf" %}
[Broken mention](broken://pages/-MUSDlUqfBVdT1lh-1Bf)
{% endcontent-ref %}

## 4) Other Settings

**Notes:** Allows you to enter additional details and self-explanatory notes. Your note will be appear in your test report when the test is finished.

**Send Email:** In case you would like to be notified by e-mail after the test ends, you can enable this feature. You can find detailed information about this feature, [here](https://wiki.loadium.com/creating-test-on-loadium/send-email).

**Teams Notifications:** Integrate your Microsoft Teams Webhook to receive Loadium event alerts in your communication channels to stay informed.

**DNS Override:** Use this setting to specify alternative IP addresses for hostnames used in your test scenario. Entries here will be placed in the /etc/hosts file of each engine participating in the load test.

**Network Emulation:** 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 on the Network Type page.

{% content-ref url="/pages/-MUSEFVcdAxjbYYkzFHy" %}
[Broken mention](broken://pages/-MUSEFVcdAxjbYYkzFHy)
{% endcontent-ref %}

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

#### You can check out the following pages for additional test settings:

{% content-ref url="/pages/BEfmqciHro6t7IOoXW1D" %}
[Broken mention](broken://pages/BEfmqciHro6t7IOoXW1D)
{% endcontent-ref %}

{% content-ref url="/pages/O5a67xhVQrRdZaayfGEA" %}
[Broken mention](broken://pages/O5a67xhVQrRdZaayfGEA)
{% endcontent-ref %}

{% content-ref url="/pages/CDD5Gw1xs3k317iv9ZFt" %}
[Broken mention](broken://pages/CDD5Gw1xs3k317iv9ZFt)
{% endcontent-ref %}


# JMeter Test

A quick guide for creating JMeter test on Loadium

{% embed url="<https://www.youtube.com/watch?v=9epdL6JLP7E>" %}

Apache JMeter is an open-source tool that supports many protocols like HTTP, JDBC, LDAP, FTP, etc. You can upload your previously created JMX script to Loadium to run tests. You can go to Create Page and choose JMeter Test to start creating a test.

## **1) Basics**

<figure><picture><source srcset="/files/T8XPGaX8wqApzeTgiyb2" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FlEXbYOgofIbiADDsooMJ%2Fimage.png?alt=media&amp;token=cbbc3d67-9a85-4c38-8609-f5a417f8c3ac" alt=""></picture><figcaption></figcaption></figure>

* **File Upload** area let you upload JMeter scripts, CSV files 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
* **Test Name** is a mandatory field as it will be referenced in future usage (test reports, comparing tests, etc.)

{% hint style="info" %}
**Note:** At least a JMX file is mandatory to save a performance test project.
{% endhint %}

{% hint style="info" %}
**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.
{% endhint %}

* **Split CSV** is optional. Toggle your CSV files to split their data into engines uniquely. You can find more detailed information about this feature [here](https://wiki.loadium.com/test-settings/what-is-split-csv).

## **2) Configuration**

The Configuration panel allows setting the size and progression of the load test. Load behavior can be defined using different distribution patterns such as linear or multi-step.

**Load Type**: Linear

<figure><picture><source srcset="/files/lkNDnvB4aIyTBHIDXkFl" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FLu95ahUWfjkGQJIzeaFb%2Fimage.png?alt=media&amp;token=d3ef2943-e0f9-4278-ba61-927d0c8ada0e" alt=""></picture><figcaption></figcaption></figure>

**Load Type**: Multi-Step

<figure><picture><source srcset="/files/zu8QnPeNngatiRSajwpr" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FISLeYV4MUAYv3ex8fv89%2Fimage.png?alt=media&amp;token=a5374662-a497-498a-a933-7e8d258f629a" alt=""></picture><figcaption></figcaption></figure>

* **Maximum Users:** Total amount of virtual users that are going to execute the script. Calculated by Engine Count \* Users Per Engine
* **Ramp-Up Time:** The amount of time that should pass (in seconds) to reach the total users, starting from 0 threads. Threads increase linearly.

{% hint style="info" %}
**Example:** In case you have 500 total users and 10 seconds ramp-up time, for every second, 50 threads will be generated by Loadium.
{% endhint %}

* **Iteration:** Number of the script executions will be iterated by virtual users.
* **Duration:** Test period (in minutes) for Loadium to execute.&#x20;
* **TPS Limit:** 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](broken://pages/-MUSE27VOvlt1xnKhF7z).

You can find more detailed information on the TPS page.

{% content-ref url="/pages/vF3IGfOjFN0aLTzm3Nab" %}
[TPS](/test-settings/what-is-tps-1)
{% endcontent-ref %}

If you want to configure engine count and threads manually, click on the button indicated in the image.

<figure><picture><source srcset="/files/KDz37TZVTFFtLVSj0Cse" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FaVcnlg3rOYpRk0vR74Ha%2Fimage.png?alt=media&amp;token=cb3d39ce-14dd-4331-9b3b-5d6bec6c6f02" alt="" width="375"></picture><figcaption></figcaption></figure>

This button allows you to see and configure ***Users Per Engine*** selection.&#x20;

<figure><picture><source srcset="/files/MvZzpcvKTV8IuLB3iHfV" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F4n7aoWXhNj9oHNGXdctz%2Fimage.png?alt=media&amp;token=8f2219a3-d3ea-4c54-baec-49a4934153c9" alt="" width="563"></picture><figcaption></figcaption></figure>

* **Users Per Engine:** Amount of users (threads) that will be generated from each engine to execute the script.

{% hint style="warning" %}
**Note:** The test will be concluded whichever is reached first; test duration or iteration.

The test can be concluded before the iteration count is reached, due to the duration being reached. The same rule applies to vice versa. If all iterations are completed before the defined duration, the test will be concluded.
{% endhint %}

## **3) Geolocation**

<figure><picture><source srcset="/files/8bQw0kxOA9wo07XJZx9x" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fas55hBEcDb1D9S2C9Blr%2Fimage.png?alt=media&amp;token=98e0bc3c-2052-4c04-bc9a-25aed14950e9" alt=""></picture><figcaption></figcaption></figure>

#### Cloud Services

Loadium allows you to run globally distributed load tests by providing servers. Lets you select regions to execute situational user simulations. When a location is chosen, engines will be generated in that particular region and all requests will come from that region.

You can find more detailed information on the Geolocation page.

{% content-ref url="/pages/SFNOS0dGFBaza0lOUVmw" %}
[Geolocation](/test-settings/what-is-geolocation-1)
{% endcontent-ref %}

#### Private Location

Instead of provided servers, Loadium allows you to create custom locations with [Docker](https://www.docker.com/) integration to run load tests from your personal servers.

**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](https://loadium.com/contact-us).

You can find more detailed information on the Dedicated IP page.

{% content-ref url="/pages/UnRUEcFwf8YbycVEO5lf" %}
[Dedicated IP](/test-settings/what-is-dedicated-ip-1)
{% endcontent-ref %}

## 4) Other Settings

**Notes:** Allows you to enter additional details and self-explanatory notes. Your note will be appear in your test report when the test is finished.

**Send Email:** In case you would like to be notified by e-mail after the test ends, you can enable this feature. You can find detailed information about this feature, [here](https://wiki.loadium.com/creating-test-on-loadium/send-email).

**Teams Notifications:** Integrate your Microsoft Teams Webhook to receive Loadium event alerts in your communication channels to stay informed.

**DNS Override:** Use this setting to specify alternative IP addresses for hostnames used in your test scenario. Entries here will be placed in the /etc/hosts file of each engine participating in the load test.

**Network Emulation:** 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 on the Network Type page.

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


# Locust Test

## What is Locust?

Locust is an open-source load testing and performance testing framework designed to measure how systems behave under load using scenarios primarily written in Python. It allows you to simulate user behavior to evaluate the scalability of web applications, APIs, and other systems.

For more information, you can visit [Locust’s website](https://locust.io/) and [GitHub](https://github.com/locustio/locust) repository.

## How does Locust work in Loadium?

You can upload your Locust test files as a ZIP through the Loadium interface. Running on Loadium will enable your Locust tests to run tests across multiple regions and handle high load levels.

Loadium uses Locust version 2.29.1. If you require a different version, you can forward your request to Loadium's support.

Loadium's current Python version is 3.12.x.

## Creating a test in Loadium

To create a test,&#x20;

* Go to [Loadium New Test](https://loadium.io/new-test) page
* Choose "Locust" test type
* Upload your Locust project files as a ZIP
* Enter your configurations (test name, virtual user amount, load regions etc.)

{% hint style="info" %}
**The locustfile.py file in the uploaded ZIP will be launched on the server. Therefore, the "main" file (where the test execution steps are placed) of your test must be named "locustfile.py".**
{% endhint %}

If your test depends on other files (such as reading data from CSV files), you should import them using the path format:

/locust/tests-files/{file path}

Example: Use `import(/locust/tests-files/abc.csv)` instead of `import(abc.csv)`

## Basic Example

```python
# locustfile.py

from locust import HttpUser, TaskSet, task, between
import json

class UserBehavior(TaskSet):
    """
    Defines the tasks that each simulated user will perform.
    """

    @task(2)  # This task has a weight of 2
    def get_items(self):
        """
        Perform a GET request to retrieve items.
        """
        self.client.get("/api/items", name="GET /api/items")

    @task(1)  # This task has a weight of 1
    def create_item(self):
        """
        Perform a POST request to create a new item.
        """
        payload = {
            "name": "New Item",
            "description": "This is a new item.",
            "price": 19.99
        }
        headers = {'Content-Type': 'application/json'}
        self.client.post("/api/items", data=json.dumps(payload), headers=headers, name="POST /api/items")

    def on_start(self):
        """
        Code to run when a simulated user starts executing tasks.
        Useful for setup tasks like authentication.
        """
        # Example: Authenticate and store a token
        # response = self.client.post("/api/login", json={"username": "testuser", "password": "testpass"})
        # if response.status_code == 200:
        #     self.token = response.json()["token"]
        #     self.client.headers.update({"Authorization": f"Bearer {self.token}"})
        pass

    def on_stop(self):
        """
        Code to run when a simulated user stops executing tasks.
        Useful for teardown tasks like logging out.
        """
        pass

class WebsiteUser(HttpUser):
    """
    Defines the user class that will run the tasks.
    """
    tasks = [UserBehavior]
    wait_time = between(1, 5)  # Simulate a wait time between 1 and 5 seconds between tasks
    host = "http://your-api-domain.com"  # Replace with your target host
```

## CSV Usage Example

```python
import csv
import logging
from locust import HttpUser, SequentialTaskSet, task, between

logger = logging.getLogger(__name__)

class UserBehaviour(SequentialTaskSet):

    def __init__(self, parent):
        super().__init__(parent)
        self.credentials = []  # Store user credentials from CSV
        self.current_index = 0  # Track the next user in a round-robin manner
    
    def load_credentials_from_csv(self):
        """ Load user credentials from CSV file """
        with open('/locust/test-files/testUser.csv', mode='r') as file: #This filepath is important
            reader = csv.DictReader(file, delimiter=';')
            self.credentials = list(reader)
        logger.info(f"Loaded {len(self.credentials)} users from CSV.")
        
    def get_next_user(self):
        """ Retrieve the next user from the credential list in a cyclic manner """
        user = self.credentials[self.current_index]
        self.current_index = (self.current_index + 1) % len(self.credentials)  # Loop back if at the end
        return user
        
    @task
    def login(self):
        """ Perform a login request with user credentials """
        user = self.get_next_user()  # Get next user credentials
        response = self.client.post(
            f"/index.php?route=account/login.login&language=en-gb&login_token={self.login_token}",
            name="Login",
            verify=False,
            data={
                "email": user["mail"],
                "password": user["password"]
            }
        )
        Verify.check_response(response)
        logger.info(f"Login request with Username: {user['mail']}, Password: {user['password']}")
        

class MyUser(HttpUser):
    """ Define user behavior and test configuration """
    wait_time = between(1, 2)
    host = "https://demo-opencart.com"
    tasks = [UserBehaviour]
```

## Logging Example

```python
import logging
from locust import HttpUser, task, between

# Configure logger
logging.basicConfig(
    level=logging.INFO,  # Set logging level
    format="%(asctime)s - %(levelname)s - %(message)s"
)

logger = logging.getLogger(__name__)  # Create logger instance

class UserBehavior(HttpUser):
    wait_time = between(1, 2)  # Random wait time between requests
    host = "https://example.com"  # Target website

    @task
    def example_task(self):
        """ Send a simple GET request """
        response = self.client.get("/")  # Perform GET request
        if response.status_code == 200:
            logger.info("Request successful")  # Log success
        else:
            logger.error(f"Request failed with status {response.status_code}")  # Log failure
```

```python
# Example log messages
logger.debug("This is a debug message")  # Debug message
logger.info("This is an info message")   # Info message
logger.warning("This is a warning message")  # Warning message
logger.error("This is an error message")  # Error message
logger.critical("This is a critical message")  # Critical error message
```

### Logs in Loadium Report

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FcjULd32x53yOMRTCRzHc%2Fimage.png?alt=media&amp;token=32a57661-ddb5-46e3-a35c-ec60a65b6b14" alt=""><figcaption></figcaption></figure>

## Running the test

To start the test, click the play button on the relevant screen. After a final review on the summarization window, you can initiate the execution.

After approximately 30 seconds, load generators will be ready and you’ll be taken to the report screen and the test will start.

In the report screen, you can click the red “X” button at the top at any time to stop the test. If you do not stop the test manually, it will run for the duration you specified and then stop automatically.

On the report screen, the data coming from your selected regions is displayed in 1-second intervals and visualized in charts. If you wish, you can export these reports. Your reports are stored and protected by Loadium according to your subscription plan.


# Locust Test

## What is Locust?

Locust is an open-source load testing and performance testing framework designed to measure how systems behave under load using scenarios primarily written in Python. It allows you to simulate user behavior to evaluate the scalability of web applications, APIs, and other systems.

For more information, you can visit [Locust’s website](https://locust.io/) and [GitHub](https://github.com/locustio/locust) repository.

## How does Locust work in Loadium?

You can upload your Locust test files as a ZIP through the Loadium interface. Running on Loadium will enable your Locust tests to run tests across multiple regions and handle high load levels.

Loadium uses Locust version 2.29.1. If you require a different version, you can forward your request to Loadium's support.

Loadium's current Python version is 3.12.x.

## Creating a test in Loadium

To create a test,&#x20;

* Go to Create page
* Choose "Locust" test type

<figure><picture><source srcset="/files/S5rrQUzv6QpfBzK3LDUv" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FAdqO5wKcz47rQw8l8hQT%2Fimage.png?alt=media&amp;token=7c68e7cd-06f7-4336-976b-d127ab3193d5" alt=""></picture><figcaption></figcaption></figure>

* Upload your Locust project files as a ZIP
* Enter your configurations (test name, virtual user amount, load regions etc.)

{% hint style="info" %}
**The locustfile.py file in the uploaded ZIP will be launched on the server. Therefore, the "main" file (where the test execution steps are placed) of your test must be named "locustfile.py".**
{% endhint %}

If your test depends on other files (such as reading data from CSV files), you should import them using the path format:

/locust/tests-files/{file path}

Example: Use `import(/locust/tests-files/abc.csv)` instead of `import(abc.csv)`

## Basic Example

```python
# locustfile.py

from locust import HttpUser, TaskSet, task, between
import json

class UserBehavior(TaskSet):
    """
    Defines the tasks that each simulated user will perform.
    """

    @task(2)  # This task has a weight of 2
    def get_items(self):
        """
        Perform a GET request to retrieve items.
        """
        self.client.get("/api/items", name="GET /api/items")

    @task(1)  # This task has a weight of 1
    def create_item(self):
        """
        Perform a POST request to create a new item.
        """
        payload = {
            "name": "New Item",
            "description": "This is a new item.",
            "price": 19.99
        }
        headers = {'Content-Type': 'application/json'}
        self.client.post("/api/items", data=json.dumps(payload), headers=headers, name="POST /api/items")

    def on_start(self):
        """
        Code to run when a simulated user starts executing tasks.
        Useful for setup tasks like authentication.
        """
        # Example: Authenticate and store a token
        # response = self.client.post("/api/login", json={"username": "testuser", "password": "testpass"})
        # if response.status_code == 200:
        #     self.token = response.json()["token"]
        #     self.client.headers.update({"Authorization": f"Bearer {self.token}"})
        pass

    def on_stop(self):
        """
        Code to run when a simulated user stops executing tasks.
        Useful for teardown tasks like logging out.
        """
        pass

class WebsiteUser(HttpUser):
    """
    Defines the user class that will run the tasks.
    """
    tasks = [UserBehavior]
    wait_time = between(1, 5)  # Simulate a wait time between 1 and 5 seconds between tasks
    host = "http://your-api-domain.com"  # Replace with your target host
```

## CSV Usage Example

```python
import csv
import logging
from locust import HttpUser, SequentialTaskSet, task, between

logger = logging.getLogger(__name__)

class UserBehaviour(SequentialTaskSet):

    def __init__(self, parent):
        super().__init__(parent)
        self.credentials = []  # Store user credentials from CSV
        self.current_index = 0  # Track the next user in a round-robin manner
    
    def load_credentials_from_csv(self):
        """ Load user credentials from CSV file """
        with open('/locust/test-files/testUser.csv', mode='r') as file: #This filepath is important
            reader = csv.DictReader(file, delimiter=';')
            self.credentials = list(reader)
        logger.info(f"Loaded {len(self.credentials)} users from CSV.")
        
    def get_next_user(self):
        """ Retrieve the next user from the credential list in a cyclic manner """
        user = self.credentials[self.current_index]
        self.current_index = (self.current_index + 1) % len(self.credentials)  # Loop back if at the end
        return user
        
    @task
    def login(self):
        """ Perform a login request with user credentials """
        user = self.get_next_user()  # Get next user credentials
        response = self.client.post(
            f"/index.php?route=account/login.login&language=en-gb&login_token={self.login_token}",
            name="Login",
            verify=False,
            data={
                "email": user["mail"],
                "password": user["password"]
            }
        )
        Verify.check_response(response)
        logger.info(f"Login request with Username: {user['mail']}, Password: {user['password']}")
        

class MyUser(HttpUser):
    """ Define user behavior and test configuration """
    wait_time = between(1, 2)
    host = "https://demo-opencart.com"
    tasks = [UserBehaviour]
```

## Logging Example

```python
import logging
from locust import HttpUser, task, between

# Configure logger
logging.basicConfig(
    level=logging.INFO,  # Set logging level
    format="%(asctime)s - %(levelname)s - %(message)s"
)

logger = logging.getLogger(__name__)  # Create logger instance

class UserBehavior(HttpUser):
    wait_time = between(1, 2)  # Random wait time between requests
    host = "https://example.com"  # Target website

    @task
    def example_task(self):
        """ Send a simple GET request """
        response = self.client.get("/")  # Perform GET request
        if response.status_code == 200:
            logger.info("Request successful")  # Log success
        else:
            logger.error(f"Request failed with status {response.status_code}")  # Log failure
```

```python
# Example log messages
logger.debug("This is a debug message")  # Debug message
logger.info("This is an info message")   # Info message
logger.warning("This is a warning message")  # Warning message
logger.error("This is an error message")  # Error message
logger.critical("This is a critical message")  # Critical error message
```

## Running the test

To start the test, click the play button on the relevant screen. After a final review on the summarization window, you can initiate the execution.

After approximately 30 seconds, load generators will be ready and you’ll be taken to the report screen and the test will start.

In the report screen, you can click the red “X” button at the top at any time to stop the test. If you do not stop the test manually, it will run for the duration you specified and then stop automatically.

On the report screen, the data coming from your selected regions is displayed in 1-second intervals and visualized in charts. If you wish, you can export these reports. Your reports are stored and protected by Loadium according to your subscription plan.


# Script Builder

Loadium Script Builder is a feature that aims to ease and quicken your load test preparation in terms of scripting.

## Getting Started

There are 2 ways to utilize from Script Builder:

1. [You can create a script from scratch by creating HTTP Requests manually](#requests)
2. [You can import supported files (Swagger, HAR, Loadium Recorder, Postman)](#import)

You can go to Create Page and choose Script Builder to start creating a test.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FEoyHaeNpZlvuXeP875Xl%2FScreenshot%202025-07-08%20at%2018.20.44.png?alt=media&amp;token=e7b1d723-fa80-4c97-9145-f852f6b4d3c0" alt=""><figcaption></figcaption></figure>

## Creating a Script

### Import

Loadium supports four different file types for importing into Script Builder.

Supported file types for import:

* **Postman Collection** – Exported collection of API requests from Postman.
* **HTTP Archive (HAR)** – Captured network traffic in HAR format.
* **Swagger (OpenAPI)** – API definitions in Swagger/OpenAPI specification.
* **Loadium Recorder File** – Files recorded using the Loadium Chrome extension.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FHtpCOB29uEX2qwcEGf0b%2Fimage.png?alt=media&amp;token=5514f125-be00-4c46-a4ae-f79778032296" alt=""><figcaption></figcaption></figure>

#### Postman

By uploading your Postman collection to the script generator, you can easily organize it and make it ready for load testing. You can upload multiple collections at once.

<div><figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F5i1vdue1tjZK7ahlCk4t%2Fimage.png?alt=media&amp;token=f6a0fd14-eacd-428e-9156-667ca005db86" alt="" width="375"><figcaption></figcaption></figure> <figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fq05rWaq6wNBe3D0FaMmI%2Fimage.png?alt=media&amp;token=21e16c14-419c-4f43-a0dd-607ad736ebd9" alt="" width="375"><figcaption></figcaption></figure></div>

Here is a preview of the script editor screen after the uploading is completed.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F7KsZOlD5KGFVQPtbfQHE%2Fimage.png?alt=media&amp;token=1ff07254-4bdd-4501-8fe8-12cae6c8b889" alt=""><figcaption></figcaption></figure>

#### HTTP Archive (HAR)

Similar to Postman, you can easily import your files with the ".har" extension into the script generator.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FcBMAJEF65RqhNER13YEo%2Fimage.png?alt=media&amp;token=71ff6f7e-e82d-4403-89ae-d80ecee2a4f4" alt="" width="375"><figcaption></figcaption></figure>

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F6RbWGtUjg3aRaEzchNw8%2FScreenshot%202025-07-09%20at%2000.13.06.png?alt=media&amp;token=c17e4994-1564-4bd1-9940-f37806757014" alt=""><figcaption></figcaption></figure>

#### Swagger

Loadium allows you to import your Swagger by uploading your Swagger file or using your Swagger URL.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FAUP7NuKOwXocFP8JYxv8%2Fimage.png?alt=media&amp;token=0223b812-d5d7-48d4-8d83-720651884610" alt="" width="375"><figcaption></figcaption></figure>

<div><figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FBZVFdJ3oC7mgiF6Qwe5B%2FScreenshot%202025-07-09%20at%2009.26.31.png?alt=media&amp;token=a525f9af-43ff-4660-bfa4-b6c92b7841dd" alt="" width="375"><figcaption></figcaption></figure> <figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FGy1pgohctIlJMzTVW3o2%2FScreenshot%202025-07-09%20at%2000.35.20.png?alt=media&amp;token=133b5a39-1229-424a-a423-caeb2b4e8590" alt="" width="375"><figcaption></figcaption></figure></div>

#### Loadium Recorder (Google Chrome Extension)

Allows you to record HTTP requests, URLs, their parameters, and headers while you are browsing the web.

{% tabs %}
{% tab title="Installing the Recorder" %}

#### Installing the Extension

You can find the page for installing the extension to Google Chrome [here](https://chrome.google.com/webstore/detail/loadium-extension/eecaejegccegjjjngokgelmehfkmpico/related).

After installing the extension, remember to pin it from the extension manager.

&#x20;                                                  <img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MZDJ9YfPFcVzbZpa1xP%2F-MZGvXcyHGQL5fU09D0t%2Fextension.png?alt=media&amp;token=30960a13-7633-450d-a216-0e850a7c59b1" alt="" data-size="original">

Now you can easily access to Record\&Play.
{% endtab %}

{% tab title="Recorder UI" %}
A quick tour of the extension’s interface.&#x20;

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MZDJ9YfPFcVzbZpa1xP%2F-MZGx7uFmZfgae6E2X-B%2FextensionUI.png?alt=media\&token=d36d3c8a-3cee-4636-873e-9426875ada72)

You can find the explanation below for each numbered button:

1. These buttons (start button and the big orange button) will **start the recording** session, as you browse, it will add requests to the Collections section. Once the recording is started, you will notice that its icon has changed.

   &#x20;                                             <img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MZDJ9YfPFcVzbZpa1xP%2F-MZGzQbqaRfAXzaxJC6V%2FScreen%20Shot%202021-04-27%20at%2009.21.29.png?alt=media&amp;token=de5e6d3a-ee3c-4402-88e6-2f325067e5c3" alt="" data-size="original">&#x20;
2. If you want to **clear the recording**, you can use this button to wipe the collections you previously recorded.
3. You can **download the recording** by using this button, as .json file.
4. Pressing this button will take you to **settings** of recording.

   These settings allows you to filter your recordings. You can define a regex pattern in order to capture specific URL’s. For example entering pattern as “https\://\*.youtube.com/\*” will record URL’s that contains “youtube.com” in it. Furthermore, you can choose to record only the top level requests or additional sub-level requests.
5. This button will **create a new set of collection** next to your previous collection, which the new recordings will be added to this new collection.
6. This button will take you to the **Login Page**, if you’re logged in you will see your email address here.
7. If you’re logged in, clicking this button will take you to **Loadium Record\&Play Page**, then you can start editing your recorded requests, or directly save\&run your test.
   {% endtab %}
   {% endtabs %}

## **Editing Script**

You can start editing your script after you've followed one of the processes:

* Pressing "Create" button,
* Importing via Postman, HAR file, Swagger, or Loadium Recorder..

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FR0UL8FndvEWlQceo5nAv%2Fimage.png?alt=media&amp;token=cfe8e38e-1b48-4def-a7d9-e4efabf3cdfb" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Make sure to save your script after making major changes to avoid losing any progress.
{% endhint %}

### **Collections**

Collections allow you to separate the script into smaller pieces, making it easier to work with. Similar to Thread Groups in JMeter, you can add multiple collections to organize different parts of your test scenario independently. You can create collections by clicking "***+ New***" button.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fda4XHLbo1rwM4Ce1K0Hv%2Fimage.png?alt=media&amp;token=9b605ab2-79c4-4fca-b03f-bc0a95f130a2" alt="" width="375"><figcaption></figcaption></figure>

You can add multiple collections if you want. For each collection, you can:

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FmbLZb9W9INjLfwj793NF%2Fimage.png?alt=media&amp;token=b106fc0f-a0fd-43fb-9b2d-2fc6c199cb82" alt="" width="375"><figcaption></figcaption></figure>

* Add a new request which then you can configure its details.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FzMq8Aq9h8uDYcwhs4Wof%2Fimage.png?alt=media&amp;token=d6cc1c9c-7ec3-4232-8622-e30c395dab43" alt="" width="375"><figcaption></figcaption></figure>

* Add sleep which adds a delay before the next request. You can enter the delay amount (in milliseconds) as you desire.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FqUBA96r7RCmdiQehf0vj%2Fimage.png?alt=media&amp;token=0835de2d-4d31-4201-b306-620eefc26908" alt="" width="375"><figcaption></figcaption></figure>

* Edit the label of your collection.
* Duplicate the collection.
* Delete the collection if you would like to.

For each request in the collection, you can:

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FRdUVGjZTUpdTq0xu9wKM%2Fimage.png?alt=media&amp;token=6d3100fb-6d10-47be-87f7-8ec00f33d624" alt="" width="375"><figcaption></figcaption></figure>

* **Edit** the request
* **Duplicate** the request
* **Delete** the request from collection

You can also change the position of requests by gripping them, to change their order or group them in a collection.

### **Requests**

{% tabs %}
{% tab title="Basics" %}

#### **Method Type**

You can set request types as GET, POST, PUT, PATCH, DELETE, and OPTIONS.

#### **Query Params**

You can add query parameters to your request as shown in the picture.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F7aO2DRJSbO2P1iLfzJsc%2Fimage.png?alt=media&amp;token=38c74dc2-a4eb-4b8f-b8f8-7c1e2d3278d0" alt=""><figcaption></figcaption></figure>

#### Body

Depending on the method type, you can manage its body to send data with the request.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FjwyR9BUbT9rLRDcERA1A%2Fimage.png?alt=media&amp;token=9770b987-e2d6-45d4-8b15-e0fdda976de8" alt=""><figcaption></figcaption></figure>

#### **Headers**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FH2Se9zs77UvgNWvPjpo6%2Fimage.png?alt=media&amp;token=c68ab180-063d-4ec3-b1cd-b158b69e4840" alt=""><figcaption></figcaption></figure>

You can add a new header or delete the existing ones.

* To remove a header, use the Delete (trash can) icon located at the end of the corresponding row.
* To add a new header, click the "+" button located at the top right, and specify the Key and Value fields.
* To bulk edit request headers, click "Bulk Edit" button at the top right corner.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F3dB2JfXauKWyv5VBtahm%2Fimage.png?alt=media&amp;token=498ff5a9-1fba-472b-982d-7e17227a1797" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Variables" %}
You can create variables that allows you to capture a specific data from a request’s response and store it for using later.

There are 3 ways of expression to capture the data to store it in a variable:

* JSON Path
* Regex
* CSS Selector

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FUcYPtsZZDZ3skhf7oipb%2Fimage.png?alt=media&amp;token=543ef6e0-c25c-4054-a18c-9346fd12be35" alt=""><figcaption></figcaption></figure>

For each type there are areas to be filled, Variable Name and Expression (Attribute for CSS selector). The referred data will be stored in the variable.

For CSS Selector, there are 2 additional areas that are related to capturing the data.

* The referenced CSS element might have multiple values, attribute is for specifying to which value to restore. Leaving it empty will capture the text value of the element.
* Match number is for choosing one outcome if there are more than one reference. Value “0” is used for random outcome.                                   &#x20;

You can access the created variable’s value with the expression ${variableName}.
{% endtab %}

{% tab title="Assertions" %}
You can make various type of assertions that uses response data to check conditions:

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FpHlhdmcW5JeTFcT1JdqD%2Fimage.png?alt=media&amp;token=a542f69e-5c23-4e73-a6f1-e17f9caacee7" alt=""><figcaption></figcaption></figure>

* **HTTP Status Code** assertion, allows you to assert the value of the response code.&#x20;
* **Body** assertion, allows you to assert the body of a response.
* **Headers** assertion, allows you to assert the header of a response
* **JSON Path Value** assertion, allows you to capture a value using a json path expression, then compare it to expected result
* **JSON Path Assertion**, asserts that the given json path expression contains value, is not null.
  {% endtab %}
  {% endtabs %}

## **After Editing**

At the bottom of the page, you will see 2 buttons.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FzVE3w7AzrhBRgJ9CECPI%2Fimage.png?alt=media&amp;token=246fe87c-a426-40b3-998f-7cb223d9d1b3" alt=""><figcaption></figcaption></figure>

* Clicking either "Save Test" or "Run Test" will redirect you to the Main Settings tab on the New Test page, with your .jmx file uploaded and ready to run.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FBrxNhRHmq2Nkd07pUTHF%2FScreenshot%202025-07-09%20at%2012.50.17.png?alt=media&amp;token=4c52be34-ab08-4026-b0e1-042c966aa7ea" alt=""><figcaption></figcaption></figure>

* You can also configure your test settings before saving your test by clicking ***Test Settings** tab.*

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FHY3agU1sKsSgatMTKr3i%2Fimage.png?alt=media&amp;token=6f298066-9394-465b-a331-63bb3c9ccb55" alt=""><figcaption></figcaption></figure>

* You can also download the file as JMX or JSON (Loadium Recorder) file.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FzEST8DIzV63nSUHlcv8u%2Fimage.png?alt=media&amp;token=a98e1904-c896-4f07-b8bf-19ffa23fe2c5" alt="" width="365"><figcaption></figcaption></figure>

### Global Variables

You can define global variables to be used within requests when necessary. Utilizing this will make it easier when you need to constantly change some values within requests (for example, changing target URL from test environment to production environment).

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F01TEtI9RkEqHiefNs8iW%2Fimage.png?alt=media&amp;token=607358c8-cfb4-421b-b002-12a49304ef06" alt="" width="375"><figcaption></figcaption></figure>

#### Input Fields

* **Variable:** Name of the variable to be referenced for usage.
* **Value:** Value stored in the variable
* **Description:** Entering some self-explanatory notes about the created variable

### CSV Upload

Similar to JMeter, Script Builder supports CSV file upload so you can use dynamic data in your tests by referencing predefined values from your dataset.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FZNaXjC3o9SOy6SVY011y%2Fimage.png?alt=media&amp;token=b76f872d-35f7-4117-a166-ba24806fe7d6" alt="" width="375"><figcaption></figcaption></figure>

**Input Fields**

* **Variable Names:** Name of the variables to be referenced from CSV file (make sure to split your variable names by using ***comma***).
* **Delimeter:** The separator character used to split a dataset in a csv file.
* **Ignore first line:** Toggle this option if you have header line in your csv file.
* **Recycle on End of File:** Reuses the CSV data from the beginning after reaching the end.


# Script Builder

Loadium Script Builder is a feature that aims to ease and quicken your load test preparation in terms of scripting.

## Getting Started

There are 2 ways to utilize from Script Builder:

1. [You can create a script from scratch by creating HTTP Requests manually](#requests)
2. [You can import supported files (Swagger, HAR, Loadium Recorder, Postman)](#import)

You can go to Create Page and choose Script Builder to start creating a test.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F09aEKhAXxbjMqW9pe18I%2Fimage.png?alt=media&amp;token=3e702e96-a3f4-4ec6-a11e-19966a70233c" alt=""><figcaption></figcaption></figure>

## Creating a Script

### Import

Loadium supports four different file types for importing into Script Builder.

Supported file types for import:

* **Postman Collection** – Exported collection of API requests from Postman.
* **HTTP Archive (HAR)** – Captured network traffic in HAR format.
* **Swagger (OpenAPI)** – API definitions in Swagger/OpenAPI specification.
* **Loadium Recorder File** – Files recorded using the Loadium Chrome extension.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FtzgPa90qY3OXcitNv3l2%2Fimage.png?alt=media&amp;token=8bfb3a86-93ef-48e3-9711-3b1c2fa54404" alt=""><figcaption></figcaption></figure>

#### Postman

By uploading your Postman collection to the script generator, you can easily organize it and make it ready for load testing. You can upload multiple collections at once.

<div><figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F5i1vdue1tjZK7ahlCk4t%2Fimage.png?alt=media&amp;token=f6a0fd14-eacd-428e-9156-667ca005db86" alt="" width="375"><figcaption></figcaption></figure> <figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fq05rWaq6wNBe3D0FaMmI%2Fimage.png?alt=media&amp;token=21e16c14-419c-4f43-a0dd-607ad736ebd9" alt="" width="375"><figcaption></figcaption></figure></div>

Here is a preview of the script editor screen after the uploading is completed.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fwz5U6w8yxrGwli4sbh9J%2Fimage.png?alt=media&amp;token=21f0ddf4-6202-4b56-9b27-4724130dd206" alt=""><figcaption></figcaption></figure>

#### HTTP Archive (HAR)

Similar to Postman, you can easily import your files with the ".har" extension into the script generator.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FcBMAJEF65RqhNER13YEo%2Fimage.png?alt=media&amp;token=71ff6f7e-e82d-4403-89ae-d80ecee2a4f4" alt="" width="375"><figcaption></figcaption></figure>

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FI5OJJeC5Jthpzyes6xHi%2Fimage.png?alt=media&amp;token=0a77cf8c-d358-4fcb-8996-dd51c2b732cf" alt=""><figcaption></figcaption></figure>

#### Swagger

Loadium allows you to import your Swagger by uploading your Swagger file or using your Swagger URL.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FAUP7NuKOwXocFP8JYxv8%2Fimage.png?alt=media&amp;token=0223b812-d5d7-48d4-8d83-720651884610" alt="" width="375"><figcaption></figcaption></figure>

<div><figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FBZVFdJ3oC7mgiF6Qwe5B%2FScreenshot%202025-07-09%20at%2009.26.31.png?alt=media&amp;token=a525f9af-43ff-4660-bfa4-b6c92b7841dd" alt="" width="375"><figcaption></figcaption></figure> <figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FGy1pgohctIlJMzTVW3o2%2FScreenshot%202025-07-09%20at%2000.35.20.png?alt=media&amp;token=133b5a39-1229-424a-a423-caeb2b4e8590" alt="" width="375"><figcaption></figcaption></figure></div>

#### Loadium Recorder (Google Chrome Extension)

Allows you to record HTTP requests, URLs, their parameters, and headers while you are browsing the web.

{% tabs %}
{% tab title="Installing the Recorder" %}

#### Installing the Extension

You can find the page for installing the extension to Google Chrome [here](https://chrome.google.com/webstore/detail/loadium-extension/eecaejegccegjjjngokgelmehfkmpico/related).

After installing the extension, remember to pin it from the extension manager.

&#x20;                                                  <img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MZDJ9YfPFcVzbZpa1xP%2F-MZGvXcyHGQL5fU09D0t%2Fextension.png?alt=media&amp;token=30960a13-7633-450d-a216-0e850a7c59b1" alt="" data-size="original">

Now you can easily access to Record\&Play.
{% endtab %}

{% tab title="Recorder UI" %}
A quick tour of the extension’s interface.&#x20;

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MZDJ9YfPFcVzbZpa1xP%2F-MZGx7uFmZfgae6E2X-B%2FextensionUI.png?alt=media\&token=d36d3c8a-3cee-4636-873e-9426875ada72)

You can find the explanation below for each numbered button:

1. These buttons (start button and the big orange button) will **start the recording** session, as you browse, it will add requests to the Collections section. Once the recording is started, you will notice that its icon has changed.

   &#x20;                                             <img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MZDJ9YfPFcVzbZpa1xP%2F-MZGzQbqaRfAXzaxJC6V%2FScreen%20Shot%202021-04-27%20at%2009.21.29.png?alt=media&amp;token=de5e6d3a-ee3c-4402-88e6-2f325067e5c3" alt="" data-size="original">&#x20;
2. If you want to **clear the recording**, you can use this button to wipe the collections you previously recorded.
3. You can **download the recording** by using this button, as .json file.
4. Pressing this button will take you to **settings** of recording.

   These settings allows you to filter your recordings. You can define a regex pattern in order to capture specific URL’s. For example entering pattern as “https\://\*.youtube.com/\*” will record URL’s that contains “youtube.com” in it. Furthermore, you can choose to record only the top level requests or additional sub-level requests.
5. This button will **create a new set of collection** next to your previous collection, which the new recordings will be added to this new collection.
6. This button will take you to the **Login Page**, if you’re logged in you will see your email address here.
7. If you’re logged in, clicking this button will take you to **Loadium Record\&Play Page**, then you can start editing your recorded requests, or directly save\&run your test.
   {% endtab %}
   {% endtabs %}

## **Editing Script**

You can start editing your script after you've followed one of the processes:

* Pressing "Create" button,
* Importing via Postman, HAR file, Swagger, or Loadium Recorder..

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fps4ZIZw8TQQFUFRBy0ko%2FEkran%20Resmi%202026-08-25%2015.03.37.png?alt=media&amp;token=be755017-5209-4778-95a2-87e2df4e7e61" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Make sure to save your script after making major changes to avoid losing any progress.
{% endhint %}

### **Collections**

Collections allow you to separate the script into smaller pieces, making it easier to work with. Similar to Thread Groups in JMeter, you can add multiple collections to organize different parts of your test scenario independently. You can create collections by clicking "***+ New***" button.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fda4XHLbo1rwM4Ce1K0Hv%2Fimage.png?alt=media&amp;token=9b605ab2-79c4-4fca-b03f-bc0a95f130a2" alt="" width="375"><figcaption></figcaption></figure>

You can add multiple collections if you want. For each collection, you can:

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FmbLZb9W9INjLfwj793NF%2Fimage.png?alt=media&amp;token=b106fc0f-a0fd-43fb-9b2d-2fc6c199cb82" alt="" width="375"><figcaption></figcaption></figure>

* Add a new request which then you can configure its details.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FzMq8Aq9h8uDYcwhs4Wof%2Fimage.png?alt=media&amp;token=d6cc1c9c-7ec3-4232-8622-e30c395dab43" alt="" width="375"><figcaption></figcaption></figure>

* Add sleep which adds a delay before the next request. You can enter the delay amount (in milliseconds) as you desire.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FqUBA96r7RCmdiQehf0vj%2Fimage.png?alt=media&amp;token=0835de2d-4d31-4201-b306-620eefc26908" alt="" width="375"><figcaption></figcaption></figure>

* Edit the label of your collection.
* Duplicate the collection.
* Delete the collection if you would like to.

For each request in the collection, you can:

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FRdUVGjZTUpdTq0xu9wKM%2Fimage.png?alt=media&amp;token=6d3100fb-6d10-47be-87f7-8ec00f33d624" alt="" width="375"><figcaption></figcaption></figure>

* **Edit** the request
* **Duplicate** the request
* **Delete** the request from collection

You can also change the position of requests by gripping them, to change their order or group them in a collection.

### **Requests**

{% tabs %}
{% tab title="Basics" %}

#### **Method Type**

You can set request types as GET, POST, PUT, PATCH, DELETE, and OPTIONS.

#### **Query Params**

You can add query parameters to your request as shown in the picture.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F7aO2DRJSbO2P1iLfzJsc%2Fimage.png?alt=media&amp;token=38c74dc2-a4eb-4b8f-b8f8-7c1e2d3278d0" alt=""><figcaption></figcaption></figure>

#### Body

Depending on the method type, you can manage its body to send data with the request.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FjwyR9BUbT9rLRDcERA1A%2Fimage.png?alt=media&amp;token=9770b987-e2d6-45d4-8b15-e0fdda976de8" alt=""><figcaption></figcaption></figure>

#### **Headers**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FH2Se9zs77UvgNWvPjpo6%2Fimage.png?alt=media&amp;token=c68ab180-063d-4ec3-b1cd-b158b69e4840" alt=""><figcaption></figcaption></figure>

You can add a new header or delete the existing ones.

* To remove a header, use the Delete (trash can) icon located at the end of the corresponding row.
* To add a new header, click the "+" button located at the top right, and specify the Key and Value fields.
* To bulk edit request headers, click "Bulk Edit" button at the top right corner.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F3dB2JfXauKWyv5VBtahm%2Fimage.png?alt=media&amp;token=498ff5a9-1fba-472b-982d-7e17227a1797" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Variables" %}
You can create variables that allows you to capture a specific data from a request’s response and store it for using later.

There are 3 ways of expression to capture the data to store it in a variable:

* JSON Path
* Regex
* CSS Selector

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FUcYPtsZZDZ3skhf7oipb%2Fimage.png?alt=media&amp;token=543ef6e0-c25c-4054-a18c-9346fd12be35" alt=""><figcaption></figcaption></figure>

For each type there are areas to be filled, Variable Name and Expression (Attribute for CSS selector). The referred data will be stored in the variable.

For CSS Selector, there are 2 additional areas that are related to capturing the data.

* The referenced CSS element might have multiple values, attribute is for specifying to which value to restore. Leaving it empty will capture the text value of the element.
* Match number is for choosing one outcome if there are more than one reference. Value “0” is used for random outcome.                                   &#x20;

You can access the created variable’s value with the expression ${variableName}.
{% endtab %}

{% tab title="Assertions" %}
You can make various type of assertions that uses response data to check conditions:

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FpHlhdmcW5JeTFcT1JdqD%2Fimage.png?alt=media&amp;token=a542f69e-5c23-4e73-a6f1-e17f9caacee7" alt=""><figcaption></figcaption></figure>

* **HTTP Status Code** assertion, allows you to assert the value of the response code.&#x20;
* **Body** assertion, allows you to assert the body of a response.
* **Headers** assertion, allows you to assert the header of a response
* **JSON Path Value** assertion, allows you to capture a value using a json path expression, then compare it to expected result
* **JSON Path Assertion**, asserts that the given json path expression contains value, is not null.
  {% endtab %}
  {% endtabs %}

## **After Editing**

At the bottom of the page, you will see "*Save Test"* button.

* Clicking  "Save Test" will redirect you to the New Test page, with your .jmx file uploaded and ready to run.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F5zdrdNuqsU4bWWBSdLcr%2FEkran%20Resmi%202026-08-25%2015.24.07.png?alt=media&amp;token=5c73e54f-d688-4e02-902d-8c1bc98dfdf4" alt=""><figcaption></figcaption></figure>

* You can also configure your test settings before saving your test with ***Test Configurations** tab.*

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FYXukBBPLl0uD5Ja7RQti%2Fimage.png?alt=media&amp;token=c09df85c-2e78-4ad8-93f4-bb25a19d4068" alt=""><figcaption></figcaption></figure>

* You can also download the file as JMX file.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FUz9Us6t9X7wggNeZLUr5%2Fimage.png?alt=media&amp;token=f97acd19-63a4-497d-8d4b-5caa4e9aa596" alt=""><figcaption></figcaption></figure>

### Global Variables

You can define global variables to be used within requests when necessary. Utilizing this will make it easier when you need to constantly change some values within requests (for example, changing target URL from test environment to production environment).

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F01TEtI9RkEqHiefNs8iW%2Fimage.png?alt=media&amp;token=607358c8-cfb4-421b-b002-12a49304ef06" alt="" width="375"><figcaption></figcaption></figure>

#### Input Fields

* **Variable:** Name of the variable to be referenced for usage.
* **Value:** Value stored in the variable
* **Description:** Entering some self-explanatory notes about the created variable

### CSV Upload

Similar to JMeter, Script Builder supports CSV file upload so you can use dynamic data in your tests by referencing predefined values from your dataset.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FZNaXjC3o9SOy6SVY011y%2Fimage.png?alt=media&amp;token=b76f872d-35f7-4117-a166-ba24806fe7d6" alt="" width="375"><figcaption></figcaption></figure>

**Input Fields**

* **Variable Names:** Name of the variables to be referenced from CSV file (make sure to split your variable names by using ***comma***).
* **Delimeter:** The separator character used to split a dataset in a csv file.
* **Ignore first line:** Toggle this option if you have header line in your csv file.
* **Recycle on End of File:** Reuses the CSV data from the beginning after reaching the end.


# Gatling Test

A quick guide for creating Gatling test on Loadium

Gatling is an open-source performance testing framework, which uses Scala, Akka, and Netty as a technology stack and as its backbone. You can upload your previously created Gatling script to Loadium to run tests. You can go to Create Page and choose Gatling Test to start creating a test.

## 1) Basics

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fz86Xy4bYkfkxVm3gOQVI%2Fimage.png?alt=media&amp;token=5903f1e4-6525-4667-8fa9-080cd8c38e12" alt=""><figcaption></figcaption></figure>

* **Test Name** is a mandatory field as it will be referenced in future usage.
* **Project** is an optional field that allows you to assign your tests to a specific project in order to group them.&#x20;
* **Upload File** field let you upload a scala file from the upload file area. 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.&#x20;

{% hint style="info" %}
**Note:** At least one scala file is mandatory to save a Gatling test.
{% endhint %}

**Split CSV File:** Select this option to split your CSV data into engines uniquely. You can find more detailed information about Split CSV [here](https://wiki.loadium.com/test-settings/what-is-split-csv).

{% hint style="info" %}
**Note:** The name of the CSV that you have uploaded and the name of the CSV in your scala file must be the same.
{% endhint %}

* **Notes:** Allows you to enter additional details and self-explanatory notes.
* **Send Email:** In case you would like to be notified by e-mail after the test ends, you can enable this feature. You can find detailed information about this feature, [here](https://wiki.loadium.com/creating-test-on-loadium/send-email).

## 2) Configuration

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FqakB3gDQXxAfClVTkN6t%2Fimage.png?alt=media&amp;token=cd2792db-f668-4403-807f-56fa45a5cc04" alt=""><figcaption></figcaption></figure>

* **Engine Count:** Amount of engines that will be used for the test execution.
* **Users Per Engine:** Amount of users (threads) that will be generated from each engine to execute the script.
* **Duration(min):** Total time for Loadium to execute Gatling scenarios.

{% hint style="info" %}
**Note:** Test run times can not exceed the duration you set but if your Gatling scenario ends the test will be automatically finished.
{% endhint %}

**Sandbox Test:** Allows you to run <mark style="color:green;">free</mark> tests to debug your tests. If you just want to make sure that your system is ready for testing, or your script is properly working, you can enable this option (enabling sandbox test will limit the test configuration).

## **3) Geolocation**

#### Cloud Services

Loadium allows you to run globally distributed load tests by providing servers. Lets you select regions to execute situational user simulations. When a location is chosen, engines will be generated in that particular region and all requests will come from that region.

You can find more detailed information on the Geolocation page.

{% content-ref url="/pages/-MUSE7GXKewmLpQmOWWW" %}
[Broken mention](broken://pages/-MUSE7GXKewmLpQmOWWW)
{% endcontent-ref %}

#### Private Location

Instead of provided servers, Loadium allows you to create custom locations with [Docker](https://www.docker.com/) integration to run load tests from your personal servers.

You can find more detailed information on the Private Location page.

{% content-ref url="/pages/-MYABRi8YJLiiG9YuvpQ" %}
[Broken mention](broken://pages/-MYABRi8YJLiiG9YuvpQ)
{% endcontent-ref %}

## 4) Advanced Settings

**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](https://loadium.com/contact-us).

You can find more detailed information on the Dedicated IP page.

{% content-ref url="/pages/-MUSDlUqfBVdT1lh-1Bf" %}
[Broken mention](broken://pages/-MUSDlUqfBVdT1lh-1Bf)
{% endcontent-ref %}

**Gatling Version:** Choose the Gatling version according to your test script implementation.

{% hint style="info" %}
Recommended version of Gatling is 3.5.1
{% endhint %}

**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 on the Network Type page.

{% content-ref url="/pages/-MUSEFVcdAxjbYYkzFHy" %}
[Broken mention](broken://pages/-MUSEFVcdAxjbYYkzFHy)
{% endcontent-ref %}

**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](broken://pages/-MUSE27VOvlt1xnKhF7z).

You can find more detailed information on the TPS page.

{% content-ref url="/pages/-MUSE27VOvlt1xnKhF7z" %}
[Broken mention](broken://pages/-MUSE27VOvlt1xnKhF7z)
{% endcontent-ref %}

#### You can check out the following pages for additional test settings:

{% content-ref url="/pages/CDD5Gw1xs3k317iv9ZFt" %}
[Broken mention](broken://pages/CDD5Gw1xs3k317iv9ZFt)
{% endcontent-ref %}

{% content-ref url="/pages/-MUheY65faqUboU8iwG4" %}
[Broken mention](broken://pages/-MUheY65faqUboU8iwG4)
{% endcontent-ref %}


# Gatling Test

A quick guide for creating Gatling test on Loadium

Gatling is an open-source performance testing framework, which uses Scala, Akka, and Netty as a technology stack and as its backbone. You can upload your previously created Gatling script to Loadium to run tests. You can go to **Create** Page and choose **Gatling Test** to start creating a test.

## 1) Basics

<figure><picture><source srcset="/files/RffyvGRh4wEScT4c0gV7" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F8mJZpaFia6PL3xYMdGQW%2Fimage.png?alt=media&amp;token=697884b9-4db0-407a-b662-b530161a1dbd" alt=""></picture><figcaption></figcaption></figure>

* **Test Name** is a mandatory field as it will be referenced in future usage.
* **Project** is an optional field that allows you to assign your tests to a specific project in order to group them.&#x20;
* **Upload File** field let you upload a scala file from the upload file area. 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.&#x20;

{% hint style="info" %}
**Note:** At least one scala file is mandatory to save a Gatling test.
{% endhint %}

**Split CSV File:** Select this option to split your CSV data into engines uniquely. You can find more detailed information about Split CSV [here](https://wiki.loadium.com/test-settings/what-is-split-csv).

{% hint style="info" %}
**Note:** The name of the CSV that you have uploaded and the name of the CSV in your scala file must be the same.
{% endhint %}

* **Notes:** Allows you to enter additional details and self-explanatory notes.
* **Send Email:** In case you would like to be notified by e-mail after the test ends, you can enable this feature. You can find detailed information about this feature, [here](https://wiki.loadium.com/creating-test-on-loadium/send-email).

## 2) Configuration

<figure><picture><source srcset="/files/0dKhYyWtvvE96rvR86zY" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F8IrsN1P8wuME1MIs8SBW%2Fimage.png?alt=media&amp;token=26d568a2-6c91-47f0-86a8-dd800cc0d531" alt=""></picture><figcaption></figcaption></figure>

* **Engine Count:** Amount of engines that will be used for the test execution.
* **Users Per Engine:** Amount of users (threads) that will be generated from each engine to execute the script.
* **Duration(min):** Total time for Loadium to execute Gatling scenarios.

{% hint style="info" %}
**Note:** Test run times can not exceed the duration you set but if your Gatling scenario ends the test will be automatically finished.
{% endhint %}

**Debug:** Allows you to run <mark style="color:green;">free</mark> tests to debug your tests. If you just want to make sure that your system is ready for testing, or your script is properly working, you can enable this option (enabling sandbox test will limit the test configuration).

## **3) Geolocation**

#### Cloud Services

Loadium allows you to run globally distributed load tests by providing servers. Lets you select regions to execute situational user simulations. When a location is chosen, engines will be generated in that particular region and all requests will come from that region.

#### Private Location

Instead of provided servers, Loadium allows you to create custom locations with [Docker](https://www.docker.com/) integration to run load tests from your personal servers.

## 4) Advanced Settings

**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](https://loadium.com/contact-us).

**Gatling Version:** Choose the Gatling version according to your test script implementation.

{% hint style="info" %}
Recommended version of Gatling is 3.5.1
{% endhint %}

**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 on the Network Type page.

**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](broken://pages/-MUSE27VOvlt1xnKhF7z).


# WebDriver Test

A quick guide for creating Selenium based Web Driver test on Loadium

WebDriver test screen has a built-in editor for users to change and implement their Java or JavaScript based test cases. You can go to Create Page and choose WebDriver Test to start creating a test.

## **1) Basics**

* Define a Test Name to your test script, this name will be used in reporting page as it’s and all metrics will be shown as aggregated under it.
* Choose the language that you do the WebDriver implementation. Right now, Loadium support Java and JavaScript.
* Implement the test script.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FHqjXnUse5Ac31Y45ChMS%2Fimage.png?alt=media&amp;token=39d7ea8f-2441-406b-b316-a1cc1296cd08" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Note:** If you want to add another test script, click the “Add New WebDriver Setup” button. You may create as many scripts as you want. Scripts will be executed by their order on the screen
{% endhint %}

## **2) Configuration**

Configuration panel allows you to set the size and progression of your load test. Depending on the configuration set here, the behavior of the load will be determined. In case you want to override Loadium parameters, tick the checkbox next to each parameter to use the uploaded JMeter script’s configuration.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FirlKLsJCu1cDmREJpWiX%2Fimage.png?alt=media&amp;token=e3e03a9d-db0b-474f-bcb8-ab4bca555f03" alt=""><figcaption></figcaption></figure>

* **Total Users:** Total amount of virtual users that are going to execute the script. Calculated by Engine Count \* Users Per Engine
* **Engine Count:** Amount of engines that will be used for the test execution.&#x20;
* **Users Per Engine:** Amount of users (threads) that will be generated from each engine to execute the script.
* **Ramp-Up Time:** The amount of time that should pass (in seconds) to reach the total users, starting from 0 threads. Threads increase linearly.

{% hint style="info" %}
🙌🏻  **Example:** In case you have 500 total users and 10 seconds ramp-up time, for every second, 50 threads will be generated by Loadium.
{% endhint %}

* **Iteration:** Number of the script executions will be iterated by virtual users.
* **Duration:** Test period (in minutes) for Loadium to execute.&#x20;

{% hint style="warning" %}
**Note:** The test will be concluded whichever is reached first; test duration or iteration.

The test can be concluded before the iteration count is reached, due to the duration being reached. The same rule applies to vice versa. If all iterations are completed before the defined duration, the test will be concluded.
{% endhint %}

* **Sandbox Test:** Allows you to run <mark style="color:green;">free</mark> tests to debug your tests. If you just want to make sure that your system is ready for testing, or your script is properly working, you can enable this option (enabling sandbox test will limit the test configuration).

## **3) Geolocation**

#### Cloud Services

Loadium allows you to run globally distributed load tests by providing servers. Lets you select regions to execute situational user simulations. When a location is chosen, engines will be generated in that particular region and all requests will come from that region.

You can find more detailed information on the Geolocation page.

{% content-ref url="/pages/-MUSE7GXKewmLpQmOWWW" %}
[Broken mention](broken://pages/-MUSE7GXKewmLpQmOWWW)
{% endcontent-ref %}

#### Private Location

Instead of provided servers, Loadium allows you to create custom locations with [Docker](https://www.docker.com/) integration to run load tests from your personal servers.

You can find more detailed information on the Private Location page.

{% content-ref url="/pages/-MYABRi8YJLiiG9YuvpQ" %}
[Broken mention](broken://pages/-MYABRi8YJLiiG9YuvpQ)
{% endcontent-ref %}

## 4) Advanced Settings

**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](https://loadium.com/contact-us).

You can find more detailed information on the Dedicated IP page.

{% content-ref url="/pages/-MUSDlUqfBVdT1lh-1Bf" %}
[Broken mention](broken://pages/-MUSDlUqfBVdT1lh-1Bf)
{% endcontent-ref %}

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

**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 on the Network Type page.

{% content-ref url="/pages/-MUSEFVcdAxjbYYkzFHy" %}
[Broken mention](broken://pages/-MUSEFVcdAxjbYYkzFHy)
{% endcontent-ref %}

**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](broken://pages/-MUSE27VOvlt1xnKhF7z).

You can find more detailed information on the TPS page.

{% content-ref url="/pages/-MUSE27VOvlt1xnKhF7z" %}
[Broken mention](broken://pages/-MUSE27VOvlt1xnKhF7z)
{% endcontent-ref %}

## More Settings

You can check out the following pages for additional test settings:

{% content-ref url="/pages/CDD5Gw1xs3k317iv9ZFt" %}
[Broken mention](broken://pages/CDD5Gw1xs3k317iv9ZFt)
{% endcontent-ref %}

{% content-ref url="/pages/-MUheY65faqUboU8iwG4" %}
[Broken mention](broken://pages/-MUheY65faqUboU8iwG4)
{% endcontent-ref %}


# WebDriver Test

A quick guide for creating Selenium based Web Driver test on Loadium

WebDriver test screen has a built-in editor for users to change and implement their Java or JavaScript based test cases. You can go to Create Page and choose WebDriver Test to start creating a test.

## **1) Basics**

* Define a Test Name to your test script, this name will be used in reporting page as it’s and all metrics will be shown as aggregated under it.
* Choose the language that you do the WebDriver implementation. Right now, Loadium support Java and JavaScript

<figure><picture><source srcset="/files/IAaWFg02n0UFQHuLKoE1" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fc1pum74cuBa28uGyB4wc%2Fimage.png?alt=media&amp;token=eb48b60b-9685-4b64-a7e8-491e8780b324" alt=""></picture><figcaption></figcaption></figure>

* Implement the test script.
* Select browser type.

<figure><picture><source srcset="/files/uXYpC5cQzg9h68Pp9lww" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FyH9FpCyOLaAvY6MzFkej%2Fimage.png?alt=media&amp;token=a22b7270-90ad-4ff7-8a91-7307eb3c98d8" alt=""></picture><figcaption></figcaption></figure>

{% hint style="info" %}
**Note:** If you want to add another test script, click the **“Add Script”** button. You may create as many scripts as you want. Scripts will be executed by their order on the screen
{% endhint %}

## **2) Configuration**

Configuration panel allows you to set the size and progression of your load test. Depending on the configuration set here, the behavior of the load will be determined. In case you want to override Loadium parameters, tick the checkbox next to each parameter to use the uploaded JMeter script’s configuration.

<figure><picture><source srcset="/files/IWrf64XN6aFlO6HCsHW0" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fuan67yOuA9N33KKUetlq%2Fimage.png?alt=media&amp;token=b4e4300b-2e32-4849-ae5e-f3b2da27e463" alt=""></picture><figcaption></figcaption></figure>

* **Total Users:** Total amount of virtual users that are going to execute the script. Calculated by Engine Count \* Users Per Engine
* **Engine Count:** Amount of engines that will be used for the test execution.&#x20;
* **Users Per Engine:** Amount of users (threads) that will be generated from each engine to execute the script.
* **Ramp-Up Time:** The amount of time that should pass (in seconds) to reach the total users, starting from 0 threads. Threads increase linearly.

{% hint style="info" %}
**Example:** In case you have 500 total users and 10 seconds ramp-up time, for every second, 50 threads will be generated by Loadium.
{% endhint %}

* **Iteration:** Number of the script executions will be iterated by virtual users.
* **Duration:** Test period (in minutes) for Loadium to execute.&#x20;

{% hint style="warning" %}
**Note:** The test will be concluded whichever is reached first; test duration or iteration.

The test can be concluded before the iteration count is reached, due to the duration being reached. The same rule applies to vice versa. If all iterations are completed before the defined duration, the test will be concluded.
{% endhint %}

* **Debug:** Allows you to run <mark style="color:green;">free</mark> tests to debug your tests. If you just want to make sure that your system is ready for testing, or your script is properly working, you can enable this option (enabling sandbox test will limit the test configuration).

## **3) Geolocation**

#### Cloud Services

Loadium allows you to run globally distributed load tests by providing servers. Lets you select regions to execute situational user simulations. When a location is chosen, engines will be generated in that particular region and all requests will come from that region.

#### Private Location

Instead of provided servers, Loadium allows you to create custom locations with [Docker](https://www.docker.com/) integration to run load tests from your personal servers.

## 4) Advanced Settings

**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](https://loadium.com/contact-us).

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

**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 on the Network Type page.

**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](broken://pages/-MUSE27VOvlt1xnKhF7z).


# HLS Test

HLS Test allows you to execute performance tests on your on-demand or live-streaming video services.

After logging into Loadium, follow the path Create —> HLS Testing to create a video stream test.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FSFaZtb47yUVxtbMX1PNU%2Fimage.png?alt=media&amp;token=dc3b752e-5dc6-4db9-91a3-5242017b81c5" alt=""><figcaption></figcaption></figure>

#### Video Stream Settings

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FyAkA6EcfrW4zpPMHyP9Q%2Fimage.png?alt=media&amp;token=1dfae66a-876d-4b73-aba8-df68ffbfa947" alt=""><figcaption></figcaption></figure>

**Manifest URL:** The URL here should be the manifest URL (.m3u8 or .mpd) which contains the main information of the video.

**Protocol:** Specifies the protocol to be used, HLS or MPEG-DASH. When choosing "Automatic", the configuration is made automatically based on the values ​​in the manifest URL.

**Resolution:** Specifies the resolution values ​​for the video. "Minimum" and "Maximum" options automatically set the resolution based on the values ​​in the manifest URL. Custom resolution allows specific values, but they must match one of the options contained in the manifest URL.

**Duration:** Specifies the duration of the video. Can be the entire video or a custom duration in seconds.

## Example

In our example, this URL value is “<https://vp.nyt.com/video/hls/2023/01/18/105584_1_opdoc-kitchen_wg/master.m3u8>".

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FJWEVxUlrIRQUlSw8efWf%2Fimage.png?alt=media&amp;token=6fa2cd58-063b-4a35-ba19-aebf69033324" alt=""><figcaption></figcaption></figure>

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fiz2gcJ2KwVQfvLDykQ7r%2Fimage.png?alt=media&amp;token=ee71d9f7-90ff-4bbe-bccc-4165cb715c4d" alt=""><figcaption></figcaption></figure>

#### Result

After all these configuration settings are made, we can start the test. We can use the “Request Stats” tab to see the results.

When we start the test after making the relevant settings, Loadium will start downloading the manifest and segment files from the specified URL.&#x20;

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F7hou9JSXu9OK1fF1z0Rp%2Fimage.png?alt=media&amp;token=a56a655c-e4d3-495e-b116-2b1535dfb91a" alt=""><figcaption></figcaption></figure>

When we examine the table on the Request Stats screen, we can see the effect of the load settings we made before the test on the test. There are 5 requests named "Loadium - Streaming Sampler - master playlist". These requests contain the audio and video files of the relevant URL.&#x20;

One of the values ​​we need to pay attention to in this type of test is the average data size. We can use the “Overview” field to see this value.&#x20;

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FS1TQUbdfNrf4wIRGYxza%2Fimage.png?alt=media\&token=c94a3ee8-2196-4c6f-97e2-1d8b70c2e3cd)<br>

The value here shows us that our test downloaded an average of 2.42 MB of data per second. By multiplying the relevant value by the test duration, we can find out the size of the download made during the test period.

In this example, the test lasted 8 seconds. Therefore, it can be seen that the download we made during the test period was 8 x 2.42 MB = 19.36 MB in size.


# HLS Test

HLS Test allows you to execute performance tests on your on-demand or live-streaming video services.

After logging into Loadium, follow the path Create —> HLS Testing to create a video stream test.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FrVqxCHyIvQfqpBE7jYws%2Fimage.png?alt=media&amp;token=eb107520-674b-42b9-b7f2-f3f838fde46d" alt=""><figcaption></figcaption></figure>

#### Video Stream Settings

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FC3XMU4PBNOr64vVabGu9%2Fimage.png?alt=media&amp;token=1f674b52-4e1d-45d1-9a1a-4f03652af6e3" alt=""><figcaption></figcaption></figure>

**Manifest URL:** The URL here should be the manifest URL (.m3u8 or .mpd) which contains the main information of the video.

**Protocol:** Specifies the protocol to be used, HLS or MPEG-DASH. When choosing "Automatic", the configuration is made automatically based on the values ​​in the manifest URL.

**Resolution:** Specifies the resolution values ​​for the video. "Minimum" and "Maximum" options automatically set the resolution based on the values ​​in the manifest URL. Custom resolution allows specific values, but they must match one of the options contained in the manifest URL.

**Duration:** Specifies the duration of the video. Can be the entire video or a custom duration in seconds.

## Example

In our example, this URL value is “<http://sample.vodobox.net/skate_phantom_flex_4k/skate_phantom_flex_4k.m3u8>".

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FTIFUHlWDM4vBcKzAU4Ag%2Fimage.png?alt=media&amp;token=fc12ff19-b47c-4429-adc2-a7d2c4a6db70" alt=""><figcaption></figcaption></figure>

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FxSnFtFmmxpV8lvLlm9ko%2Fimage.png?alt=media&amp;token=07ff2812-000d-4d74-b3c0-a192f02e5b20" alt=""><figcaption></figcaption></figure>

#### Result

After all these configuration settings are made, we can start the test. We can use the “Request Stats” tab to see the results.

When we start the test after making the relevant settings, Loadium will start downloading the manifest and segment files from the specified URL.&#x20;

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FOIibN2P5MJBx7QFwUf2I%2FChatGPT%20Image%2022%20Ag%CC%86u%202026%2000_52_03.png?alt=media&amp;token=a5a70b7f-6ffe-4bfa-9c3b-fc467829c0a1" alt=""><figcaption></figcaption></figure>

When we examine the table on the Request Stats screen, we can see the effect of the load settings we made before the test on the test. There are 10 requests named "Loadium - Streaming Sampler - master playlist". These requests contain the audio and video files of the relevant URL.&#x20;

One of the values ​​we need to pay attention to in this type of test is the average data size. We can use the “Overview” field to see this value.&#x20;

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FldvKcau8lrKcsjKtFrA7%2Fimage.png?alt=media&amp;token=562f4a64-bb8c-4157-899f-2ea57e17c144" alt=""><figcaption></figcaption></figure>

The value here shows us that our test downloaded a total of 16.75 MB data.


# AI Analysis

**Loadium AI Analysis** is an intelligent performance insight tool that allows you to utilize AI to analyze your test results and uncover meaningful insights without manual effort.

***

## What Does It Do?

Loadium AI Analysis helps you:

* Understand your test results faster by summarizing complex data
* Identify anomalies, slow transactions, and potential bottlenecks
* Ask natural language questions to get AI-generated insights on specific issues
* Navigate through your load test data with the help of Recommended or Custom questions

***

## How It Works

Once your load test is complete, Loadium will automatically analyze the results.

You’ll see an **AI Analysis** section on the report page. In this section, you can interact with the AI by asking questions to get deeper insights into your test results.

You can either:

* Use **Recommended Questions** provided by Loadium for quick analysis
* Ask your own **Custom Questions** to explore specific areas of interest

{% hint style="success" %}
**It’s included in the paid plans.**

**You can ask 5 questions on 5 different reports, total of 25 questions.**
{% endhint %}

***

## Benefits

* **Easy to Understand:** Get simplified summaries and explanations without digging into every graph.
* **Saves Time:** No need to manually review every metric or chart.
* **Deep Diving:** Allows users to catch critical information that could be overlooked during manual review.

***

## Use Cases

* Quickly triaging performance issues during high-load testing
* Preparing for peak events like Black Friday or product launches
* Validating performance improvements after code or infrastructure changes

***

## Tips for Best Results

* Use **Recommended Questions** for the most accurate and optimized insights.
* Avoid including sensitive or private information in your custom questions.
* Combine AI insights with manual review for a comprehensive understanding.

***

If you have any feedback or need help understanding AI results, reach out to our support team — we’re here to help!


# Features

<div align="left"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MUhzYXPAvc2ELeOC7Un%2F-MUi08MsH6iilcOBR7fE%2Fimage.png?alt=media&amp;token=ef9a3055-9546-473e-8140-9fa55847e685" alt=""></div>

&#x20;Loadium is fully compatible with JMeter and it’s 3rd party plugins. Test any protocol you want. Set any performance metrics in your requests.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FJQ6A1ekJYSBqpaZzZflG%2FMicrosoftTeams-image%20(14).png?alt=media&amp;token=bf6c7236-9fbf-447e-8131-3de250ebca10" alt=""><figcaption></figcaption></figure>

<div align="left"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MUhzYXPAvc2ELeOC7Un%2F-MUi0nG4jp3m6E1K81g5%2Fimage.png?alt=media&amp;token=c30979f8-a89f-461f-bed1-0e0036cd05ce" alt=""></div>

Gatling helps you anticipate slow response times and errors early in your development cycle.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MUhzYXPAvc2ELeOC7Un%2F-MUi0sA9oe040J2kKrvX%2Fimage.png?alt=media\&token=158188d5-a818-46dd-b939-20058e082a71)

<div align="left"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MUhzYXPAvc2ELeOC7Un%2F-MUi0wFx6PlLEnYr_K9y%2Fimage.png?alt=media&amp;token=07ef4670-aac7-4f99-abf0-8f3e0ebe2178" alt=""></div>

Easily integrate Selenium WebDriver scripts via JMeter’s plugins and include functional test scenarios in performance testing.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FERSgNs1olvNOO1kMMeun%2FMicrosoftTeams-image%20(15).png?alt=media&amp;token=e5e096e3-945c-4216-906c-0c54793bfe7e" alt=""><figcaption></figcaption></figure>

> ### Are you using Postman for Web API Testing?
>
> Do you want to perform a load test on them? Let’s try our Postman to JMeter Converter. The only thing you have to do is to upload your Postman Collection to Loadium.
>
> [**TRY NOW**](https://loadium.com/postman-to-jmeter-converter/)

<div align="left"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MUhzYXPAvc2ELeOC7Un%2F-MUi2N_bu6MhUNrHaTxo%2Fimage.png?alt=media&amp;token=8f1e87e0-cc6c-40f4-8d7a-1bc307d62bed" alt=""></div>

### Multi Geo Support

Model your load type from different geo locations by using our Amazon AWS support.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FLfmMBnPPNBRVAvLdX5Ed%2FMicrosoftTeams-image%20(17).png?alt=media&amp;token=483ba8f2-4965-4727-bf25-aabee2046359" alt=""><figcaption></figcaption></figure>

### Network Simulation

Eliminate unexpected network failures and run various bandwidth combinations.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FTdjwJ6TIuuSxAIy8bjBf%2FMicrosoftTeams-image%20(18).png?alt=media&amp;token=2f9a5902-5c99-40f8-a8c3-f1ade55131aa" alt=""><figcaption></figcaption></figure>

**Monitor your app performance by;**&#x20;

APM tools such as New Relic, App Dynamics Detect and diagnose complex application performance problems to maintain hardware level KPI’s.

### Continuous Integration

Use your favorite Continuous Integration server (Jenkins, Teamcity) with Loadium.

Run your JMeter tests in parallel on Loadium’s cloud engines to ensure quality. Integrate your performance test into your delivery pipeline to make sure you deploy most stable build. Set your KPIs and fail the test according to them. Use Jenkins and TeamCity immediately by downloading from plugin markets or use our public APIs for custom integrations. Find the details information about our public APIs in our wiki page.

### **Selenium WebDriver**

* Convert a Selenium WebDriver test into a performance test.
* Write a Selenium script with Java or JavaScript.
* Run your test in Loadium and gather browser level response times.

### **HTTP Test**

* Test your APIs and HTTP URL by using Loadium’s Web UI.
* Simulate GET, POST, PUT and DELETE requests with necessary headers and body.
* No JMeter knowledge required.

### **Test Comparison**

* Export test results into PDF or Excel.
* Choose Simple or Advanced Comparison.
* Monitor how your application performs along the way.

Enjoy load testing!

{% content-ref url="/pages/MgN0OAuKVZtI6DuNx1bd" %}
[Pricing](/about-loadium/pricing)
{% endcontent-ref %}

{% content-ref url="/pages/-MUT64e7K16MOCUe5UD3" %}
[VUH - Virtual User Hour](/about-loadium/vuh-virtual-user-hour)
{% endcontent-ref %}

{% content-ref url="/pages/-MUSAunBwe2J09CIl1hu" %}
[JMeter Test](/create-test/jmeter-test)
{% endcontent-ref %}

{% content-ref url="/pages/7s0YgIf65n80jnrkt05F" %}
[Report PDF Export](/features/report-pdf-export)
{% endcontent-ref %}

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# Features

<div align="left"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MUhzYXPAvc2ELeOC7Un%2F-MUi08MsH6iilcOBR7fE%2Fimage.png?alt=media&amp;token=ef9a3055-9546-473e-8140-9fa55847e685" alt=""></div>

&#x20;Loadium is fully compatible with JMeter and it’s 3rd party plugins. Test any protocol you want. Set any performance metrics in your requests.

<figure><picture><source srcset="/files/zpOIdgdQUhDIg2D4ofEp" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Ff15uzoWl3M5EsG99PPlN%2Fimage.png?alt=media&amp;token=70659f8e-8d8e-4b7f-b932-4ddcdc39a023" alt=""></picture><figcaption></figcaption></figure>

<div align="left"><picture><source srcset="/files/5VwPxq5zRL4l2ApZswdE" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MUhzYXPAvc2ELeOC7Un%2F-MUi0nG4jp3m6E1K81g5%2Fimage.png?alt=media&amp;token=c30979f8-a89f-461f-bed1-0e0036cd05ce" alt="" width="188"></picture></div>

Gatling helps you anticipate slow response times and errors early in your development cycle.

<figure><picture><source srcset="/files/ih2a7ddidWZG2HwpJUFZ" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fqy23UdUvtLFMhjgc1vwr%2Fimage.png?alt=media&amp;token=edb0c303-5d9a-47b7-a08e-92bfa133fbb9" alt=""></picture><figcaption></figcaption></figure>

<div align="left"><picture><source srcset="/files/TfsZFmoO2pyIJFxU53EG" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MUhzYXPAvc2ELeOC7Un%2F-MUi0wFx6PlLEnYr_K9y%2Fimage.png?alt=media&amp;token=07ef4670-aac7-4f99-abf0-8f3e0ebe2178" alt="" width="375"></picture></div>

Easily integrate Selenium WebDriver scripts via JMeter’s plugins and include functional test scenarios in performance testing.

<figure><picture><source srcset="/files/MZxI20RoIWxb8082DfAd" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FVyOumhzGtn9PvHiMNAiM%2Fimage.png?alt=media&amp;token=85c478a1-94ba-4948-9be6-033e9f5c5cc1" alt=""></picture><figcaption></figcaption></figure>

> ### Are you using Postman for Web API Testing?
>
> Do you want to perform a load test on them? Let’s try our Postman to JMeter Converter. The only thing you have to do is to upload your Postman Collection to Loadium.
>
> [**TRY NOW**](https://loadium.com/postman-to-jmeter-converter/)

<div align="left"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MUhzYXPAvc2ELeOC7Un%2F-MUi2N_bu6MhUNrHaTxo%2Fimage.png?alt=media&amp;token=8f1e87e0-cc6c-40f4-8d7a-1bc307d62bed" alt=""></div>

### Multi Geo Support

Model your load type from different geo locations by using our Amazon AWS, Oracle, GCP and Microsoft Azure support.

<figure><picture><source srcset="/files/2VJ6IqqwYYSgZSzOroP6" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FDFALjUl95M6CWYnXURZx%2Fimage.png?alt=media&amp;token=e81bad5e-bd36-46af-8e58-d541bdd0f923" alt=""></picture><figcaption></figcaption></figure>

### Network Simulation

Eliminate unexpected network failures and run various bandwidth combinations.

<figure><picture><source srcset="/files/WLBmJlqCnpgS5qNOhNGc" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F3guknop5yoFQlBt5txUB%2Fimage.png?alt=media&amp;token=fc18cdeb-6ce1-40a2-b1bf-282a8ec373c0" alt=""></picture><figcaption></figcaption></figure>

**Monitor your app performance by;**&#x20;

APM tools such as New Relic, App Dynamics Detect and diagnose complex application performance problems to maintain hardware level KPI’s.

### Continuous Integration

Use your favorite Continuous Integration server (Jenkins, Teamcity) with Loadium.

Run your JMeter tests in parallel on Loadium’s cloud engines to ensure quality. Integrate your performance test into your delivery pipeline to make sure you deploy most stable build. Set your KPIs and fail the test according to them. Use Jenkins and TeamCity immediately by downloading from plugin markets or use our public APIs for custom integrations. Find the details information about our public APIs in our wiki page.

### **Selenium WebDriver**

* Convert a Selenium WebDriver test into a performance test.
* Write a Selenium script with Java or JavaScript.
* Run your test in Loadium and gather browser level response times.

### **HTTP Test**

* Test your APIs and HTTP URL by using Loadium’s Web UI.
* Simulate GET, POST, PUT and DELETE requests with necessary headers and body.
* No JMeter knowledge required.

### **Test Comparison**

* Export test results into PDF or Excel.
* Choose Simple or Advanced Comparison.
* Monitor how your application performs along the way.


# Pricing OLD

How much does it cost? An explanation of Loadium's pricing and billing system

### What is the cost of running test on Loadium?

Loadium has two different types of plans that you can select from: Subscription Packages and Customized Solutions.

### What is a Subscription Package?

A subscription package defines your thread, execution, minutes, and engine limits in the month/year you subscribed. Packages consist of following parameters:

* Thread is corresponding to a virtual user.
* Engine is how many servers run your test.
* Duration is how long your test takes in minutes.

[The packages Loadium offers 2 paid plans:](https://loadium.com/pricing)

#### **Free Package**

You can benefit from Loadium free package to try load testing! You get up to 10 performance tests per month, up to 10 minutes and with 50 users per engine and 1 engine. You can also make 100.000 API call.

In the Free Package, tests are run in shared servers. Therefore, the results can be less reliable and the person who runs the test each location of the load generators provided by Loadium except Dublin.

#### **Starter Package**

[Loadium has two types of Starter Pricing Plans: Annual and Monthly.](https://loadium.com/pricing/)

* Annual Starter Package: There are 300 performance tests that you can use all up either in your first month or spread them out whole year. You can run your tests with 2 engines including 500 virtual users and 2 parallel tests. You can also run unlimited number of GUI functional tests in the test duration you have.&#x20;
* Monthly Starter Package: There are 25 performance tests that renew each month and if they aren’t used within a month, they do not roll over to next month. You can run your tests with 2 engines including 500 virtual users and 2 parallel tests. You can also run unlimited number of GUI functional tests in the test duration you have.

#### **Basic Package**

[Loadium has two types of Basic Pricing Plans: Annual and Monthly.](https://loadium.com/pricing/)

* Annual Basic Package: There are 300 performance tests that you can use all up either in your first month or spread them out whole year. You can run your tests with 4 engines including 2.000 virtual users and 3 parallel tests. You can also run unlimited number of GUI functional tests in the test duration you have.&#x20;
* Monthly Basic Package: There are 25 performance tests that renew each month and if they aren’t used within a month, they do not roll over to next month. You can run your tests with 4 engines including 2.000 virtual users and 3 parallel tests. You can also run unlimited number of GUI functional tests in the test duration you have.

#### **Pro Package**

[Loadium has two types of Pro Pricing Plans: Annual and Monthly.](https://loadium.com/pricing/)

* Annual Pro Package: There are 300 performance tests that you can use all up either in your first month or spread them out whole year. You can run your tests with 10 engines including 5000 virtual users. You can also run unlimited number of GUI functional tests in the test duration you have.
* Monthly Pro Package: There are 25 performance tests that renew each month and if they aren't used within a month, they do not roll over to next month. You can run your tests with 10 engines including 5000 virtual users. You can also run unlimited number of GUI functional tests in the test duration you have.

**Customized Package:** If Basic and Pro packages do not meet your needs, as Loadium we offer a package tailored to your needs. [You may reach Customized Pack details here](https://loadium.com/vuh/)

{% content-ref url="/pages/-MUT64e7K16MOCUe5UD3" %}
[VUH - Virtual User Hour](/about-loadium/vuh-virtual-user-hour)
{% endcontent-ref %}

### How many virtual users do you need to simulate in your tests?

[Load testing ](https://loadium.com/)is not just for peak seasons in your business. It is necessary for all time when you have active users.

During the pandemic, we all recognized that unexpected situations may occur and the businesses (ecommerce, carriers, telecommunication, finance...etc) which were ready for unexpected high traffic, adapted to the changing circumstances easily and quickly.

To determine how many virtual users you need, you should take your highest traffic as basis and add an additional %10 traffic to that level, to stay in the safe zone.

### How often do you need to run load testing?

This depends on the industry you are in and its peak seasons. As [Loadium,](https://loadium.com/features/) we suggest running a load test after each deployment.

### What is Sandbox?

You can run a test without charging your package to be sure your test is running. When you check the SandBox option, the parameters set are as following:

* Engine Count: 1
* Users Per Engine: 5
* Ramp Up Time: 30sec
* Iteration: ∞
* Duration: 1min

{% content-ref url="/pages/-MUSDT9m95VYzdFJ536o" %}
[Broken mention](broken://pages/-MUSDT9m95VYzdFJ536o)
{% endcontent-ref %}

Enjoy load testing!


# Pricing

How much does it cost? An explanation of Loadium's pricing and billing system

### What is the cost of running test on Loadium?

Loadium has two different types of plans that you can select from: Subscription Packages and Customized Solutions.

### What is a Subscription Package?

A subscription package defines your thread, execution, minutes, and engine limits in the month/year you subscribed. Packages consist of following parameters:

* Thread is corresponding to a virtual user.
* Engine is how many servers run your test.
* Duration is how long your test takes in minutes.

[The packages Loadium offers 2 paid plans:](https://loadium.com/pricing)

#### **Free Package**

You can benefit from Loadium free package to try load testing! You get up to 10 performance tests per month, up to 5 minutes and with 100 users per engine and 1 engine. You can also make 200.000 API call.

In the Free Package, tests are run in shared servers. Therefore, the results can be less reliable and the person who runs the test each location of the load generators provided by Loadium except Dublin.

#### **Starter Package**

[Loadium has two types of Starter Pricing Plans: Annual and Monthly.](https://loadium.com/pricing/)

* Annual Starter Package: There are 300 performance tests that you can use all up either in your first month or spread them out whole year. You can run your tests with 2 engines including 500 virtual users and 2 parallel tests. You can also run unlimited number of GUI functional tests in the test duration you have.&#x20;
* Monthly Starter Package: There are 25 performance tests that renew each month and if they aren’t used within a month, they do not roll over to next month. You can run your tests with 2 engines including 500 virtual users and 2 parallel tests. You can also run unlimited number of GUI functional tests in the test duration you have.

#### **Basic Package**

[Loadium has two types of Basic Pricing Plans: Annual and Monthly.](https://loadium.com/pricing/)

* Annual Basic Package: There are 300 performance tests that you can use all up either in your first month or spread them out whole year. You can run your tests with 4 engines including 2.000 virtual users and 3 parallel tests. You can also run unlimited number of GUI functional tests in the test duration you have.&#x20;
* Monthly Basic Package: There are 25 performance tests that renew each month and if they aren’t used within a month, they do not roll over to next month. You can run your tests with 4 engines including 2.000 virtual users and 3 parallel tests. You can also run unlimited number of GUI functional tests in the test duration you have.

#### **Pro Package**

[Loadium has two types of Pro Pricing Plans: Annual and Monthly.](https://loadium.com/pricing/)

* Annual Pro Package: There are 300 performance tests that you can use all up either in your first month or spread them out whole year. You can run your tests with 10 engines including 5000 virtual users. You can also run unlimited number of GUI functional tests in the test duration you have.
* Monthly Pro Package: There are 25 performance tests that renew each month and if they aren't used within a month, they do not roll over to next month. You can run your tests with 10 engines including 5000 virtual users. You can also run unlimited number of GUI functional tests in the test duration you have.

**Customized Package:** If Basic and Pro packages do not meet your needs, as Loadium we offer a package tailored to your needs. [You may reach Customized Pack details here](https://loadium.com/vuh/)

{% content-ref url="/pages/-MUT64e7K16MOCUe5UD3" %}
[VUH - Virtual User Hour](/about-loadium/vuh-virtual-user-hour)
{% endcontent-ref %}

### How many virtual users do you need to simulate in your tests?

[Load testing ](https://loadium.com/)is not just for peak seasons in your business. It is necessary for all time when you have active users.

During the pandemic, we all recognized that unexpected situations may occur and the businesses (ecommerce, carriers, telecommunication, finance...etc) which were ready for unexpected high traffic, adapted to the changing circumstances easily and quickly.

To determine how many virtual users you need, you should take your highest traffic as basis and add an additional %10 traffic to that level, to stay in the safe zone.

### How often do you need to run load testing?

This depends on the industry you are in and its peak seasons. As [Loadium,](https://loadium.com/features/) we suggest running a load test after each deployment.

### What is Debug Test?

You can run a test without charging your package to be sure your test is running. When you click on the Debug Test button, the parameters set are as following:

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FKrPDFBAnDZj8aDJ8C5A3%2Fimage.png?alt=media&amp;token=6d739c76-1e59-4958-a493-6bb43a6516a7" alt=""><figcaption></figcaption></figure>

* Engine Count: 1
* Users Per Engine: 5
* Ramp Up Time: 30sec
* Iteration: ∞
* Duration: 1min

{% content-ref url="/pages/wI8l9qDIU45UK8k96hZO" %}
[Debug Test](/test-settings/debug-test)
{% endcontent-ref %}

Enjoy load testing!


# Pricing

How much does it cost? An explanation of Loadium's pricing and billing system

### What is the cost of running test on Loadium?

Loadium has two different types of plans that you can select from: Subscription Packages and Customized Solutions.

### What is a Subscription Package?

A subscription package defines your thread, execution, minutes, and engine limits in the month/year you subscribed. Packages consist of following parameters:

* Thread is corresponding to a virtual user.
* Engine is how many servers run your test.
* Duration is how long your test takes in minutes.

[The packages Loadium offers 2 paid plans:](https://loadium.com/pricing)

#### **Free Package**

You can benefit from Loadium free package to try load testing! You get up to 10 performance tests per month, up to 5 minutes and with 100 users per engine and 1 engine. You can also make 200.000 API call.

In the Free Package, tests are run in shared servers. Therefore, the results can be less reliable and the person who runs the test each location of the load generators provided by Loadium except Dublin.

#### **Starter Package**

[Loadium has two types of Starter Pricing Plans: Annual and Monthly.](https://loadium.com/pricing/)

* Annual Starter Package: There are 300 performance tests that you can use all up either in your first month or spread them out whole year. You can run your tests with 2 engines including 500 virtual users and 2 parallel tests. You can also run unlimited number of GUI functional tests in the test duration you have.&#x20;
* Monthly Starter Package: There are 25 performance tests that renew each month and if they aren’t used within a month, they do not roll over to next month. You can run your tests with 2 engines including 500 virtual users and 2 parallel tests. You can also run unlimited number of GUI functional tests in the test duration you have.

#### **Basic Package**

[Loadium has two types of Basic Pricing Plans: Annual and Monthly.](https://loadium.com/pricing/)

* Annual Basic Package: There are 300 performance tests that you can use all up either in your first month or spread them out whole year. You can run your tests with 4 engines including 2.000 virtual users and 3 parallel tests. You can also run unlimited number of GUI functional tests in the test duration you have.&#x20;
* Monthly Basic Package: There are 25 performance tests that renew each month and if they aren’t used within a month, they do not roll over to next month. You can run your tests with 4 engines including 2.000 virtual users and 3 parallel tests. You can also run unlimited number of GUI functional tests in the test duration you have.

#### **Pro Package**

[Loadium has two types of Pro Pricing Plans: Annual and Monthly.](https://loadium.com/pricing/)

* Annual Pro Package: There are 300 performance tests that you can use all up either in your first month or spread them out whole year. You can run your tests with 10 engines including 5000 virtual users. You can also run unlimited number of GUI functional tests in the test duration you have.
* Monthly Pro Package: There are 25 performance tests that renew each month and if they aren't used within a month, they do not roll over to next month. You can run your tests with 10 engines including 5000 virtual users. You can also run unlimited number of GUI functional tests in the test duration you have.

**Customized Package:** If Basic and Pro packages do not meet your needs, as Loadium we offer a package tailored to your needs. [You may reach Customized Pack details here](https://loadium.com/vuh/)

{% content-ref url="/pages/-MUT64e7K16MOCUe5UD3" %}
[VUH - Virtual User Hour](/about-loadium/vuh-virtual-user-hour)
{% endcontent-ref %}

### How many virtual users do you need to simulate in your tests?

[Load testing ](https://loadium.com/)is not just for peak seasons in your business. It is necessary for all time when you have active users.

During the pandemic, we all recognized that unexpected situations may occur and the businesses (ecommerce, carriers, telecommunication, finance...etc) which were ready for unexpected high traffic, adapted to the changing circumstances easily and quickly.

To determine how many virtual users you need, you should take your highest traffic as basis and add an additional %10 traffic to that level, to stay in the safe zone.

### How often do you need to run load testing?

This depends on the industry you are in and its peak seasons. As [Loadium,](https://loadium.com/features/) we suggest running a load test after each deployment.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fs3iiW6K8J8k9Ex1PqIqY%2Fimage.png?alt=media&amp;token=6e09f75b-362f-42b1-ae07-ed973ba84cea" alt=""><figcaption></figcaption></figure>

### What is Debug Test?

You can run a test without charging your package to be sure your test is running. When you click on the Debug Test button, the parameters set are as following:

* Engine Count: 1
* Users Per Engine: 5
* Ramp Up Time: 30sec
* Iteration: ∞
* Duration: 1min

{% content-ref url="/pages/PCkqn7DN48gwhOoUFDU5" %}
[Debug Test](/test-settings/debug-test-1)
{% endcontent-ref %}


# VUH - Virtual User Hour

{% embed url="<https://www.youtube.com/watch?v=EotrXKZbYTw>" %}

## What is VUH?

Virtual User Hour (VUH) is a credit system for running load tests.&#x20;

‘VUH’ plans will use VUH as test credits, instead of test counts.

‘VUH’ plans offer greater flexibility than ‘Test Count’ plans. Their flexible consumption model—where you pay only for what you use—provides additional advantages compared to ‘Test Count’ plans.

1 VUH corresponds to 1 virtual user running test for 1 hour.

{% hint style="info" %}
*1.000 virtual users running test for 1 hour would result in 1.000 VUH usage*
{% endhint %}

Loadium calculates VUH consumption by rounding up to 30-minute intervals, rather than a full hour, to provide better cost flexibility.

{% hint style="info" %}
*For example, a test with 1.000 virtual users running for 15 minutes (ceiled to 30 minutes) would result in 500 VUH usage (instead of 1.000 VUH).*
{% endhint %}

## How to Calculate VUH?

* Tests between 0–30 minutes will consume VUH at a 0.5x rate.
* Tests between 30–60 minutes will consume VUH at a 1x rate.
* Beyond 60 minutes, usage will continue in 30-minute increments at an additional 0.5x each block.

You may calculate the VUH with the formula below:

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FF08JFL7DA6DIkXHsuapM%2Fimage.png?alt=media&amp;token=07efab61-0892-48fb-89dc-2577ffae4960" alt="" width="375"><figcaption></figcaption></figure>

## How do I determine how much VUH I need?

Below are a few steps and considerations that can help you estimate how much Virtual User Hour (VUH) capacity you’ll need:

1. **Identify Test Goals and Parameters**
   1. Determine the purpose and scale of your load test. Are you testing peak traffic scenarios, or trying to validate performance under normal load?
   2. Pin down the number of virtual users (VUs) you want to run and the test duration (minutes or hours per test).
2. **Use Historical or Similar Test Data**
   1. If you’ve performed load tests before, review those metrics. How many virtual users did you employ? How long did each test last?
   2. If you’re unsure, look at your website or application’s typical traffic patterns and consider a safety margin for unexpected spikes.
3. **Factor in Test Frequency**
   1. Plan for how often you’ll run these tests—monthly, weekly, or daily. Frequent, smaller tests might allow for better control.
4. **Leave Room for Adjustments**
   1. You may want to allow extra VUH for retests or extended durations if you need to tweak parameters or confirm results.
   2. Having a bit of buffer capacity can save time and ensure you don’t run out of VUH mid-test.

{% hint style="info" %}
**Example for 10,000 VUH Usage:**

* Test Series A:
  * 500 Users for 30 min, 6 runs
  * VUH per run: 250
  * Total: 1,500 VUH
* Test Series B
  * 1,000 Users for 60 min, 3 runs
  * VUH per run: 1,000
  * Total: 3,000 VUH
* Test Series C
  * 2,000 Users for 30 min, 3 runs
  * VUH per run: 1,000
  * Total: 3,000 VUH
* Test Series D
  * 5,000 Users for 30 min, 1 run
  * VUH per run: 2,500
  * Total: 2,500 VUH

#### **Grand Total VUH**

1,500 + 3,000 + 3,000 + 2,500 = **10,000 VUH**
{% endhint %}

## When will you charge my usage from my account?

Before running a load test, you can see how many VUH will be charged from your account under the test parameters slider. When you run the test, the usage will be charged.

We have a prepaid option for VUH. After purchasing VUH, you can see the number of VUH in your account and run your performance tests.

## Will I exceed my package limit?

Since we have a prepaid option, you can’t exceed your limit in your package.


# Usage Statistics

The Usage Statistics page provides an overview of your account usage, allowing you to monitor test activity, VUH consumption, and the distribution of different test types.

After logging in to your Loadium account, select **Usage Statistics** from the left sidebar to access the page.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FzBQvGCynoJS5IqoLZ4zK%2Fimage.png?alt=media&amp;token=ee432f0c-bb79-49a4-aadb-e3f6cd717f27" alt=""><figcaption></figcaption></figure>

### Key Metrics

At the top of the page, summary cards provide quick access to key usage information.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FWofrnPEWHXmwqFGYGHgT%2Fimage.png?alt=media&amp;token=f51507c0-1fce-47ba-989c-24c6cf291910" alt=""><figcaption></figcaption></figure>

{% columns %}
{% column width="25%" %}
**Total Tests**

Displays the total number of tests executed during your current subscription period.
{% endcolumn %}

{% column width="25%" %}
**Remaining VUH**

Shows the amount of [Virtual User Hours (VUH)](/about-loadium/vuh-virtual-user-hour) remaining in your current subscription plan.
{% endcolumn %}

{% column %}
**Recent Activity**

Displays the date and time of the most recently executed test.
{% endcolumn %}

{% column %}
**Total Test Types**

Shows the number of different test types executed during your current subscription period.
{% endcolumn %}
{% endcolumns %}

### Test Type Distribution

The Test Type Distribution chart provides a visual breakdown of the different test types executed during your subscription period.

The distribution is displayed as a pie chart, allowing you to quickly understand how your test usage is distributed across different test types.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FV26DJ7DKN4kEVZXa0Wq2%2Fimage.png?alt=media&amp;token=d02b0ca0-f1de-42e5-a1a8-efdd6590a5e5" alt=""><figcaption></figcaption></figure>

### Usage Trends

The Usage Trends chart displays your VUH consumption and the number of executed tests over time, helping you monitor how your Loadium usage changes throughout your subscription period.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F9gYtvXkk15u48kJV457m%2Fimage.png?alt=media&amp;token=0d6af620-387f-40cf-9057-98aba3e060ce" alt=""><figcaption></figcaption></figure>

You can analyze usage trends using different time intervals:

* **Daily**
* **Weekly**
* **Monthly**

This makes it easier to identify periods of increased test activity and track VUH consumption over time.

### Table View

Click the **Show Table** button to display the Usage Trends data in a table format.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FwdnGAJnn8qVglCLu5LMX%2FEkran%20Resmi%202026-09-17%2018.00.17.png?alt=media&amp;token=847e53c1-575e-4312-8d54-8b0e37328ffe" alt=""><figcaption></figcaption></figure>

The table provides a structured view of test activity and VUH usage for each period. By selecting a specific date or period from the table, you can view the corresponding test details in the **Period Details** section.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FsicuyIh9yW1G6bswN9jT%2Fimage.png?alt=media&amp;token=3ec91dc1-9629-49a0-8c48-cd9d7a246334" alt=""><figcaption></figcaption></figure>

### Period Details

The Period Details table displays detailed information about the tests executed during the selected period.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FXfknCPa7yicn9u7ynKUs%2Fimage.png?alt=media&amp;token=31e31936-2552-408a-98b2-55470e85388e" alt=""><figcaption></figcaption></figure>

You can select a Test Name from this table to navigate directly to the corresponding [test report](/features/test-report) for further analysis.


# Projects

The Projects page allows you to organize your tests by creating separate project folders for different projects. This helps you manage your test scenarios more efficiently and keep related tests grouped together.

After logging in to your Loadium account, select **Projects** from the left sidebar to access the page.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Ff4dGs2H8MzizsR6yqg0I%2Fimage.png?alt=media&amp;token=842933c3-53fc-4c9b-9d5b-019a7ce944ff" alt=""><figcaption></figcaption></figure>

### Creating a New Project

Click the **New Project** button to create a new project folder. After entering the required project information, the newly created project will be displayed on the **Projects** page.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FMXAKnmgmlkNl9jbJv8BH%2Fimage.png?alt=media&amp;token=4e8534f3-9427-4954-838e-bdc0ea7c0345" alt=""><figcaption></figcaption></figure>

You can create multiple project folders to organize tests based on different applications, teams, environments, or testing purposes.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FG9SwPHUbEKb2nMaGfkBC%2Fimage.png?alt=media&amp;token=a43542b1-f0ad-4a5c-a9a3-700c39f26003" alt=""><figcaption></figcaption></figure>

### Managing Projects

Click the three-dot menu next to a project to access the available project management options.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FGNPDMFzvf4WWz3BzvthG%2Fimage.png?alt=media&amp;token=582b8f26-de66-4e97-9ac5-b59d9e7096d6" alt=""><figcaption></figcaption></figure>

From this menu, you can:

* **Go to Tests** → Access the tests associated with the selected project.
* **Add Test** → Create a new test and assign it directly to the selected project.
* **Edit Project** → Update the project information.
* **Delete Project** → Remove the project folder.

### Adding Tests to a Project

Tests can be assigned to a project while creating or configuring a test.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FeAHSuNh2ayyFvE4WvAN7%2Fimage.png?alt=media&amp;token=826f145f-a525-4aff-abde-46969d5ec980" alt=""><figcaption></figcaption></figure>

On the [**Test Create**](/create-test/jmeter-test) page, use the **Project Selection** option to select the project folder where you want the test to be organized. Once selected, the test will be associated with the corresponding project and can be accessed through the **Projects** page.


# Profile & Account Old

What is , How to Use & Things to Pay Attention

When you click the profile icon in the upper-left corner of the screen, a dropdown menu will appear. By selecting the **Account** option from this menu, you will be directed to the Account page where you can view and manage your profile information.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F8S2HB6JvjtR9zq9IeP6n%2Fimage.png?alt=media&amp;token=0c30d4fe-c782-4ebd-84ce-78d9a462fd13" alt=""><figcaption></figcaption></figure>

The **Account** page allows you to manage your personal information, company details, security settings, and preferences within Loadium. Each section below helps you maintain full control over your profile and ensures a secure and personalized testing experience.

### **User Information**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F4GG0leorPQphVAqJgmX1%2Fimage.png?alt=media&amp;token=8cf70edd-f143-4dcb-aab2-7cb0c19f4350" alt=""><figcaption></figcaption></figure>

This section contains your basic personal information associated with your Loadium account.

* View or update your full name and email address
* Manage communication preferences
* Ensure your account details stay accurate and up to date
* Provides your Access Key required to create Private Location load generators.

***

### **Company**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F7CB6W61cNikgg5MOyNMi%2Fimage.png?alt=media&amp;token=a04c3e27-0c46-4b62-b023-91f4a39abb1b" alt=""><figcaption></figcaption></figure>

Here you can manage your organization-related information.

* Add or edit your company name
* Provide optional organizational details for invoicing or compliance
* Helps align your Loadium account with your business identity

***

### **Billing Address**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FVVe9XIryddUcZXM0YZFy%2Fimage.png?alt=media&amp;token=37072d55-a99a-47fa-ad66-0234cbae8e7c" alt=""><figcaption></figcaption></figure>

Your billing address is used for invoices and subscription-related documentation.

* Enter or update billing address details
* Ensure your invoices reflect correct company and tax information
* Required for paid subscription plans

***

### **Change Password**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F1doNSOzkFEs1ldmlA1Fj%2Fimage.png?alt=media&amp;token=9ade73ff-aaa0-4103-8132-a7b07582f4a2" alt=""><figcaption></figcaption></figure>

Maintain the security of your account by changing your password at any time.

* Update your current password
* Recommended regularly for enhanced account protection
* Supports strong password policies

***

### **Account Time Zone**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fqkw9hjazbeNw6Fun77mX%2Fimage.png?alt=media&amp;token=0c17e8e1-18b1-40f5-9ba9-8f2e6c43a782" alt=""><figcaption></figcaption></figure>

Configure the time zone used across your Loadium account.

* Test schedules, reports, and timestamps are displayed in your chosen time zone
* Ensures consistent tracking across global teams
* Useful for accurate scheduling and reporting

***

### **Public Report Access**

Manage whether your test reports can be accessed via public links.

* Enable or disable external visibility
* Share reports easily with stakeholders when needed
* Control report access without requiring account login

***

### **Two-Factor Authentication (2FA)**

Improve your account security with an additional authentication step.

* Enable Two-Factor Authentication for stronger protection
* Prevent unauthorized access to your account
* Recommended for all enterprise users

***

### **Account Settings**

Provides the option to permanently delete your Loadium account and remove all associated data.


# Profile & Account

What is , How to Use & Things to Pay Attention

When you click the profile icon in the upper-left corner of the screen, a dropdown menu will appear. By selecting the **Account** option from this menu, you will be directed to the Account page where you can view and manage your profile information.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FRSMThQ9wPIvJh9G9Y5O7%2Fimage.png?alt=media&amp;token=b110b55b-646d-4978-b1b9-a1b976bbcfd7" alt=""><figcaption></figcaption></figure>

The **Account** page allows you to manage your personal information, security settings, and preferences within Loadium. Each section below helps you maintain full control over your profile and ensures a secure and personalized testing experience.

### **User Information**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F0Toms0BhppTpqc69WbeB%2Fimage.png?alt=media&amp;token=0438fbf6-3d94-4371-8c84-a228fc68b8d4" alt=""><figcaption></figcaption></figure>

This section contains your basic personal information associated with your Loadium account.

* View or update your full name and email address
* Manage communication preferences
* Ensure your account details stay accurate and up to date

***

### **Change Password**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FSXAkyJ1o1JUiTIUvMCPR%2Fimage.png?alt=media&amp;token=7e760767-650f-448e-ac0c-efe2b1c21fb9" alt=""><figcaption></figcaption></figure>

Maintain the security of your account by changing your password at any time.

* Update your current password
* Recommended regularly for enhanced account protection
* Supports strong password policies

***

### **Two-Factor Authentication (2FA)**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FmMBFdr0YpOukcodpkiou%2Fimage.png?alt=media&amp;token=3d9762a9-673a-4867-979d-6d5142a54bd5" alt=""><figcaption></figcaption></figure>

Improve your account security with an additional authentication step.

* Enable Two-Factor Authentication for stronger protection
* Prevent unauthorized access to your account
* Recommended for all enterprise users

***

### **Account Settings**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F5fWVdnv9tFoN52fhDyg7%2Fimage.png?alt=media&amp;token=3f7ed1da-4578-4d92-91c2-688b93ad2d96" alt=""><figcaption></figcaption></figure>

Provides the option to permanently delete your Loadium account and remove all associated data.


# Company

What is , How to Use & Things to Pay Attention

When you click the profile icon in the upper-left corner of the screen, a dropdown menu will appear. By selecting the **Account** option from this menu, you will be directed to the Account page where you can view and manage your profile information.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FTK4dYrbmyFKQES3UM9aP%2Fimage.png?alt=media&amp;token=46176c8b-a55d-4431-a5d2-269f7e51ec44" alt=""><figcaption></figcaption></figure>

Once the **Account** page is opened, click the **Company** option in the left sidebar to navigate to the **Company** page, where you can view and manage your company information.

The **Company** page allows you to manage your company details and preferences within Loadium. Each section below helps you maintain full control over your profile and ensures a secure and personalized testing experience.

### **Company Information**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FZlYuPzuBUxPuU7LzvIxD%2Fimage.png?alt=media&amp;token=12d13617-c246-466d-86e9-65f1012a12ca" alt=""><figcaption></figcaption></figure>

Here you can manage your organization-related information.

* Add or edit your company name
* Provide optional organizational details for invoicing or compliance
* Helps align your Loadium account with your business identity

***

### **Company Time Zone**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FcMMYA6JoAqsjfCfnvHqW%2Fimage.png?alt=media&amp;token=2bda9b11-f24b-4442-b744-efda64c27655" alt=""><figcaption></figcaption></figure>

Configure the time zone used across your Loadium account.

* Test schedules, reports, and timestamps are displayed in your chosen time zone
* Ensures consistent tracking across global teams
* Useful for accurate scheduling and reporting

***

### **Public Report Access**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FQyO9lHLmiWrMeM9HjCRM%2Fimage.png?alt=media&amp;token=e670ee23-3435-4e11-b387-bcc3b48b8244" alt=""><figcaption></figcaption></figure>

Manage whether your test reports can be accessed via public links.

* Enable or disable external visibility
* Share reports easily with stakeholders when needed
* Control report access without requiring account login


# Users

What is , How to Use & Things to Pay Attention

Upon logging in to Loadium, you can access the **Users** page by selecting the **Team Members** card on the **Dashboard**. This page provides detailed information about your current subscription plan and related account options. Alternatively, you can navigate to the same page by clicking the profile icon in the upper-right corner and following the **Account → Users** path.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F3l22g5Tpalj4mAyym2Id%2Fimage.png?alt=media&amp;token=afbfd84d-dc4f-4108-8287-ee9572ccedae" alt=""><figcaption></figcaption></figure>

The **Users** page allows you to manage the users registered under your company account. From this page, you can add users who are authorized to access your account and manage their roles and permissions.

### **Users Management**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FNPdZ7RXqTNQ9zS8AmqDD%2Fimage.png?alt=media&amp;token=706267c0-9cf2-4872-ac84-f8ba25c9ec4f" alt=""><figcaption></figcaption></figure>

***

### **Add User**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F6ouwBqqivd3UZit80gkw%2Fimage.png?alt=media&amp;token=06d687ee-a130-42c5-be6f-16753e8af866" alt=""><figcaption></figcaption></figure>

You can add additional users to your company account by clicking the **Add User** button. Enter the required user information and select the appropriate role, then click **Send Invitation** to complete the invitation process. An invitation link will be sent to the specified email address, allowing the invited user to join your company account.

You can manage existing users by clicking the **Edit** button next to the relevant user. From there, you can change the user's role or remove the user from your company account.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FcCBteLPlwRHgaTI2FDhX%2Fimage.png?alt=media&amp;token=045f0a2c-858c-49d4-9a7c-4759d12c184e" alt=""><figcaption></figcaption></figure>

***

### Roles & Permissions

#### **Administrator**

* Has full access to all features.
* Can create, run, and manage tests.
* Can manage company users and their roles.
* Can manage subscription settings.

#### **User**

* Can create, run, and manage tests.
* Can access test sessions and reports.
* Cannot manage company users.
* Cannot manage subscription settings.

#### **Viewer**

* Has read-only access.
* Can view tests, sessions, reports, and the Wiki.
* Cannot create, edit, or run tests.
* Restricted pages display an **Access Denied** message.


# Subscription old

Details of the subscription system in Loadium

Subscription system allows [Loadium](https://loadium.com/) users to get continuous flow of benefits from its services, without interruption, and suit better to users' tight schedule for performance testing.

Since performance testing can be considered to have a seasonal fluctuation, [Loadium](https://loadium.com/pricing) has very flexible subscription management to address to this situation.

## **Subscription Types**

Loadium provides **2 types of subscription plan** which are identified as **Test Counts** or **Custom/Virtual User Hour (VUH)**.

**Test Count** type plans have Annual and Monthly subscriptions available. Test usages are identified as test counts, meaning that each test run will use 1 test count. Engine count is limited in these plans.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F0JAoLI2ghjJo1mEBViyB%2Fimage.png?alt=media&amp;token=47542c1f-832f-4ea7-9ed7-eb01182f8e4b" alt=""><figcaption><p>Example of Test Count Plan</p></figcaption></figure>

**Custom (VUH)** plan is more flexible option and available as Monthly subscription. Test usages are identified as VUH units, meaning that each test capacity will be using corresponding amount of VUH. Engine count is extensive and broad in these plans, you can contact to support to let us meet your needs.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FW631nvyc38E5r9YjcbHH%2Fimage.png?alt=media&amp;token=e124a397-3508-4207-ae25-6f4f19649827" alt=""><figcaption><p>Example of Virtual User Hour (VUH) Plan</p></figcaption></figure>

In Monthly and Annual Subscription Plans, payment is completed at the start of the period, and the plan can be used it until the end of period. After your period ends, your subscription is renewed automatically until cancelled (remaining test usages are not transferred to next cycle).

## Re-Charging / Changing Plan

If your current plan is out of test usages you can re-purchase your plan to re-charge your test usages, or if your current plan doesn't meet your need anymore you change it by purchasing a different plan

When you complete a new payment for a plan, your billing cycle will be updated, starting from the new purchase date. Test usages from previous plan will not be transferred to the new plan

## Unsuccessful Renewal Payment

If the payment is unsuccessful to renew your subscription, it will be re-tried for 3 more times within 3 days. After a successful payment, your package contents will be refreshed automatically. You can also add a new card to make the transaction.

After 3 days unsuccessful payment, your subscription will be cancelled, and price discounts and other advantages from coupons and similar services will be discontinued.

After this cancellation, your account will be automatically downgraded to the free plan. You can check all plan details [here.](https://loadium.com/pricing)

## Managing Credit Cards

During your first package purchase, credit-card you enter will be saved to your Loadium account, and will be set to "default card" automatically for further transactions. Cards that are tagged as "default" cannot be removed from the account.

You can add new cards to your account and change your default card. If you have any questions, you can [contact our support team](https://loadium.com/contact-us).


# Subscription

Details of the subscription system in Loadium

Upon logging in to Loadium, you can access the **Subscription** page by selecting the **Current Plan** card on the **Dashboard**. This page provides detailed information about your current subscription plan and related account options.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F3jAeJAMRYGmR7xo4Peiw%2Fimage.png?alt=media&amp;token=93733c35-b951-4142-9e0e-36b15120eb8f" alt=""><figcaption></figcaption></figure>

Subscription system allows [Loadium](https://loadium.com/) users to get continuous flow of benefits from its services, without interruption, and suit better to users' tight schedule for performance testing.

Since performance testing can be considered to have a seasonal fluctuation, [Loadium](https://loadium.com/pricing) has very flexible subscription management to address to this situation.

## **Subscription Types**

Loadium provides **2 types of subscription plan** which are identified as **Test Counts** or **Custom/Virtual User Hour (VUH)**.

**Test Count** type plans have Annual and Monthly subscriptions available. Test usages are identified as test counts, meaning that each test run will use 1 test count. Engine count is limited in these plans.

**Custom (VUH)** plan is more flexible option and available as Monthly subscription. Test usages are identified as VUH units, meaning that each test capacity will be using corresponding amount of VUH. Engine count is extensive and broad in these plans, you can contact to support to let us meet your needs.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F6SZ9neH2cNQlUBatDbvt%2Fimage.png?alt=media&amp;token=6623e3b1-5f99-44bc-8f39-dc9fccf2855c" alt=""><figcaption></figcaption></figure>

In Monthly and Annual Subscription Plans, payment is completed at the start of the period, and the plan can be used it until the end of period. After your period ends, your subscription is renewed automatically until cancelled (remaining test usages are not transferred to next cycle).

## Re-Charging / Changing Plan

If your current plan is out of test usages you can re-purchase your plan to re-charge your test usages, or if your current plan doesn't meet your need anymore you change it by purchasing a different plan

When you complete a new payment for a plan, your billing cycle will be updated, starting from the new purchase date. Test usages from previous plan will not be transferred to the new plan

## Unsuccessful Renewal Payment

If the payment is unsuccessful to renew your subscription, it will be re-tried for 3 more times within 3 days. After a successful payment, your package contents will be refreshed automatically. You can also add a new card to make the transaction.

After 3 days unsuccessful payment, your subscription will be cancelled, and price discounts and other advantages from coupons and similar services will be discontinued.

After this cancellation, your account will be automatically downgraded to the free plan. You can check all plan details [here.](https://loadium.com/pricing)

## Managing Credit Cards

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FNbGB5lP6Q2rngHjJq3el%2Fimage.png?alt=media&amp;token=37c5afbe-dd81-44f6-bbc4-df9cde146db0" alt=""><figcaption></figcaption></figure>

During your first package purchase, credit-card you enter will be saved to your Loadium account, and will be set to "default card" automatically for further transactions. Cards that are tagged as "default" cannot be removed from the account.

You can add new cards to your account and change your default card. If you have any questions, you can [contact our support team](https://loadium.com/contact-us).


# Audit Logs

## Overview

The Audit Log records and displays a chronological sequence of authentication-related actions taken by users. It serves as a reliable source of truth for:

* Monitoring account activity
* Troubleshooting suspicious behavior
* Supporting compliance audits
* Enhancing user accountability

You can access the Audit Log from the **Account > Audit Logs** section.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FvHMhmjrkPbAn88Vw4w0J%2Fimage.png?alt=media&amp;token=72f07c97-4ba2-4fb6-aa88-3ace57cb5aa1" alt=""><figcaption></figcaption></figure>

Each log entry includes:

* **Email address**
* **Action**
* **Category**
* **IP address**
* **Date**
* **Time** (timezone depends on your account settings)

***

## Logged Actions

All authentication-related actions currently captured in Loadium’s Audit Log are listed below:

| `user register`                   | A new user account was created                                          |
| --------------------------------- | ----------------------------------------------------------------------- |
| `user activation`                 | The user's account was activated                                        |
| `user email activation`           | The user re-sent the activation email                                   |
| `user change-password`            | The user changed their account password                                 |
| `user forgot-password`            | A password reset request was initiated by the user                      |
| `user-update`                     | The user updated their account details (e.g., name, email, preferences) |
| `login`                           | The user successfully logged into the platform                          |
| `logout`                          | The user logged out from the platform                                   |
| `sub-users invitation create`     | An admin created a new sub-user invitation                              |
| `resend Invited User Mail`        | A sub-user invitation email was re-sent                                 |
| `delete Invited User`             | A pending invited sub-user was deleted before activation                |
| `sub-users invitation activation` | A sub-user accepted their invitation and activated their account        |
| `sub-user register`               | A new sub-user account was registered                                   |
| `sub-user update`                 | A sub-user's details or permissions were updated                        |
| `sub-user-delete`                 | A sub-user account was deleted                                          |
| `google login`                    | The user logged in using Google authentication                          |
| `microsoft login`                 | The user logged in using Microsoft authentication                       |
| `sub-user microsoft login`        | A sub-user logged in using Microsoft authentication                     |
| `amazon register`                 | Amazon login integration was initiated                                  |
| `amazon activation`               | Amazon login integration was successfully completed                     |
| `amazon user info`                | User details were retrieved from Amazon during authentication           |
| `company delete`                  | A company account was deleted from the platform                         |

***

### **Use Cases**

* **Security Review:** Quickly identify failed login attempts or access from unusual IPs.
* **Compliance Audits:** Demonstrate access control measures to meet regulatory requirements (e.g., ISO 27001).
* **Incident Response:** Trace suspicious user behavior to determine potential compromise or misuse.

***

### **Retention Policy**

Audit logs are stored securely and retained for **90 days**. Extended retention options may be available for enterprise customers.

***

### **Export & Filtering**

* **Filter Options:** By date range
* **Export:** Audit logs can be exported as CSV for internal reporting or compliance use


# Test Report

{% embed url="<https://www.youtube.com/watch?v=2NvBEfClZvY>" %}

A test report in Loadium provides a comprehensive view of your test execution, combining detailed performance metrics, visual graphs, and analytical insights to help you evaluate system behavior under load.

When you open a test report in Loadium, you are presented with a set of dedicated tabs that help you analyze the test from different perspectives. **Overview, Request Stats, Timeline Graph, Responses, Errors, Scatter Plot, AI Analysis, Load Engines & Logs** work together to provide both high-level insights and detailed, step-by-step breakdowns of your test results.

{% tabs %}
{% tab title="Overview" %}
The **Overview** tab provides a high-level summary of the test execution, highlighting key performance metrics such as response time, throughput, error rate, and user load to help you quickly assess overall system performance.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FglhbfStQn3ppAVyW8wpz%2Fimage.png?alt=media&amp;token=92ce65d1-450d-4211-a21d-32b936310446" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Request Stats" %}
**Request Stats** tab provides a detailed, endpoint-level breakdown of test performance, allowing you to analyze metrics such as response time, throughput, and error rate for each request individually, along with visual insights like response type distribution and performance trends.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F06xfGK9eUWSdDf4GQkfm%2Fimage.png?alt=media&amp;token=881700b4-4fdf-4bf3-ba69-13c305965508" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Timeline Graph" %}
The Timeline Graph tab allows you to create custom visualizations by selecting specific endpoints and performance metrics, enabling you to track and compare how chosen metrics behave over time.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FT7D0v0VcwWVkhQpsw2h9%2Fimage.png?alt=media&amp;token=0e0b9841-1049-431a-aca3-2b0e28e95833" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Responses" %}
The Responses tab provides a visual representation of response data collected throughout the test, showing the distribution of HTTP status codes and request labels through charts to help identify patterns and anomalies.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F7WflsTUJzo8raJyhsyTl%2Fimage.png?alt=media&amp;token=660bc31f-f9c4-4a0d-9bf7-d20597111d87" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Errors" %}
The Errors tab provides a detailed view of all errors encountered during the test, showing their distribution over time and across response codes, with the ability to filter and analyze errors on a per-label basis.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F3PXzuosC4bincuSxD6Ds%2Fimage.png?alt=media&amp;token=9dfe01e8-6482-4fcc-a3f7-1d9eb425ce0a" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Scatter Plot" %}
The Scatter Plot tab visualizes the response times of a selected endpoint as individual data points, allowing you to analyze the distribution and variability of responses in detail.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F4ZYlRiKdPOuqvKOAvD7D%2Fimage.png?alt=media&amp;token=0eed25d7-156d-4706-ac48-671fd24f9b72" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="AI Analysis" %}
The AI Analysis tab provides an AI-generated performance summary by analyzing test data, identifying patterns and anomalies, and presenting actionable insights; this feature is currently in beta and may evolve over time.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FwDebrmgoVCCCkiHYatyw%2Fimage.png?alt=media&amp;token=3071643e-8791-4741-bdf2-03cd6e0bb9a2" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Load Engines & Logs" %}
The Load Engines & Logs tab displays resource usage of the load generators during the test, including metrics such as CPU, memory, and network utilization, and also allows you to monitor engine logs in real time.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FdOU2ON5czdN6UWVJ2o0K%2Fimage.png?alt=media&amp;token=de31d7ac-ad4c-4151-8643-2306d49b073c" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

### 1. Analytics

#### 1.1 Overview

The **Overview** page provides a comprehensive summary of the test execution, allowing you to quickly evaluate overall system performance before moving into detailed analysis.

It combines **key metrics, aggregated statistics, and visual graphs** to give a complete picture of how the system behaved under load.

At the top of the page, you can find the test configuration:

* **Start / End Time** → Defines the test window
* **Duration** → Total runtime of the test
* **Ramp Up** → Time to reach target load
* **Engines & Users per Engine** → Defines total load generation
* **Location** → Region where traffic originated
* **Iteration** → Loop behavior of the test

This section is critical to correctly interpret results, as performance is directly affected by these parameters.

***

#### Key Metrics (KPI Cards)

The KPI cards provide a quick performance snapshot:

* **Max Users Reached**\
  → Indicates whether the target load was successfully applied
* **Avg Response Time**\
  → General performance indicator (but should not be used alone)
* **Avg Throughput (RPS)**\
  → System processing capacity
* **Error Rate**\
  → Overall system reliability
* **95th Percentile**\
  → Real user experience indicator (more critical than average)

{% hint style="warning" %}
Focus on **percentiles and error rate**, not just averages.
{% endhint %}

***

#### Test Summary

This section aggregates key statistics into four groups:

{% tabs fullWidth="false" %}
{% tab title="Response Time" %}

* Average
* 95th percentile
* 99th percentile

Shows **latency distribution and consistency.**
{% endtab %}

{% tab title="Throughput" %}

* Average
* Peak
* Lowest

Helps detect:

* system limits
* instability under load
  {% endtab %}

{% tab title="Stats" %}

* Total requests
* Success / Failed counts

Used to validate:

* overall success ratio
* reliability of the system
  {% endtab %}

{% tab title="Data Transfer" %}

* Total transferred data
* Bandwidth
* Request size

Useful for:

* network impact analysis
* payload-related bottlenecks
  {% endtab %}
  {% endtabs %}

#### Response Time Distribution

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FsB4UcD6rhXA70b8unOdg%2Fimage.png?alt=media&amp;token=a9989bbd-c803-4264-9d42-be160457dbad" alt="" width="563"><figcaption></figcaption></figure>

This graph shows how response-related metrics behave over time.

Use this to:

* detect spikes
* identify unstable response patterns
* correlate load vs performance

#### Throughput Over Time

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FyPOtuFQOlcZcyGM8xF1Q%2Fimage.png?alt=media&amp;token=7aeb85db-b94c-4e25-985d-6a3451cc425a" alt="" width="563"><figcaption></figcaption></figure>

Helps you:

* identify performance drops
* detect saturation points
* correlate errors with load

#### Error Distribution

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F4XNoJRnpRHp6I4MUBa6Q%2Fimage.png?alt=media&amp;token=f732d3ee-9ffb-415f-8c06-3739829198aa" alt="" width="563"><figcaption></figcaption></figure>

Critical for:

* spotting instability
* identifying when the system starts failing

#### Response Time Scatter

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FdqtnoxgWmucesSlakOvr%2Fimage.png?alt=media&amp;token=27b04167-93a1-45e6-b9d7-c21c7ddc83ed" alt="" width="563"><figcaption></figcaption></figure>

Displays each request as a data point:

Useful for:

* detecting outliers
* understanding response variability
* identifying inconsistent performance

{% hint style="info" %}

#### How to Analyze Overview

Start your analysis by answering:

* Did the system reach the target user load?
* Are response times stable?
* Is error rate acceptable?
* Does throughput remain consistent?

1. Start with **Overview**
2. If issues exist:
   * Go to **Request Stats** → find problematic endpoints
   * Check **Errors** → identify root cause
   * Use **Scatter Plot** → analyze variability
     {% endhint %}

#### 1.2 Request Stats

The **Request Stats** tab provides a detailed, endpoint-level breakdown of test performance, allowing you to analyze how each request behaves under load.

It is the primary page used to identify **slow endpoints, high error rates, and performance bottlenecks**.

At the top of the page, you can see aggregated metrics:

* **Total Requests** → Total number of requests sent
* **Avg. Response Time** → Overall average elapsed time
* **Avg. Throughput (RPS)** → Requests per second
* **Success / Failed** → Request outcome distribution

These give a quick overview before diving into endpoint-level analysis.

***

#### Performance Analysis by Label

The main table displays performance metrics for each endpoint (label):

* **Total Hits** → Number of requests sent
* **Error Hits** → Failed requests
* **Error Rate (%)** → Failure ratio
* **Avg Throughput (RPS)** → Endpoint load handling
* **Avg Response Time** → Average elapsed time
* **Median / Percentiles** → Response consistency

Use this table to:

* identify slow endpoints
* detect endpoints with high error rates
* compare performance across requests

***

#### Filtering & Interaction

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FAhiRl0mNfvCsQDK4FhMP%2Fimage.png?alt=media&amp;token=20b77d94-dbab-40af-9da8-f5346df162af" alt=""><figcaption></figcaption></figure>

You can filter the table using:

* **All** → Shows all requests
* **Success** → Only successful requests
* **Errors** → Only failed requests

This helps isolate problematic requests quickly.

Using the timeline selector (top right), you can:

* focus on a specific time window
* analyze performance during spikes or failures

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FvbFiAFa3Hq1YbTkD4K5k%2Fimage.png?alt=media&amp;token=2afa39ba-4ce6-42c6-a31d-0648d3c8f54a" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
All filters (status + time range) are applied in real time.

The table automatically updates to reflect:

* selected request status
* selected time interval

This allows precise and targeted analysis.
{% endhint %}

***

#### Key Insights

This section highlights automatically detected issues such as:

* High error rates
* Slow endpoints
* Performance anomalies

Helps you quickly identify critical problems without manual analysis.

#### Response Type Distribution

This chart shows how requests are distributed across response time ranges; fast responses (e.g. <200ms), slow responses, very slow responses.

Useful for:

* understanding overall system speed
* identifying latency distribution

***

{% hint style="info" %}

#### How to Analyze This Page

Start by:

1. Checking **error rate per endpoint**
2. Identifying **slowest endpoints (avg & P95)**
3. Filtering by **Errors** to isolate failures
4. Using **time filter** to zoom into problematic moments

**Best Practice**

* Do not rely only on **average response time**
* Always check:
  * **P95 / P99**
  * **error rate**
  * **throughput consistency**
    {% endhint %}

{% hint style="success" %}

#### Typical Use Case

* Go to **Request Stats**
* Filter → **Errors**
* Identify failing endpoint
* Narrow down with **time filter**
* Investigate further in **Errors / Logs**
  {% endhint %}

#### 1.3 Timeline Graph

The **Timeline Graph** tab allows users to create custom time-based charts by selecting endpoints, metric categories, and aggregation types.

Users can first choose an endpoint from the **Endpoints** list, then select a metric category such as **Hits, Errors, Response Time, Percentile, Latency, Concurrent User,** or **Received Mbps**. After selecting the required aggregation type, the series can be added to the chart using **Add to Chart**.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FY6kqjZbam1r2Lf1fCwc3%2Fimage.png?alt=media&amp;token=e525073d-85a0-4576-8e16-66603b08addd" alt=""><figcaption></figcaption></figure>

A maximum of **5 active series** can be added to the chart. This allows users to compare multiple endpoints and metrics on the same timeline.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FhF4XiSErUPsHUg4cvTpF%2Fimage.png?alt=media&amp;token=d49549b7-3dfb-43d8-ada6-6274ccb47045" alt=""><figcaption></figcaption></figure>

This page is useful for analyzing performance trends, comparing endpoint behavior, and identifying changes such as response time spikes, error increases, or throughput drops during the test.

{% hint style="info" %}

### How to Analyze This Page

To effectively analyze the Timeline Graph:

* Start by selecting a **single endpoint and one metric** (e.g., Response Time) to understand baseline behavior
* Gradually add more **endpoints or metrics** to compare performance
* Observe how metrics change over time and look for:
  * **spikes** in response time
  * **sudden increases in errors**
  * **drops in throughput**
* Use combinations such as:
  * Response Time + Errors → to detect failure impact
  * Throughput + Response Time → to identify saturation points
  * Concurrent Users + Response Time → to understand load impact

The goal is to identify **patterns, correlations, and anomalies** rather than focusing on a single metric.
{% endhint %}

{% hint style="success" %}

### **Typical Use Case**

A common workflow when using the Timeline Graph:

1. A performance issue is detected in the **Overview** page
2. Navigate to **Timeline Graph**
3. Select the affected **endpoint**
4. Add **Response Time** and **Errors** as metrics
5. Observe when the issue occurs during the test
6. Add additional endpoints or metrics to compare behavior

This helps determine:

* whether the issue is **endpoint-specific or system-wide**
* if performance degradation is **load-related or intermittent**
  {% endhint %}

#### 1.4 Responses

The **Responses** tab provides a visual overview of all responses received during the test, allowing you to analyze how requests are distributed across HTTP status codes and endpoints.

It is mainly used to understand **response behavior, success rates, and error distribution patterns**.

At the top of the page, you can find:

* **Total Responses** → Total number of responses received
* **Success (2XX & 3XX)** → Successful request ratio
* **Client Errors (4XX)** → Client-side issues
* **Server Errors (5XX)** → Server-side failures

This gives a quick understanding of **system health and reliability**.

***

#### Response Code Distribution

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fht0JLQIHMjuo2BnWfEwa%2Fimage.png?alt=media&amp;token=77e1b68a-4cf6-46dc-9246-72a2f5ef094f" alt=""><figcaption></figcaption></figure>

This chart shows how responses are distributed across HTTP status codes:

* 2XX → Successful responses
* 4XX → Client errors
* 5XX → Server errors

Use this to:

* quickly identify error-heavy scenarios
* understand overall response quality

#### Distribution by Label

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F99urdVTmglTHqTaIW4nC%2Fimage.png?alt=media&amp;token=bac82010-14bc-4b9e-a07c-cfc359d90e04" alt="" width="375"><figcaption></figcaption></figure>

This visualization shows how responses are distributed across endpoints:

Helps you:

* identify which endpoints receive most traffic
* detect endpoints contributing to errors

#### Responses by Label

This section provides a detailed breakdown of responses grouped by endpoint (label).

Users can apply filters based on:

* **Status Codes** (e.g., 200, 404, 500)
* **Labels (endpoints)**

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F62m5WXWv9enu4OAQ9H3z%2Fimage.png?alt=media&amp;token=0783fdec-efe8-4576-af64-1f0db71d6b61" alt=""><figcaption></figcaption></figure>

The table dynamically updates based on selected filters.

***

{% hint style="info" %}

## How to Analyze This Page

* Start by checking the **success vs error ratio**
* Look at the **Response Code Distribution** to detect dominant error types
* Use **filters** to:
  * isolate specific status codes (e.g., only 5XX)
  * focus on a specific endpoint

Focus on identifying:

* unexpected error codes
* endpoints with abnormal response behavior
  {% endhint %}

{% hint style="success" %}

## Typical Use Case

A common workflow:

1. High error rate is detected in **Overview**
2. Navigate to **Responses**
3. Check **Response Code Distribution** to identify error types
4. Filter by **status code (e.g., 500)**
5. Identify which endpoints are returning these errors

This helps determine:

* whether errors are **client-side or server-side**
  {% endhint %}

#### 1.5 Errors

The **Errors** tab provides detailed information about the errors encountered during the test, helping users understand when, where, and how failures occurred.

This page is mainly used for **failure analysis and troubleshooting**.

At the top of the page, users can see a quick summary of error behavior:

* **Total Errors** → Total number of failed requests
* **Avg Error Rate** → Average error percentage across the test
* **Peak Error Rate** → Highest observed error rate
* **Error Types** → Number of different error categories detected

***

#### Error Rate Over Time

This chart shows how the error rate changes during the test execution.

It helps users identify:

* when errors started
* whether errors increased under load
* whether failures happened continuously or only during specific periods

#### Error Types Breakdown

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FO0mu17e6h81IEmMXLQix%2Fimage.png?alt=media&amp;token=ac71b680-bd24-40ec-a70c-5591d6f0d8da" alt="" width="563"><figcaption></figcaption></figure>

The **Error Types Breakdown** chart groups errors by response code or error type, such as:

* 4XX errors
* 5XX errors
* timeout errors
* connection refused errors

This helps users understand the main failure categories in the test.

#### Errors by Label

The **Errors by Label** section shows which endpoints produced errors during the test.

Users can expand each label to view more detailed error information, including the **timestamp** of the error. This makes it easier to identify exactly when failures occurred for each service or request.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fw57w6vt8FyIGefWpojW8%2Fimage.png?alt=media&amp;token=97ff4842-6bce-4ebc-85d7-83a45cb8a658" alt=""><figcaption></figcaption></figure>

***

{% hint style="info" %}

#### How to Analyze This Page

Start by checking the total error count and peak error rate. Then review the **Error Rate Over Time** chart to see whether the issue happened during a specific period.

After that, use **Error Types Breakdown** to understand the main error categories, and check **Errors by Label** to identify which endpoint or service caused the failures.
{% endhint %}

{% hint style="success" %}

### Typical Use Case

A common workflow:

1. A high error rate is detected in **Overview**
2. Open the **Errors** tab
3. Check when the errors occurred in **Error Rate Over Time**
4. Identify the dominant error type in **Error Types Breakdown**
5. Use **Errors by Label** to find the affected endpoint
6. Expand the label to review timestamp-level error details

This helps determine whether the issue is related to a specific endpoint, a specific time period, or a general system failure.
{% endhint %}

### 2. Advanced

#### 2.1 Scatter Plot

The **Scatter Plot** tab visualizes individual requests for a selected endpoint as data points, allowing you to analyze response time distribution, variability, and performance consistency in detail.

It is mainly used to detect **outliers, instability, and response time patterns**.

At the top of the page:

* **Total Requests** → Number of requests analyzed
* **Avg Response Time** → Weighted average elapsed time
* **Correlation Score** → Relationship between load and response time
* **Total Outliers** → Requests outside normal range
* **Total Errors** → Failed requests

These provide a quick summary of distribution quality.

***

#### Response Time Scatter

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F9mngTU7RbiNQOxqiTwS2%2Fimage.png?alt=media&amp;token=eb589008-37e3-4e98-8652-12907ca78db5" alt=""><figcaption></figcaption></figure>

This chart displays:

* Each request as a **single data point**
* **Time on X-axis**
* **Response time on Y-axis**
* Color-coded:
  * Success
  * Error

This allows you to see:

* response time spread
* clusters of slow/fast responses
* anomalies and spikes

{% hint style="info" %}
By analyzing the scatter:

* Tight clustering → **stable performance**
* Wide spread → **inconsistent response times**
* Isolated high points → **outliers**

Helps understand how predictable your system is under load.
{% endhint %}

***

#### Label Correlation Analysis

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FJCuRdoYTU8EBLfknIevD%2Fimage.png?alt=media&amp;token=d275d781-4596-437e-8096-f4aebdbb2aa5" alt=""><figcaption></figcaption></figure>

This table provides statistical insights per endpoint:

* **Avg Response Time**
* **P95 / P99**
* **Correlation Score**
* **Outliers**
* **Errors**

Use this to:

* compare endpoints
* detect performance degradation patterns
* identify problematic services

#### Performance Insights

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FLfgld5yBOLEWYh9yVMmd%2Fimage.png?alt=media&amp;token=a8df961b-fe39-419b-a22c-aff32859be48" alt=""><figcaption></figcaption></figure>

The page highlights:

* **Performance Strengths** → stable and fast endpoints
* **Areas for Attention** → slow or error-prone endpoints

👉 These summaries help prioritize optimization efforts.

***

{% hint style="info" %}

### How to Analyze This Page

* Select an endpoint and observe the scatter distribution
* Look for:
  * **outliers (extreme points)**
  * **wide distribution (instability)**
  * **clusters shifting over time**
* Check correlation:
  * high correlation → performance affected by load
  * low correlation → other bottlenecks (DB, network, etc.)

👉 Focus on consistency, not just average values.
{% endhint %}

{% hint style="success" %}

### Typical Use Case

A common workflow:

1. A slow endpoint is identified in **Request Stats**
2. Open **Scatter Plot**
3. Select the endpoint
4. Analyze distribution:
   * Are responses consistent?
   * Are there spikes?
5. Check **P95 / P99 and outliers**
6. Use correlation to understand if issue is load-related

This helps determine:

* whether performance issues are **systematic or random**
* if the endpoint is **stable or unpredictable**
  {% endhint %}

### 3. Tools

#### 3.1 AI Analysis

The **AI Performance Analysis** page provides an automated, AI-driven interpretation of your load test results, transforming raw performance data into **actionable insights, root cause analysis, and optimization recommendations**.

{% hint style="warning" %}
This feature is currently in beta and available as a premium capability.
{% endhint %}

The system analyzes your test data using multiple machine learning models, including:

* **Anomaly Detection** → identifies abnormal behavior
* **Pattern Recognition** → detects recurring trends
* **Root Cause Analysis** → suggests possible reasons for issues
* **Predictive Modeling** → estimates system behavior under load

Instead of manually analyzing charts, users get a **ready-to-use performance report**.

At the top of the page:

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F5WcZwlunOSi081Io47bS%2Fimage.png?alt=media&amp;token=6569315f-c7ba-4525-bc7d-7b8d4d2ed350" alt=""><figcaption></figcaption></figure>

* **AI Performance Score** → overall system health score
* **Anomalies Detected** → number and severity of issues
* **Patterns Identified** → detected behavioral trends
* **Confidence Level** → reliability of AI predictions

These provide a quick executive-level summary.

#### Executive Summary

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fnu8l9H9A860RedOGSKwG%2Fimage.png?alt=media&amp;token=3c52fe4e-3c1a-494c-9d54-3f2833aa2d58" alt=""><figcaption></figcaption></figure>

This section delivers a **high-level interpretation** of the test:

* overall system stability
* performance limits
* detected bottlenecks
* critical events during the test

Ideal for sharing results with stakeholders or management.

#### Strengths, Issues & Opportunities

The AI groups findings into:

<table data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-cover data-type="image">Cover image</th></tr></thead><tbody><tr><td><h2>Strenghts</h2></td><td><ul><li>stable baseline performance</li><li>consistent response times</li><li>predictable scaling behavior</li></ul></td><td><a href="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FNlojpUfa9bXSa70r8jva%2FScreenshot%20at%20Apr%2028%2009-09-33.png?alt=media&amp;token=e0bde801-e2f4-4ec1-8541-a4ebaeb08cff">Screenshot at Apr 28 09-09-33.png</a></td></tr><tr><td><h2>Critical Issues</h2></td><td><ul><li>performance spikes</li><li>resource saturation (CPU, memory, DB, etc.)</li><li>error rate increases</li></ul></td><td><a href="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FpyG8Y32QCNfVsV4JBOmH%2FScreenshot%20at%20Apr%2028%2009-10-47.png?alt=media&amp;token=0170e422-df43-4d56-9379-0b0203ecf8a8">Screenshot at Apr 28 09-10-47.png</a></td></tr><tr><td><h2>Opportunities</h2></td><td><ul><li>optimization suggestions</li><li>scaling improvements</li><li>architecture enhancements</li></ul></td><td><a href="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FnhlRv7GcLn6wjMSS0HbO%2FScreenshot%20at%20Apr%2028%2009-11-39.png?alt=media&amp;token=1507f3a0-56da-4b1a-868b-05a26f2d1bcd">Screenshot at Apr 28 09-11-39.png</a></td></tr></tbody></table>

#### Performance Timeline

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FQi8Eo78h6CcRB5w7FBZi%2Fimage.png?alt=media&amp;token=9c943a5c-1b3c-464c-8a43-1cec47832941" alt=""><figcaption></figcaption></figure>

Breaks down the test into phases:

* steady state
* degradation periods
* recovery phases

Helps understand when issues occurred, not just what happened.

#### Anomaly Detection Timeline

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FaHwvuQuvcdMMVR33DLyT%2Fimage.png?alt=media&amp;token=051f2feb-fbe1-4f35-aea9-5e190073cda0" alt=""><figcaption></figcaption></figure>

The system automatically detects and lists anomalies such as:

* response time spikes
* sudden error increases
* throughput drops

Each anomaly includes:

* severity level
* affected requests
* confidence score
* detailed drill-down links

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FSXvH10mYukPnaKXeHW5j%2Fimage.png?alt=media&amp;token=48c324ee-c660-4b7d-9826-b4f5de4b30d2" alt=""><figcaption></figcaption></figure>

This enables fast troubleshooting.

#### Identified Performance Patterns

AI detects recurring behaviors like:

* steady state performance
* performance spikes
* recovery patterns
* gradual degradation
* load-based slowdowns

Useful for understanding long-term system behavior.

#### AI-Powered Recommendations

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FONOVVYegE4tENeBMKMi8%2Fimage.png?alt=media&amp;token=54478baa-5844-42f4-9b08-f2a5d884e373" alt=""><figcaption></figcaption></figure>

Provides prioritized improvement suggestions:

* database optimization
* connection pool scaling
* caching strategies
* auto-scaling configuration
* resilience patterns (e.g., circuit breaker)

Each recommendation includes:

* expected impact
* implementation effort
* technical guidance

Helps teams move from analysis → action quickly

***

{% hint style="info" %}

### How to Analyze This Page

* Start with **AI Score and Summary**
* Review **critical issues first**
* Check anomalies and their timestamps
* Analyze detected patterns
* Focus on high-impact recommendations

Treat this page as a **decision-making tool**, not just a report.
{% endhint %}

{% hint style="success" %}

### Typical Use Case

A common workflow:

1. Run a load test
2. Open AI Analysis
3. Review Executive Summary
4. Identify critical anomalies
5. Check root cause suggestions
6. Apply recommended optimizations

This reduces analysis time significantly and helps teams act faster.
{% endhint %}

#### 3.2 Load Engines & Logs

The **Load Engines & Logs** page provides visibility into the infrastructure running your load test, including resource usage and engine-level logs.

**What You Can See**

* Active load generators (engines)
* CPU and memory usage
* Network traffic (send/receive)
* Region and provider details (AWS, Azure, GCP, Oracle)

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FbkudoxnvYWXEGSE3Docr%2Fimage.png?alt=media&amp;token=3ec4cfe0-a176-4c32-88ba-2eef67e70882" alt=""><figcaption></figcaption></figure>

Helps you understand how the test environment behaves during execution.

#### Logs & Monitoring

Users can also:

* Track engine logs in real-time
* Monitor test execution behavior at infrastructure level
* Identify issues related to load generators (not just the system under test)

{% hint style="info" %}

### How to Analyze This Page

* Check if engines are **overloaded (CPU / Memory spikes)**
* Verify network usage consistency
* Review logs for unexpected errors during test execution

Useful for distinguishing **test-side issues vs system-side issues**
{% endhint %}

{% hint style="success" %}

### Typical Use Case

* Test results look unstable → check engine resource usage
* Unexpected failures → inspect engine logs
* Multi-region tests → compare generator performance across regions
  {% endhint %}


# AI Analysis

**Loadium AI Alanysis** is an intelligent performance insight tool that allows you to utilize AI to analyze your test results and uncover meaningful insights without manual effort.

***

## What Does It Do?

Loadium AI Analysis helps you:

* Understand your test results faster by summarizing complex data.
* Identify anomalies, slow transactions, and potential bottlenecks.
* Ask natural language questions to get AI-generated insights on specific issues.
* Navigate through your load test data with the help of Recommended or Custom questions.

***

## How It Works

Once your load test is complete, the AI Analysis tab will be visible on your test report screen.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FMCDjhKXnnDOAMjSjBWIC%2Fimage.png?alt=media&amp;token=3e98b46e-1e15-4329-9176-0a8df443f114" alt=""><figcaption></figcaption></figure>

In this section, you can interact with the AI by asking questions to get deeper insights into your test results.

You can either:

* Use **Quick Questions** provided by Loadium for reliable analysis.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F3V2H2DIghtS7lTR4TuSB%2Fimage.png?alt=media&amp;token=85e87914-bdf3-45a6-b291-faed0fe098ba" alt=""><figcaption></figcaption></figure>

* Ask your own **Custom Questions** to explore specific areas of interest.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FEjyBiOOjg9ZxM0OQ1P7F%2Fimage.png?alt=media&amp;token=7818f361-14e2-447a-9f14-1c509e49d453" alt=""><figcaption></figcaption></figure>

You can copy the results for later use or download them with a single click.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FfMCfEed5y09ztk6TVz6y%2Fimage.png?alt=media&amp;token=01002a69-4b5f-4a2c-a88d-937cc24706c4" alt=""><figcaption></figcaption></figure>

***

## Alternative Usage

Another way to use it is by accessing it directly from the graph. On your report screen, simply select a time range where you notice an anomaly on any chart, and the AI Assistant will help you analyze the selected period using a ready-made prompt.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FZJn9kXOyQALUZ7px5OUy%2Fimage.png?alt=media&amp;token=bedab977-1efd-4965-a43d-c43ed510720c" alt=""><figcaption></figcaption></figure>

***

## Benefits

* **Easy to Understand:** Get simplified summaries and explanations without digging into every graph.
* **Saves Time:** No need to manually review every metric or chart.
* **Deep Diving:** Allows users to catch critical information that could be overlooked during manual review.

***

## Tips for Best Results

* Use **Quick Questions** for the most accurate and optimized insights.
* Avoid including sensitive or private information in your custom questions.
* Combine AI insights with manual review for a comprehensive understanding.


# Compare Test

A guide for using Loadium's test comparing feature.

Running performance tests and analyzing the results is important, but another crucial factor is comparing results between different reports and understanding if there is an improvement from previous runs.

You can access to comparing test page from the top banner. At first you will notice that it is disabled, because there is no tests selected to compare.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FXyITQTE3COPvZPkckMqN%2Fimage.png?alt=media&amp;token=a857140b-d75e-4cbd-afac-609c5b21b085" alt=""><figcaption></figcaption></figure>

## Selecting Tests to Compare

When you enter to one of your tests, you will see the previously run test sessions. Then you can see the Add to Compare button next to each session, and clicking on it will add it to comparing page. After you click on the button, you will notice that Compare Test page has a number showing, and the page is enabled for clicking.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FE3l8Zt6zHpq4fukDXIPI%2Fimage.png?alt=media&amp;token=d84d7f49-8624-4f21-a4e3-81e999fa4f57" alt=""><figcaption></figcaption></figure>

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fh7kLuXgMit9jPghlb9DL%2Fimage.png?alt=media&amp;token=48bb554c-6500-411a-85c1-7303665f8eae" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
You can compare **5 tests at the same time**, and if you want to change tests, you need to remove previously selected and then add the new one.
{% endhint %}

## Comparing the Tests

On the first sight of the page, you will be at the **Overview** tab, and you will also notice the **Request List** of the selected tests on the left side.

There are 3 ways to compare metrics of the tests:

* **Overview**
  * Overall data comparison of metrics
* **Stats**
  * Numerical data comparison of requests
* **Graphs**
  * Graphical data comparison of requests

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F82CZbwobiCEGb1FWet2S%2Fimage.png?alt=media&amp;token=ce6c0b20-9e4b-40ae-9382-c1c3299317e8" alt=""><figcaption></figcaption></figure>

### Request List

All of the requests that has data metrics from the test will be listed here. You can use checkboxes to view its data to be shown in **STATS** and **GRAPHS** pages.,

<div align="center"><figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FoSjaYoYHWlR4U99fyX7k%2FEkran%20Resmi%202025-11-28%2000.54.37.png?alt=media&amp;token=94639b28-690b-43b2-b0f7-522f017adba6" alt="" width="375"><figcaption></figcaption></figure></div>

### Overview Tab

This tab is for viewing and comparing overall metrics of tests rather than specific data from requests. Selecting data from Request List has no effect on this page. All of the metrics shown in this page is sum of all requests.

Sum of all requests data can be seen for each session as table at the top (Total Hits, Total Errors, Average Throughput etc.).

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FaCVPuNrHVZhDe73Pq3ar%2Fimage.png?alt=media&amp;token=002eb083-e27b-4807-bb97-6116b9bb06ee" alt=""><figcaption></figcaption></figure>

There is also Composite Graphic which is available for each session to compare KPIs side by side.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F8CLr7suFgLbPNCwZTpAi%2Fimage.png?alt=media&amp;token=dcfdf2f9-0a45-4645-bb72-15a258c4d04d" alt=""><figcaption></figcaption></figure>

### Stats Tab

You can compare the numerical data of the selected requests on this tab. Choosing a request from request list will add its data to table. The order which you choose will be reflected to table, so you can create your own custom table for both comparing, and also copying data to export to elsewhere.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FGN8yOGCnPyHDmNjI4gGX%2Fimage.png?alt=media&amp;token=6acc275f-1972-4728-a77f-9fbb46ca653d" alt=""><figcaption></figcaption></figure>

### Graphs Tab

You can compare the graphical data of the selected requests on this tab. Choosing a request from request list will add its data to the graph. You can create your own custom graphs on this page and then save it as image.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FWDlxpvCYWARfpujWzFd4%2Fimage.png?alt=media&amp;token=7069b750-2e1f-410c-ba37-d7aa9e61065e" alt=""><figcaption></figcaption></figure>

#### Percentile Graph

Percentile metrics are a measure of response time, which is industrial standart to interpret the performance. **Percentile graph** is a special graph that is only available while comparing, allows you to compare more efficiently between the tests.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FjoUSq53gdt65aLPAH8Md%2Fimage.png?alt=media&amp;token=c7cc7132-7d09-43c4-a0ca-5a7761f93f81" alt=""><figcaption></figcaption></figure>

### PDF Export

To save compare test report as a PDF, click the PDF Export button in the upper-left corner of the page.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fm7CI31LJ3amrfqr77aG8%2Fimage.png?alt=media&amp;token=343d314a-00e1-47e4-ae6a-23b39bd71e38" alt=""><figcaption></figcaption></figure>

Select the desired data in the popup, then click “Download PDF” to download the report, and the PDF will be automatically generated and saved to your device.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FdxImtFGd6rdtPkVN1NEO%2Fimage.png?alt=media&amp;token=9072b368-a4f5-4265-b732-c1abbec90998" alt="" width="375"><figcaption></figcaption></figure>

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# Compare Test

A guide for using Loadium's test comparing feature.

{% embed url="<https://www.youtube.com/watch?v=bNjzJFqS8L4>" %}

Running performance tests and analyzing the results is important, but another crucial factor is comparing results between different reports and understanding if there is an improvement from previous runs.

You can access to comparing test page from the left banner.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FERfhZeYjZ6cKwEOwpY9t%2Fimage.png?alt=media&amp;token=51db1460-eb10-42da-bcd2-c6530fccde39" alt=""><figcaption></figcaption></figure>

## Selecting Tests to Compare

When you enter to one of your tests, you will see the previously run test sessions. Then you can see the Add to Compare button next to each session, and clicking on it will add it to comparing page.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FdPzqPYg73JjDvLuJmlj4%2Fimage.png?alt=media&amp;token=22af45c3-e6f3-4e28-9820-7cd9ee183b0e" alt=""><figcaption></figcaption></figure>

After you click on the button, you will notice that Compare Test page has a number showing.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FdCcMMEWlYQHghWYFU93b%2Fimage.png?alt=media&amp;token=e440a4d4-9142-438f-8070-fc33a717cdfb" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
You can compare **6 tests at the same time**, and if you want to change tests, you need to remove previously selected and then add the new one.
{% endhint %}

## Comparing the Tests

On the first sight of the page, you will be at the **Overview** tab.

There are 3 ways to compare metrics of the tests:

* **Overview**
  * Overall data comparison of metrics
* **Stats**
  * Numerical data comparison of requests
* **Graphs**
  * Graphical data comparison of requests

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F3IPOwknG3Hu9BT7s6ubq%2Fimage.png?alt=media&amp;token=bb7f1751-2756-43b5-94e4-d73f1b688a59" alt=""><figcaption></figcaption></figure>

### Request List

All of the requests that has data metrics from the test will be listed here. You can use checkboxes to view its data to be shown in **STATS** and **GRAPHS** pages.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FcBP7yKAkOb1L4IanRGyV%2FEkran%20Resmi%202026-05-05%2010.07.46.png?alt=media&amp;token=d05cbadc-8c06-4d64-81f5-405da64eb095" alt="" width="563"><figcaption></figcaption></figure>

### Overview Tab

This tab is for viewing and comparing overall metrics of tests rather than specific data from requests. Selecting data from Request List has no effect on this page. All of the metrics shown in this page is sum of all requests.

Sum of all requests data can be seen for each session as table at the top (Total Hits, Total Errors, Average Throughput etc.).

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FBRlNqt2WkpeXHe6ZlsF0%2Fimage.png?alt=media&amp;token=61fa8144-e5b8-41ca-a2c8-02a81037f86d" alt=""><figcaption></figcaption></figure>

There is also Composite Graphic which is available for each session to compare KPIs side by side.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FGfv5jeyg0iEplyFYMnCW%2Fimage.png?alt=media&amp;token=96aa99a0-2e1f-4c24-8970-bf6331e9b4dd" alt=""><figcaption></figcaption></figure>

### Stats Tab

You can compare the numerical data of the selected requests on this tab. Choosing a request from request list will add its data to table. The order which you choose will be reflected to table, so you can create your own custom table for both comparing, and also copying data to export to elsewhere.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FXb9MMP0CxO2vTyu2QBF2%2Fimage.png?alt=media&amp;token=1ec9c488-d120-4743-ada2-02d14d8e738c" alt=""><figcaption></figcaption></figure>

### Graphs Tab

You can compare the graphical data of the selected requests on this tab. Choosing a request from request list will add its data to the graph. You can create your own custom graphs on this page and then save it as image.

In addition, you can visualize and compare key metrics such as response time, 95th percentile, hits, errors, latency and received/sent data across different requests.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FJfrpueFyLRqUL3tEe14G%2Fimage.png?alt=media&amp;token=a0741504-4d47-46c6-96b8-2f4195276a05" alt=""><figcaption></figcaption></figure>

#### Percentile Graph

Percentile metrics are a measure of response time, which is industrial standart to interpret the performance. **Percentile graph** is a special graph that is only available while comparing, allows you to compare more efficiently between the tests.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FmaANyeh8DW68OMhPklS4%2Fimage.png?alt=media&amp;token=32e41f2b-7ed6-4bfe-8d2a-10890514d520" alt="" width="563"><figcaption></figcaption></figure>

### PDF Export

To save compare test report as a PDF, click the *Generate Comparison Report* button in the upper-left corner of the page.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FcPTjr7DfJUDVsDf93UFu%2Fimage.png?alt=media&amp;token=fb83ca6f-85ef-43c3-acba-18fabc0a7d26" alt=""><figcaption></figcaption></figure>

Select the desired data in the popup, then click *Generate PDF* to download the report, and the PDF will be automatically generated and saved to your device.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FXcn2ulhsPOstVNB4988b%2Fimage.png?alt=media&amp;token=1b077ec4-c5b9-422c-b4f0-742935d28c25" alt="" width="563"><figcaption></figcaption></figure>

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# Report PDF Export

## How to Use Loadium PDF Export Feature

Loadium has another useful feature for its customers; PDF Export.

\
With this feature, you can export a PDF file of your test report by selecting the metrics and information you want to view. This feature is only available to subscription members, you can take a look at [Loadium Subscription](https://wiki.loadium.com/account/subscription) page first.

### Step by Step How to Use&#x20;

1. Select the test of report you want to review.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FhiAndlP8xs5wqGeXIPkM%2Fimage.png?alt=media&amp;token=bbcd1dad-c413-4e46-af0a-d38133f8f549" alt=""><figcaption></figcaption></figure>

2. The previously run tests will be displayed on this screen. On the test you want to view, click the "Report" button.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FAsR2zFa5cScXaoKXKhP3%2Fimage.png?alt=media&amp;token=05a76d35-30dd-4ae1-9f84-c73b5446192e" alt="" width="563"><figcaption></figcaption></figure>

3. Click the "PDF Export" button on the right, top of test report page.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FefFApepbSweLK5amoPp2%2Fimage.png?alt=media&amp;token=f23bd20b-cd8c-4424-942d-f34ac60f261e" alt=""><figcaption></figcaption></figure>

4. You can choose the metrics and data to include in your PDF report file on this screen.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FVVeXbWTL8AS8fQu9OgSF%2Fimage.png?alt=media&amp;token=9cb4590b-03d8-43ff-9bdb-484f082c1a87" alt="" width="563"><figcaption></figcaption></figure>

#### An example PDF report file looks like this:

<div><figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F9VU0NsB9NgRntRUuqZqm%2Fimage.png?alt=media&amp;token=8808507d-66e2-421e-8793-d8828e9b5ed8" alt=""><figcaption></figcaption></figure> <figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FWRRLPWa3rTiWRwmycz4O%2Fimage.png?alt=media&amp;token=db88740f-f49f-499e-aed8-eddf52bf2fab" alt=""><figcaption></figcaption></figure> <figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FoS7MEgN8DylzIsJZqSm4%2Fimage.png?alt=media&amp;token=ec0f279b-f647-41b8-ace4-4592554e6f59" alt=""><figcaption></figcaption></figure> <figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FCRVlQEYLiBDPvzs6WHFK%2Fimage.png?alt=media&amp;token=fb6bde10-1a68-4656-a880-7eb5b5ab15a5" alt=""><figcaption></figcaption></figure> <figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FL94vPLG5KlCJ5zJMcaDZ%2Fimage.png?alt=media&amp;token=f5c26b83-f926-4414-832d-55a8b087a140" alt=""><figcaption></figcaption></figure></div>

{% hint style="success" %}
You can easily export your report file and have a shorter summary of your test reports using Loadium PDF Export feature.
{% endhint %}


# Report PDF Export

{% embed url="<https://www.youtube.com/watch?v=_HSPfPLFcUY>" %}

## How to Use Loadium PDF Export Feature

Loadium has another useful feature for its customers; PDF Export.

\
With this feature, you can export a PDF file of your test report by selecting the metrics and information you want to view. This feature is only available to subscription members, you can take a look at [Loadium Subscription](https://wiki.loadium.com/account/subscription) page first.

### Step by Step How to Use&#x20;

1. Select the test of report you want to review.

<figure><picture><source srcset="/files/rCyDJMN6IAgc5vB4W5nC" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FGxdhZP7vmGLTCwJGmOOe%2Fimage.png?alt=media&amp;token=b64e8600-ec42-4ce4-9cd6-7cef97765972" alt=""></picture><figcaption></figcaption></figure>

2. The previously run tests will be displayed on this screen. To view the report details, click the session name of the test you want to review.

<figure><picture><source srcset="/files/42MMngQdAUdRdl7PRShW" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fs25eSzdwqy66LgI1iBgn%2Fimage.png?alt=media&amp;token=a84765bf-a069-43ed-bae5-2959871ba125" alt=""></picture><figcaption></figcaption></figure>

3. Click the "Export" button on the right, top of test report page.

<figure><picture><source srcset="/files/d7AiRDtsFODG9HfkfRMN" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F5Bxr5Fj4f5YAuqDs8Vzc%2Fimage.png?alt=media&amp;token=684addab-2757-46b9-ae33-0333f78e1000" alt=""></picture><figcaption></figcaption></figure>

4. You can choose the metrics and data to include in your PDF report file on this screen and download the PDF with "Download PDF" button.

<figure><picture><source srcset="/files/OB5yrjrRCTnaWRD7HTcl" media="(prefers-color-scheme: dark)"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FcNlCJ7X1GthoySAB5CeL%2Fimage.png?alt=media&amp;token=94245fdf-7f53-4188-98c8-388806c84016" alt="" width="563"></picture><figcaption></figcaption></figure>

#### An example PDF report file looks like this:

{% tabs %}
{% tab title="Test Information" %}

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FbynUizKAYknHDWxUrIuf%2Fimage.png?alt=media&amp;token=fee590d2-f93d-4d9a-aa4e-fafa87f181eb" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Load Generators" %}

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FiepuHM8Dg8GXOVv5cNA0%2Fimage.png?alt=media&amp;token=0ff063a9-6fde-4224-b00f-76860f91faee" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Overview" %}

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FZ1SXnRbKWxWluXFvYL7c%2Fimage.png?alt=media&amp;token=2314404e-1670-4ec9-a892-25a70636f66c" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Graphs" %}

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F5DgKfzfYl1Doxc0mPw30%2Fimage.png?alt=media&amp;token=a72e84b1-a208-431c-8a8f-e5342d987310" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="Request Statistics" %}

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FK2HH0b49amTjAMpMLHtr%2Fimage.png?alt=media&amp;token=b6750c01-2163-4503-a7ac-ec7d13cd1a85" alt=""><figcaption></figcaption></figure>
{% endtab %}
{% endtabs %}

{% hint style="success" %}
You can easily export your report file and have a shorter summary of your test reports using Loadium PDF Export feature.
{% endhint %}


# Private Location

Creating Private Location and Agent

Private location is a system dedicated to perform load tests using your own systems with our agents, which allows you to bypass or satisfy the conditions for security environments such as firewall. Since the feature utilizes Docker containers, its installation and usage requires Docker software pre-installed.

## Creating a Private Location

* You can access to Private Location Page from the Account Page.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FA5BzjIrisnjbgG682MxD%2Fimage.png?alt=media&amp;token=4815132a-9c39-4361-bcab-94a790aa404b" alt=""><figcaption></figcaption></figure>

* You can simply click on the Create Location button and enter the desired parameters to create your private location.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FHeUqdcApUJIIfy7pwDdW%2Fimage.png?alt=media&amp;token=10d70f19-e080-4165-8214-9211c42732e1" alt=""><figcaption></figcaption></figure>

## On Premise Parameters

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FYv9YhsmBVTGTpAwBmuri%2Fimage.png?alt=media&amp;token=774ff7e3-8854-4fbe-90d4-3219ec8f3ae0" alt=""><figcaption></figcaption></figure>

1. **Name:** Name of the private location.
2. **User per engine:** Specifies the number of virtual users assigned to each private location engine for test execution.
3. **Override number of CPUs:** Amount of CPUs to be consumed by the engines. It can be fractional number (i.e 3.5 will use 3 and a half CPU).
4. **Override memory:** Amount of memory (MB) to be consumed by the engines.
5. **JVM XMX:** Specifies the maximum memory allocation pool for the Java Virtual Machine (JVM)
6. **JVM XMS:** Specifies the initial memory allocation pool for the Java Virtual Machine (JVM)

* Once you create the private location, you will be directed to its details page, where you can edit the location or add agents to it.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FiR1cXsOurFelU3GONAfa%2FEkran%20Resmi%202025-11-29%2021.17.41.png?alt=media&amp;token=57d1d498-ad3d-4956-ba95-6d2270298a53" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
**Note:** Before you can add an agent, you need to generate **Access Key** from the Account Page. This key ensures the security of transactions between your requests and our services.

<p align="center"> <img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FeCmzQCV4LG6NqTQzusp3%2Fimage.png?alt=media&amp;token=f216267c-4dc1-45f2-80f3-932670d2e383" alt="" data-size="original">    </p>
{% endhint %}

## Creating Agent and Running on Docker

* Only name is required for creating an agent. Once you create the agent, you will be presented with the docker command which you can use to create and run docker container for your private location.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FMNOw2FPHLgS2UqvtkQ9y%2Fimage.png?alt=media&amp;token=ff78d4b3-58d1-44bf-beac-ff111c256a98" alt=""><figcaption></figcaption></figure>

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FGXC9IjTw2sAqGeS3C0uv%2Fimage.png?alt=media&amp;token=58970c90-c01d-4321-a843-fa1f8899d74c" alt=""><figcaption></figcaption></figure>

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F73s1b3CUE2BTU5itXvpF%2Fimage.png?alt=media&amp;token=f0675917-35a9-459d-9206-9cdd135b9032" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Note:** If you have lost your docker command for the agent, you can simply Regenerate it.

<p align="center"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FptEsg5EHTzXPlSjmIk4q%2Fimage.png?alt=media&amp;token=063f16b0-3cfd-481d-9dbd-d34dff21b30c" alt=""></p>
{% endhint %}

* After you generated the command, just run it on console and the installation process will start.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F7fBF7HWF612TkrrcIlkT%2Fimage.png?alt=media&amp;token=e273155c-76d2-48ef-aae7-7f16177bd278" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Note:** If you are using **Windows** operating system, there are additional steps to setup docker containers before running. You can find the details [here](https://docs.microsoft.com/en-us/virtualization/windowscontainers/quick-start/quick-start-windows-10-linux).
{% endhint %}

{% hint style="info" %}
**Note:** In case you changed the agent’s name, docker command will be regenerated automatically. However, to start the container with the new name, you need to delete the previous container with the old name from docker.
{% endhint %}

* After installation process is finished, you can confirm if the operation is successful by checking its Status and Last Heartbeat in the Private Location page (You might need to refresh the page, and you may need to log into your account again).&#x20;

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FcocNDd8SlT2uvNXBBHFr%2Fimage.png?alt=media&amp;token=f40b214a-efe2-4dcd-b9d0-9996b3ca4682" alt=""><figcaption></figcaption></figure>

#### Agent Statuses

* **Idle:** Node is connected, available for a test run.
* **Running:** Node is currently busy, running a test.
* **Finished:** Node has just completed a test (still busy), finalizing the processes then will become Idle.
* **Time Out:** Node is disconnected, no updates received from the node.

## Starting Test With Private Location

In order to use the created private location, you can simply select it from Geolocation segment in Test Create/Edit Page. It will use the first available (idle) agents to start the test.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Ftfto75XaY7qIKRkhRZ64%2Fimage.png?alt=media&amp;token=5cb0cb12-719f-404f-b7ea-042229cf4d3e" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Note:** Considering the test's configuration, each engine requires an available agent from the selected private location. If there aren't enough agents then the test will not start.
{% endhint %}

{% hint style="warning" %}
**Additional Note:** If there is a VPN requirement for the endpoint you are testing, and since the test will run on a Docker container, sometimes Docker cannot utilize the VPN connection. So make sure to start VPN connection first then start Docker, or restart Docker after VPN connection is established.
{% endhint %}

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# Split CSV

What is , How to Use & Things to Pay Attention

## What is Split CSV

If you are planning to use CSV data and require more than one engine for your test, and if you want each engine to use unique values from the .csv file, you can use Split CSV feature. What Split CSV does is, it divides .csv files to engine count (2 engine count will divide the csv file in half), so that each engine will have different segment of the .csv, thus engines will have unique data.

&#x20;Let's take a look at the following example:

We want to use 10 engines, each with 500 threads, 5.000 threads in total, and you have uploaded .csv file with 5.000 user data. If you want different user data to be sent to each engine and if you select the "Split CSV" option, the CSV will be divided into 10 and different segments of the file will be sent to each engine.&#x20;

{% hint style="info" %}
If your test scenario has login, and multiple logins of same user will drop each other's session, it is crucial to have unique data on each engine.
{% endhint %}

{% hint style="warning" %}
Engine count cannot be higher than .csv file's column amount.
{% endhint %}

{% hint style="warning" %}
When using the Split CSV feature, ensure the first row contains a header; otherwise, the first row of each split file may repeat the same value.

<p align="center"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FuHc3Jw2DJ70lp4GAKaHF%2Fimage.png?alt=media&amp;token=619cf069-9e01-486a-ab55-059e15696f3d" alt=""></p>
{% endhint %}

## Use of Split CSV

First upload your CSV file from the ‘Upload’ field. After uploading your CSV files, you can enable the Split CSV option by toggling the switch next to each file.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Flhy9EbkfWX1oDqSoDTgG%2Fimage.png?alt=media&amp;token=dfe1a632-6605-4783-8065-9b536b345b24" alt=""><figcaption></figcaption></figure>

You can split multiple csv's:

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FgAy1TGQ3yazZMNqT9M66%2Fimage.png?alt=media&amp;token=44ed816f-9936-4bdc-b818-ee625acb170d" alt=""><figcaption></figcaption></figure>

## Things To Pay Attention

{% hint style="warning" %}
The path of the .csv file should only be name of the file (Absolute path should be given).

~~/MyUsername/MyDocuments/users.csv~~  ==>>  users.csv
{% endhint %}

* The file extension should be .csv (not txt, excel etc.).
* Variable Names fields should be given as they are separated in the file.&#x20;
* Delimiter part to indicate how you separate your parameters in csv.&#x20;

You can see an example below.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-M_y69SEaQkdjbRx0raI%2F-M_yLfDUDNkSmpywmiSo%2Fsplitcsv3.png?alt=media\&token=047d459e-3500-4415-b488-dfb8f3d44d6f)


# Split CSV

What is , How to Use & Things to Pay Attention

{% embed url="<https://www.youtube.com/watch?v=xOs98WL0ZfE>" %}

## What is Split CSV

If you are planning to use CSV data and require more than one engine for your test, and if you want each engine to use unique values from the .csv file, you can use Split CSV feature. What Split CSV does is, it divides .csv files to engine count (2 engine count will divide the csv file in half), so that each engine will have different segment of the .csv, thus engines will have unique data.

&#x20;Let's take a look at the following example:

We want to use 10 engines, each with 500 threads, 5.000 threads in total, and you have uploaded .csv file with 5.000 user data. If you want different user data to be sent to each engine and if you select the "Split CSV" option, the CSV will be divided into 10 and different segments of the file will be sent to each engine.&#x20;

{% hint style="info" %}
If your test scenario has login, and multiple logins of same user will drop each other's session, it is crucial to have unique data on each engine.
{% endhint %}

{% hint style="warning" %}
Engine count cannot be higher than .csv file's column amount.
{% endhint %}

{% hint style="warning" %}
When using the Split CSV feature, ensure the first row contains a header; otherwise, the first row of each split file may repeat the same value.

<p align="center"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FuHc3Jw2DJ70lp4GAKaHF%2Fimage.png?alt=media&amp;token=619cf069-9e01-486a-ab55-059e15696f3d" alt=""></p>
{% endhint %}

## Use of Split CSV

First upload your CSV file from the ‘Upload’ field. After uploading your CSV files, you can enable the Split CSV option by toggling the switch next to each file.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FAbl93waDNbraITv1LMu5%2Fimage.png?alt=media&amp;token=37d39a5c-1aa4-4c01-bb32-01d1d891a3da" alt=""><figcaption></figcaption></figure>

You can split multiple csv's:

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FRfOJtga6e6xLbsAOudOt%2Fimage.png?alt=media&amp;token=54c2a87d-29db-4e40-9e85-e54bf609eb43" alt=""><figcaption></figcaption></figure>

#### **Preview**

The Preview feature allows you to view the contents of an uploaded CSV file directly within the platform without downloading it. This makes it easy to verify the file structure, column headers, and sample data before starting the test, helping ensure that the correct test data has been uploaded and configured properly.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FEKrbwGriAONT4RBDcul5%2Fimage.png?alt=media&amp;token=02ab8b4b-6fef-4d03-80eb-3e8bcd537811" alt=""><figcaption></figcaption></figure>

## Things To Pay Attention

{% hint style="warning" %}
The path of the .csv file should only be name of the file (Absolute path should be given).

~~/MyUsername/MyDocuments/users.csv~~  ==>>  users.csv
{% endhint %}

* The file extension should be .csv (not txt, excel etc.).
* Variable Names fields should be given as they are separated in the file.&#x20;
* Delimiter part to indicate how you separate your parameters in csv.&#x20;

You can see an example below.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-M_y69SEaQkdjbRx0raI%2F-M_yLfDUDNkSmpywmiSo%2Fsplitcsv3.png?alt=media\&token=047d459e-3500-4415-b488-dfb8f3d44d6f)


# Debug Test

You can create a free, 5-user debug test to verify everything before starting the actual test. These tests will not consume any test usages.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FccXUd0PgaBw4sHjo6HLO%2Fimage.png?alt=media&amp;token=ccb3acce-92d0-447e-9438-a39fec6f0126" alt=""><figcaption><p>Debug Test Button</p></figcaption></figure>

Debug test configuration is as follows:&#x20;

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F2st2YtGvoUo1VJhyGlcb%2Fimage.png?alt=media&amp;token=e0162825-1347-4d2e-96d7-fd9ffbe37274" alt="" width="563"><figcaption><p>5-User, 1-Engine Debug Test Configuration</p></figcaption></figure>

You can disable Debug Mode from the button shown below:

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FtXf5a7OFvCgUS52DP8xH%2Fimage.png?alt=media&amp;token=c959b643-84d2-4f15-a2e8-444cdd0a815e" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="warning" %}
**Note:** Dedicated IPs are not supported with Debug tests.
{% endhint %}


# Debug Test

{% embed url="<https://www.youtube.com/watch?v=Y714a-tRSe8>" %}

You can create a free, 5-user debug test to verify everything before starting the actual test. These tests will not consume any test usages.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F6p34yH5nEn9TwS9I4Nar%2FEkran%20Resmi%202026-06-02%2020.53.31.png?alt=media&amp;token=f3ba74c6-270d-4b24-86f3-2066d3c75192" alt=""><figcaption></figcaption></figure>

Debug test configuration is as follows:&#x20;

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FkjQgxKJKxnvBNNS78Ugp%2Fimage.png?alt=media&amp;token=3fe4706e-89b7-496b-b8f7-0bcf87b487f3" alt="" width="563"><figcaption></figcaption></figure>

You can disable Debug Mode from the button shown below:

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FGZVAeBvFRyJcolA2tfWx%2Fimage.png?alt=media&amp;token=67ef11d7-b762-4211-9b72-9f47a382de1e" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="warning" %}
**Note:** Dedicated IPs are not supported with Debug tests.
{% endhint %}


# Multi-Step

You can create a 'gradually increasing load' configuration during test creation with the Multi-Step option in the Configuration section in the test Create / Edit page.

Let's take a look at the following example:

We want to run the test with a maximum of 5000 users, increasing by 1000 users every 2 minutes. With default settings, Loadium will create the test with Linear Load Type. If you want to apply by increasing the load select "Multi-Step" on Configuration area.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FJQV3Sm4Hs931K4f9Oufc%2Fimage.png?alt=media&amp;token=620f9614-56d2-41e3-9b1f-864b7560b119" alt="Multi-Step Checkbox and Configuration"><figcaption><p>Multi-Step Checkbox and Configuration</p></figcaption></figure>

Enter the target number of virtual users in the "Target VU" field, specify the duration (in seconds) for ramping up to this load in the "Ramp-up" field, and define how long (in minutes) the load should be sustained in the "Hold" field.

{% hint style="info" %}
The time entered in the "Hold" field includes the "Ramp-up" time.
{% endhint %}

We add 5 steps to simulate the scenario in our example.

{% hint style="info" %}
The value entered in the "Target VU" field represents the maximum number of users at that point in the test; it does not indicate the amount of increase.

In this example, the maximum load we will apply to the system at the end of step 5 will be 5000.
{% endhint %}

If you want to increase the number of steps, you can add steps by clicking the "Add Step" button.

## Things To Pay Attention

{% hint style="warning" %}
The Sandbox feature cannot be used for Multi-Step tests.
{% endhint %}

{% hint style="warning" %}
The test time is the sum of the Hold times.
{% endhint %}

{% hint style="warning" %}
For VUH usage accounts, the amount of VUH deducted from your account after the test is calculated based on the Target VU in the last step you added and the sum of the Hold times.
{% endhint %}


# Multi-Step

{% embed url="<https://www.youtube.com/watch?v=D_uXT7xixM0>" %}

You can create a 'gradually increasing load' configuration during test creation with the Multi-Step option in the Test Configuration section in the test Create / Edit page.

{% hint style="warning" %}
Loadium uses the Linear Load Type by default. If you want to increase the load gradually in predefined stages instead of a continuous linear ramp-up, select Multi-Step in the Configuration section.
{% endhint %}

Let's take a look at the following example:

To reach 5000 users by increasing the load by 1000 users every 2 minutes, configure five load steps using the Multi-Step option. In this scenario, the test will ramp up to 1000 users within 30 seconds and maintain that load for 2 minutes. Then, an additional 1000 users will be added over the next 30 seconds, bringing the total to 2000 users, which will again be maintained for 2 minutes. This process will be repeated until the load reaches 5000 concurrent users.

Each load stage can be configured individually by clicking the ***Add Step*** button and defining the target user count, ramp-up duration, and hold time for that step.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F9kRTkDzFhEp1cDemi4Th%2Fimage.png?alt=media&amp;token=51642a30-025e-436d-91ae-9c6a8d7c4fd6" alt="" width="563"><figcaption></figcaption></figure>

Enter the target number of virtual users in the "Target VU" field, specify the duration (in seconds) for ramping up to this load in the "Ramp-up" field, and define how long (in minutes) the load should be sustained in the "Hold" field.

{% hint style="info" %}
The time entered in the "Hold" field includes the "Ramp-up" time.
{% endhint %}

We add 5 steps to simulate the scenario in our example.

{% hint style="info" %}
The value entered in the "Target VU" field represents the maximum number of users at that point in the test; it does not indicate the amount of increase.

In this example, the maximum load we will apply to the system at the end of step 5 will be 5000.
{% endhint %}

If you want to increase the number of steps, you can add steps by clicking the "Add Step" button.

## Things To Pay Attention

{% hint style="warning" %}
The Debug feature cannot be used for Multi-Step tests.
{% endhint %}

{% hint style="warning" %}
The test time is the sum of the Hold times.
{% endhint %}

{% hint style="warning" %}
For VUH usage accounts, the amount of VUH deducted from your account after the test is calculated based on the Target VU in the last step you added and the sum of the Hold times.
{% endhint %}


# Geolocation

## What is Geolocation?

Loadium, in brief, is a pipeline tool that allows you to command remote servers to send requests to your system. These remote servers are physically located in many places around the world. Loadium is integrated with Amazon AWS, Microsoft Azure and Google Cloud engine providers.

Loadium's Geolocation feature allows you to select the desired location to receive requests from. Moreover, the location that is chosen for the servers might have impact on the test depending on the configuration or the location of the receiving servers.

## How to Use Geolocation

After you select your test type from "Create" page, you will be presented with Geolocation configuration at the lower section of the page.

Here, you will be able to select the desired region, and the amount for the load engines.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FKLg8RNrtoY793f3US3f5%2Fimage.png?alt=media&amp;token=65d10400-ee91-4e7f-b8d2-b550d35bbaff" alt=""><figcaption></figcaption></figure>

Multiple regions can be added to the configuration.&#x20;

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FRcOs3vQ9fvHmSUshBqmv%2Fimage.png?alt=media&amp;token=1955a3b4-8ddc-4941-bcf4-ba10ff73f56a" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Note:** The total engine count in the "Geolocation" section must be equal to the engine count in "Configuration" section.
{% endhint %}

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Faq4wL9kVpajOBXYetGk3%2Fimage.png?alt=media&amp;token=b7d69526-7278-4fb7-959b-b71133fa292f" alt=""><figcaption></figcaption></figure>

## Available Regions&#x20;

### Oracle Cloud

* EU - Frankfurt
* Australia East - Sydney
* Australia Southeast - Melbourne
* France Central - Paris
* Italy Northwest - Milan
* Netherlands Northwest - Amsterdam
* Spain Central - Madrid
* Sweden Central - Stockholm
* UAE Central - Abu Dhabi
* UAE East - Dubai

### Amazon Web Services

* EU - Ireland
* EU - Frankfurt
* EU - London
* EU - Paris
* US East - Ohio
* US East - N. Virginia
* US West - N. California
* US West - Oregon
* Canada - Central
* Asia Pacific - Tokyo
* Asia Pacific - Seoul
* Asia Pacific - Singapore
* Asia Pacific - Sydney
* Asia Pacific - Mumbai
* South America - Sao Paulo

### Microsoft Azure

* Germany West Central
* Australia Central
* Canada East
* Central India
* Central US
* East US
* Japan East
* North Europe
* South Central Us
* UAE North
* West Europe
* West US
* Sweden Central

### Google Cloud Platform

* Belgium
* Zurich

## Why Geolocation is Important?

One crucial reason to utilize geolocation feature could be the location of the receiving server. For example, if the receiving server is located in Asia, the geolocation for requesting servers advised to be selected close to Asia, otherwise the average connection time (the time that it takes a request to reach to receiving server) will be higher than usual. This situation might cause the test to be executed slower, affecting it negatively.

Another reason to utilize geolocation could be using multi location feature to distribute the incoming heavy traffic to achieve more natural, realistic test. Moreover, besides achieving a realistic test, receiving traffic from multiple locations could be more friendly with the ISP's and server configurations. Because sometimes, ISP's or the server's configurations (load balancer etc.) might not act as expected (ISP's might interpret it as DDoS situation, or the load balancer could not distribute the requests properly) if it's coming from only one location.


# Geolocation

{% embed url="<https://www.youtube.com/watch?v=b_CMeVwgHXQ>" %}

## What is Geolocation?

Loadium, in brief, is a pipeline tool that allows you to command remote servers to send requests to your system. These remote servers are physically located in many places around the world. Loadium is integrated with Amazon AWS, Microsoft Azure and Google Cloud engine providers.

Loadium's Geolocation feature allows you to select the desired location to receive requests from. Moreover, the location that is chosen for the servers might have impact on the test depending on the configuration or the location of the receiving servers.

## How to Use Geolocation

After you select your test type from "Create" page, you will be presented with Geolocation configuration at the lower section of the page.

Here, you will be able to select the desired region, and the amount for the load engines.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FBuYtKRWfMGKv7SirWHNm%2Fimage.png?alt=media&amp;token=6c79ac99-6483-422d-ba18-a10ada30e716" alt=""><figcaption></figcaption></figure>

Multiple regions can be added to the configuration with *Add Location* button.&#x20;

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FCs7LYMqnK3pg6C6PY0EL%2Fimage.png?alt=media&amp;token=a096013a-04c4-4c87-bb06-e4465f88684e" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Note:** The total engine count in the "Geolocation" section must be equal to the engine count in "Configuration" section.
{% endhint %}

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FJghk1lelqqJtzSWBu5gS%2Fimage.png?alt=media&amp;token=b65f668b-fc4b-49aa-a86f-064408774f73" alt=""><figcaption></figcaption></figure>

## Available Regions&#x20;

### Oracle Cloud

* EU - Frankfurt
* Australia East - Sydney
* Australia Southeast - Melbourne
* France Central - Paris
* Italy Northwest - Milan
* Netherlands Northwest - Amsterdam
* Spain Central - Madrid
* Sweden Central - Stockholm
* UAE Central - Abu Dhabi
* UAE East - Dubai

### Amazon Web Services

* EU - Ireland
* EU - Frankfurt
* EU - London
* EU - Paris
* US East - Ohio
* US East - N. Virginia
* US West - N. California
* US West - Oregon
* Canada - Central
* Asia Pacific - Tokyo
* Asia Pacific - Seoul
* Asia Pacific - Singapore
* Asia Pacific - Sydney
* Asia Pacific - Mumbai
* South America - Sao Paulo

### Microsoft Azure

* Germany West Central
* Australia Central
* Canada East
* Central India
* Central US
* East US
* Japan East
* North Europe
* South Central Us
* UAE North
* West Europe
* West US
* Sweden Central

### Google Cloud Platform

* Belgium
* Zurich

## Why Geolocation is Important?

One crucial reason to utilize geolocation feature could be the location of the receiving server. For example, if the receiving server is located in Asia, the geolocation for requesting servers advised to be selected close to Asia, otherwise the average connection time (the time that it takes a request to reach to receiving server) will be higher than usual. This situation might cause the test to be executed slower, affecting it negatively.

Another reason to utilize geolocation could be using multi location feature to distribute the incoming heavy traffic to achieve more natural, realistic test. Moreover, besides achieving a realistic test, receiving traffic from multiple locations could be more friendly with the ISP's and server configurations. Because sometimes, ISP's or the server's configurations (load balancer etc.) might not act as expected (ISP's might interpret it as DDoS situation, or the load balancer could not distribute the requests properly) if it's coming from only one location.


# Users Per Engine Configuration

You can set the number of virtual users to initialize per engine before tests.

Let's take a look at the following example:

We want to run the tests with 1000 virtual users. With default settings, Loadium will start this test with 2 engines, 500 threads per engine. If you want to define a specific number of virtual users less than 500 per engine, click "Select Users Per Engine" button below.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FCUm6c0ZpaBgB4Bhz4THc%2Fimage.png?alt=media&amp;token=b94e76e5-402a-4604-baab-819c7b4c352e" alt="" width="375"><figcaption><p>Select Users Per Engine Button</p></figcaption></figure>

Enable the "Select Users Per Engine" button. Enter the Users Per Engine value you want to initialize per engine in the Users Per Engine field.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F0kR7bh0VJWNOJU9tInn0%2Fimage.png?alt=media&amp;token=bfa0c727-d1a5-4203-a300-2d02b1ff92e3" alt="" width="375"><figcaption><p>50 users per engine, total 20 engines will be initialized</p></figcaption></figure>

## When To Use&#x20;

If there is an IP-based rate limit or connection limit on the servers you test, you can reduce the number of initialized users per IP by using this feature.

## Things To Pay Attention

{% hint style="warning" %}
If you are going to use a dedicated ip, make sure that the number of engines you set is not more than the number of dediceted ips in your account.
{% endhint %}


# Users Per Engine Configuration

{% embed url="<https://www.youtube.com/watch?v=moRv6K78s6o>" %}

You can set the number of virtual users to initialize per engine before tests.

Let's take a look at the following example:

We want to run the tests with 1000 virtual users. With default settings, Loadium will start this test with 2 engines, 500 threads per engine. If you want to define a specific number of virtual users less than 500 per engine, click "Select Users Per Engine" button below.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FnxYcgBG53epmEOuXjquP%2Fimage.png?alt=media&amp;token=233d2f87-42ab-4e4e-874f-da30fce13527" alt=""><figcaption><p>Select User Per Engine button</p></figcaption></figure>

Enable the "Select Users Per Engine" button. Enter the Users Per Engine value you want to initialize per engine in the Users Per Engine field.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FP33rqCz1lz2k9UomWlS0%2Fimage.png?alt=media&amp;token=34e485f9-c918-44ac-85f8-0c2a04f2e2da" alt=""><figcaption><p>50 users per engine, total 20 engines will be initialized</p></figcaption></figure>

## When To Use&#x20;

If there is an IP-based rate limit or connection limit on the servers you test, you can reduce the number of initialized users per IP by using this feature.

## Things To Pay Attention

{% hint style="warning" %}
If you are going to use a dedicated ip, make sure that the number of engines you set is not more than the number of dediceted IPs in your account.
{% endhint %}


# Dedicated IP

What is , How to Use & Things to Pay Attention

## What is Dedicated IP?

Dedicated IP is a private IP address made available to you only.&#x20;

Sometimes you may need to bypass a firewall or DDoS protection to achieve performance tests, in such cases you need to have specific IP addresses to whitelist. For this reason, Loadium has made it possible for you to assign Dedicates IPs to its engines. Each IP address belongs to a specific region. There must be a dedicated IP for each engine.&#x20;

For example: &#x20;

* 5 engines = 5 Dedicated IPs&#x20;
* 50 engines = 50 Dedicated IPs&#x20;
* 100 engines = 100 Dedicated IPs&#x20;

{% hint style="success" %}
To request private IP for your Loadium account, you can [contact us here](https://loadium.com/contact-us/).
{% endhint %}

## Your Dedicated IPs

In order to see your dedicated IPs, you need to click the profile button in the upper right corner and come to the account page.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fn52Cpdm7cgGwIj5ux1mI%2Fimage.png?alt=media&amp;token=9d027041-5d5d-4391-981a-ce3444681508" alt=""><figcaption></figcaption></figure>

On the account page, you can see all your IPs by clicking the "DEDICATED IP" tab that is above the page. &#x20;

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FSANuRiGFPd0pjaLJt8cV%2Fimage.png?alt=media&amp;token=635e46a5-eeb0-40a9-af58-00dceab9e8b0" alt=""><figcaption></figcaption></figure>

On this screen, you can track your dedicated IPs. The table will show you all the Dedicated IPs associated with your account. In the table, you can see the all information about your dedicated IPs such as region name, IP address, status and expire dates.

{% hint style="info" %}
**Note:** Use the Export button in the upper-right corner to download the IPs.

<p align="center"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FcRVNJAMtQE8vKKLGBXgB%2Fimage.png?alt=media&amp;token=2187d2ec-7736-4f04-8057-27c02214b0e8" alt=""></p>
{% endhint %}

## How to Use

To use dedicated IPs during your test, enable the “Use Dedicated IP” switch under the Geolocation section.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FPS2Aag0nq8LqBa1U1dog%2Fimage.png?alt=media&amp;token=94327619-f000-43b7-a12e-f78d8ec7a834" alt=""><figcaption></figcaption></figure>

The IPs will be displayed once the region provider they are assigned to is selected.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FO4DsF92tHKiPUhzfjWtB%2Fimage.png?alt=media&amp;token=82fb63d3-e8fb-4f42-b238-420310720c20" alt=""><figcaption></figcaption></figure>

That's it. Now when you start the test, it will use IP's from your Dedicated IP pool (the selection is randomized).

## Available Regions&#x20;

### Oracle Cloud

1. EU - Frankfurt
2. Australia East - Sydney
3. Australia Southeast - Melbourne
4. France Central - Paris
5. Italy Northwest - Milan
6. Netherlands Northwest - Amsterdam
7. Spain Central - Madrid
8. Sweden Central - Stockholm
9. UAE Central - Abu Dhabi
10. UAE East - Dubai

### Amazon Web Services

1. EU - Ireland
2. EU - Frankfurt
3. EU - London
4. EU - Paris
5. US East - Ohio
6. US East - N. Virginia
7. US West - N. California
8. US West - Oregon
9. Canada - Central
10. Asia Pacific - Tokyo
11. Asia Pacific - Seoul
12. Asia Pacific - Singapore
13. Asia Pacific - Sydney
14. Asia Pacific - Mumbai
15. South America - Sao Paulo

### Microsoft Azure

1. Germany West Central
2. Australia Central
3. Canada East
4. Central India
5. Central US
6. East US
7. Japan East
8. North Europe
9. South Central Us
10. UAE North
11. West Europe
12. West US
13. Sweden Central

### Google Cloud Platform

1. Belgium
2. Zurich

{% hint style="success" %}
To request private IP for your Loadium account, you can [contact us here](https://loadium.com/contact-us/).
{% endhint %}

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# Dedicated IP

What is , How to Use & Things to Pay Attention

## What is Dedicated IP?

Dedicated IP is a private IP address made available to you only.&#x20;

Sometimes you may need to bypass a firewall or DDoS protection to achieve performance tests, in such cases you need to have specific IP addresses to whitelist. For this reason, Loadium has made it possible for you to assign Dedicates IPs to its engines. Each IP address belongs to a specific region. There must be a dedicated IP for each engine.&#x20;

For example: &#x20;

* 5 engines = 5 Dedicated IPs&#x20;
* 50 engines = 50 Dedicated IPs&#x20;
* 100 engines = 100 Dedicated IPs&#x20;

{% hint style="success" %}
To request private IP for your Loadium account, you can [contact us here](https://loadium.com/contact-us/).
{% endhint %}

## Your Dedicated IPs

In order to see your dedicated IPs, you need to click the ***Profile*** button in the upper right corner and come to the ***Account*** page.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fh1XGUbUcBYJxMO9LXN3h%2Fimage.png?alt=media&amp;token=2008624c-105d-4703-888e-5138d025a224" alt=""><figcaption></figcaption></figure>

On the account page, you can see all your IPs by clicking the ***Dedicated IPs*** tab that is above the page. &#x20;

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FsiR3UQaq3Ipnpc2579Sy%2Fimage.png?alt=media&amp;token=a98abf65-2752-48e1-8d32-e24d7c67674a" alt=""><figcaption></figcaption></figure>

On this screen, you can track your dedicated IPs. The table will show you all the Dedicated IPs associated with your account. In the table, you can see the all information about your dedicated IPs such as region name, IP address, status and expire dates.

{% hint style="info" %}
**Note:** Use the ***Export CSV*** button in the upper-right corner to download the IPs.

<p align="center"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FcUOU9TqhjpAzDnrVfjK7%2Fimage.png?alt=media&amp;token=597d4249-7fea-4d1e-94a5-d6586d84ed39" alt="" data-size="original"></p>
{% endhint %}

## How to Use

To use dedicated IPs during your test, enable the ***Use Dedicated IP*** switch under the Geolocation section.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FDx8jrX9hJLZR39B5UlrI%2Fimage.png?alt=media&amp;token=a57139ea-7857-4a17-b270-21bb149c8d63" alt=""><figcaption></figcaption></figure>

When this switch is enabled, Loadium automatically filters the region list to display only regions with configured IP addresses.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FJ2TBt8Mfd0wEXH8qPEd8%2Fimage.png?alt=media&amp;token=fc3be12a-4088-46b1-a029-46b023156113" alt=""><figcaption></figcaption></figure>

That's it. Now when you start the test, it will use IP's from your Dedicated IP pool (the selection is randomized).

## Available Regions&#x20;

### Oracle Cloud

1. EU - Frankfurt
2. Australia East - Sydney
3. Australia Southeast - Melbourne
4. France Central - Paris
5. Italy Northwest - Milan
6. Netherlands Northwest - Amsterdam
7. Spain Central - Madrid
8. Sweden Central - Stockholm
9. UAE Central - Abu Dhabi
10. UAE East - Dubai

### Amazon Web Services

1. EU - Ireland
2. EU - Frankfurt
3. EU - London
4. EU - Paris
5. US East - Ohio
6. US East - N. Virginia
7. US West - N. California
8. US West - Oregon
9. Canada - Central
10. Asia Pacific - Tokyo
11. Asia Pacific - Seoul
12. Asia Pacific - Singapore
13. Asia Pacific - Sydney
14. Asia Pacific - Mumbai
15. South America - Sao Paulo

### Microsoft Azure

1. Germany West Central
2. Australia Central
3. Canada East
4. Central India
5. Central US
6. East US
7. Japan East
8. North Europe
9. South Central Us
10. UAE North
11. West Europe
12. West US
13. Sweden Central

### Google Cloud Platform

1. Belgium
2. Zurich

{% hint style="success" %}
To request private IP for your Loadium account, you can [contact us here](https://loadium.com/contact-us/).
{% endhint %}


# Send Email

Guide for using send email feature

It is possible to be notified about the status of your tests using Loadium’s ‘Send Email’ feature. This option is located in the JMeter Settings section on the New Test page.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fbth6xW6clxD5hT2Qiq0K%2Fimage.png?alt=media&amp;token=3ad884e0-c1b7-4990-a58b-e8a1a147a1e5" alt=""><figcaption></figcaption></figure>

After uploading your test files and determining the parameters, you can decide on which cases you want to be notified via email.

#### The Cases:

* Test Started&#x20;
* Test Finished
* Test Failed
* Test Crashed
* Test Completed

You can choose among these specific cases. Besides your own email address, you can add different email addresses to this area, and let your team members know about test status.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fa0TXkWLMk03kgcOUfvWn%2Fimage.png?alt=media&amp;token=4af80ce8-32af-478f-9f1b-4841237fabbd" alt=""><figcaption></figcaption></figure>

As shown above, you can follow these steps;

1. Turn on the Send Email button,
2. Add an email address,
3. Select one or more rule labels and click on the ‘Add’ button.

You can add email addresses one by one and edit them later. You can delete or update them by changing the rule labels in line with your needs.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F31wzIqI8vrf8wN7iQrFY%2FEkran%20Resmi%202025-11-30%2017.53.12.png?alt=media&amp;token=1c497041-c956-4f31-8961-c90a2c52981e" alt=""><figcaption></figcaption></figure>

Please [contact us](https://loadium.com/contact-us), if you have any questions or recommendations.


# Send Email

Guide for using send email feature

{% embed url="<https://www.youtube.com/watch?v=qik7PgLMWZY>" %}

It is possible to be notified about the status of your tests using Loadium’s ‘Send Email’ feature. This option is located in the Advanced Settings section on the Create page.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FBrO8iZwiTyQ9mbH3sVK2%2Fimage.png?alt=media&amp;token=39e3cc50-b8b6-4848-868b-8ed9d26920ad" alt=""><figcaption></figcaption></figure>

After uploading your test files and determining the parameters, you can decide on which cases you want to be notified via email.

#### The Cases:

* Test Started&#x20;
* Test Finished
* Test Failed
* Test Crashed
* Test Completed

You can choose among these specific cases. Besides your own email address, you can add different email addresses to this area, and let your team members know about test status.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F1Fmhzy1OeVaWOWKe40EV%2Fimage.png?alt=media&amp;token=3de75a2d-bba6-4f30-9c27-14a752e11a20" alt="" width="563"><figcaption></figcaption></figure>

As shown above, you can follow these steps;

1. Turn on the Send Email button,
2. Add an email address,
3. Select one or more rule labels and click on the ‘Add’ button.

You can add email addresses one by one and edit them later. You can delete or update them by changing the rule labels in line with your needs.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FzPOb2nqiCsZ6FWSw3RG7%2FEkran%20Resmi%202026-06-03%2013.43.35.png?alt=media&amp;token=308b0209-d279-4ede-ada9-a2fbc0825e72" alt="" width="563"><figcaption></figcaption></figure>

Please [contact us](https://loadium.com/contact-us), if you have any questions or recommendations.


# DNS Override

You can manually configure DNS settings of specific domains. This feature is used in test scenarios to redirect specific hostnames to fixed IP addresses.

If you want DNS queries to be directed to specific IP addresses, enable DNS Override button below.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FlU1M0iTTog4BZbBwlT8J%2Fimage.png?alt=media&amp;token=694d49e5-1e67-4d5c-b7e3-20e448c019f7" alt="DNS Override Switch"><figcaption><p>DNS Override Switch</p></figcaption></figure>

You can direct DNS queries to specific addresses by typing the domain name in the Host name field and the IP value you want to match in the IP field.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FzdjJTi8fzb3VrmFGQ4mS%2Fimage.png?alt=media&amp;token=1d28fd1f-bd45-4909-a3dc-8c38b91ad344" alt=""><figcaption><p>Example DNS Configuration</p></figcaption></figure>

{% hint style="warning" %}
Make sure IP addresses and domain names are written correctly.
{% endhint %}

{% hint style="warning" %}
Carefully manage static records to ensure consistency across different test scenarios.
{% endhint %}

{% hint style="info" %}
Multiple DNS customizations can be added.

<p align="center"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FEvms9XcchCh0y8XMBFJY%2Fimage.png?alt=media&amp;token=c8fe0106-d603-4709-93a5-54a487140bfc" alt=""></p>
{% endhint %}


# DNS Override

{% embed url="<https://www.youtube.com/watch?v=kUdqtIePc7w>" %}

You can manually configure DNS settings of specific domains. This feature is used in test scenarios to redirect specific hostnames to fixed IP addresses.

If you want DNS queries to be directed to specific IP addresses, enable DNS Override button below.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FwnJuQ9656xv6I8rywnYy%2Fimage.png?alt=media&amp;token=0d838933-82fb-42b0-a20d-4b52c6cb4835" alt=""><figcaption></figcaption></figure>

You can direct DNS queries to specific addresses by typing the domain name in the Host name field and the IP value you want to match in the IP field.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F3zSIdyUxE9EeXM1PcY1h%2Fimage.png?alt=media&amp;token=5537afcc-7f63-4cd2-ba7c-20c5daadc15e" alt="" width="563"><figcaption></figcaption></figure>

{% hint style="warning" %}
Make sure IP addresses and domain names are written correctly.
{% endhint %}

{% hint style="warning" %}
Carefully manage static records to ensure consistency across different test scenarios.
{% endhint %}

{% hint style="info" %}
Multiple DNS customizations can be added.

<p align="center"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FATm7bdURbm85DvSWa5W6%2Fimage.png?alt=media&amp;token=e388853f-334d-4141-8f30-b3709a9d3a00" alt="" data-size="original"></p>
{% endhint %}


# TPS

What is , How to Use & Things to Pay Attention

## What is TPS?

Usually **T**ransaction **P**er **S**econd (TPS), which plays an important role in load testing, shows the number of processes completed in one second. In other words, it can be calculated based on how many transactions are executed over a certain duration of the test and then calculate it for a second.

TPS (Transaction per Second) and response times are related. The following relationship is between TPS, concurrent virtual users and response time:

&#x20;$$TPS = Virtual User / (response time + think time )$$

![Jmeter - Transaction Per Second](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-Ma7hJXwfE3DaYJ4jU4W%2F-Ma7i_Glq2m69r0PWSjc%2Fimage.png?alt=media\&token=0a3d2198-1d01-4598-8c46-25c1fce32963)

The graph below shows the average response time as 800ms.

If we calculate TPS, 5 / 0.8sec = 6.25 TPS (VirtualUser / Response Time = TPS)

![Jmeter Aggregate Report](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-Ma7hJXwfE3DaYJ4jU4W%2F-Ma7j5GVyg7757rzGaHE%2Fimage.png?alt=media\&token=c72092a4-3786-4c73-a901-fd3b8c7ecb5c)

## **How to Use TPS**

In this example we will use jmeter

Create -> JMeter Test -> Limit TPS

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FjKl3SHyBlrVFnMW58sXB%2Fimage.png?alt=media&amp;token=2d30394c-b7ef-42f6-960e-24149e1a0f4b" alt=""><figcaption></figcaption></figure>

We enter that value as much as we want to limit TPS.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FRa31wL3gq7bnOhRfVuGF%2Fimage.png?alt=media&amp;token=365188dd-9f1e-4d0a-9bc9-17148defbd2b" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
The value entered as the limit is multiplied by the number of engines used in the test. For example, since this test runs with 2 engines, a limit value of 2 will be reflected in the report as 2 × 2 = 4.

<p align="center"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F9ON6meVdIxq4kn5FazZL%2Fimage.png?alt=media&amp;token=330ff028-1b90-4c76-bb5b-36bcda5dc4d0" alt=""></p>
{% endhint %}

We run the test.

You can see the hit values in the "Hits & Errors" graph in the Overview in the test report.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FViKMTqMCBnY2x7mjeCxj%2Fimage.png?alt=media&amp;token=63502574-0375-4122-9972-045c37ed5717" alt=""><figcaption></figcaption></figure>

At the same time, we can see that the "Avg. Throughput" value in the "Overview" tab is limited to 3.39.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F1TaNIA3H66AAEftB2QwL%2Fimage.png?alt=media&amp;token=e423f5d4-8fba-4dda-8bc1-499aa0bd2126" alt=""><figcaption></figcaption></figure>

If we run the same test without TPS limit, we can see that the "Avg. Throughput" value is quite high, as seen below.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FbKnYHfVCBcWnkqxh53hR%2Fimage.png?alt=media&amp;token=68041085-831a-4e15-86ca-b8181f98132f" alt=""><figcaption></figcaption></figure>

In summary, TPS in the performance test cannot be used as a performance metric alone. Transaction on execution time can be analyzed by comparing TPS with average transaction response time.

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# TPS

What is , How to Use & Things to Pay Attention

## What is TPS?

Usually **T**ransaction **P**er **S**econd (TPS), which plays an important role in load testing, shows the number of processes completed in one second. In other words, it can be calculated based on how many transactions are executed over a certain duration of the test and then calculate it for a second.

TPS (Transaction per Second) and response times are related. The following relationship is between TPS, concurrent virtual users and response time:

&#x20;$$TPS = Virtual User / (response time + think time )$$

![Jmeter - Transaction Per Second](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-Ma7hJXwfE3DaYJ4jU4W%2F-Ma7i_Glq2m69r0PWSjc%2Fimage.png?alt=media\&token=0a3d2198-1d01-4598-8c46-25c1fce32963)

The graph below shows the average response time as 800ms.

If we calculate TPS, 5 / 0.8sec = 6.25 TPS (VirtualUser / Response Time = TPS)

![Jmeter Aggregate Report](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-Ma7hJXwfE3DaYJ4jU4W%2F-Ma7j5GVyg7757rzGaHE%2Fimage.png?alt=media\&token=c72092a4-3786-4c73-a901-fd3b8c7ecb5c)

## **How to Use TPS**

In this example we will use jmeter

Create -> JMeter Test -> Limit TPS

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FsPWtMkODLz1mnMKA62L0%2Fimage.png?alt=media&amp;token=b4e10944-242d-4edc-8183-59a946a9ebd9" alt=""><figcaption></figcaption></figure>

We enter that value as much as we want to limit TPS.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FDLP4GSo84uB3ooe16Cdt%2Fimage.png?alt=media&amp;token=e83dbc4f-58f2-4fa6-ba91-61f9102bb443" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
The value entered as the limit is multiplied by the number of engines used in the test. For example, since this test runs with 2 engines, a limit value of 2 will be reflected in the report as 2 × 2 = 4.

<p align="center"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fx4kQlUTSniIMtEON0EEl%2Fimage.png?alt=media&amp;token=ab4a95e9-00d6-4d20-a84a-2fc36da3d9a9" alt="" data-size="original"></p>
{% endhint %}

We run the test.

You can see the hit values in the "Throughput Over Time" graph in the Overview in the test report.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FjUgpUTQNuFfMQMxTTGb8%2Fimage.png?alt=media&amp;token=f80db04c-7f16-48b3-ac7c-a6a18056bf51" alt=""><figcaption></figcaption></figure>

At the same time, we can see that the "Avg. Throughput" value in the "Overview" tab is limited to 333.05 RPS.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F4YueOJ8D05wXCxVXiwb6%2Fkinesistest_edited_values.png?alt=media&amp;token=5ca178cc-30a9-42be-b829-7134a91cd6d3" alt=""><figcaption></figcaption></figure>

If we run the same test without TPS limit, we can see that the "Avg. Throughput" value is quite high, as seen below.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F8mOksjphYghKAVDQGmoy%2FChatGPT%20Image%2016%20Haz%202026%2008_55_36.png?alt=media&amp;token=0b1f176c-3a8e-4551-ae71-333aa51ff70e" alt=""><figcaption></figcaption></figure>

In summary, TPS in the performance test cannot be used as a performance metric alone. Transaction on execution time can be analyzed by comparing TPS with average transaction response time.

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# Network Type

What is , How to Use & Things to Pay Attention

Many people nowadays connect to the internet with their cell phones. Due to this, load from mobile sites has increased and the performance of mobile sites has also increased depending on the fluctuations in the networks.&#x20;

Mobile device users access the internet through their own networks. Therefore, internet speeds will vary depending on their location. Sometimes, users have problems accessing web applications from their mobile devices. One of the reasons for this is the different network bandwidths.&#x20;

### What is Bandwidth?

Bandwidth refers to Data Traffic, Data Transfer Speed and Bandwidth can be defined as the instant capacity of your internet connection. Bandwidth is the measurement of data capacity in communication sources in byte/second or bit/second.&#x20;

### Network Type With Loadium&#x20;

We need to make sure that websites or mobile applications work on every condition without affecting the user experience with functional and non-functional aspects in different internet connection speeds.&#x20;

You can select multiple network types on Loadium.  First you have to create a new Test.&#x20;

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FbNQsmdYo2v2N8FZbiPZE%2Fimage.png?alt=media&amp;token=30a20b58-9ec0-4f88-8270-4bdc645b9ed3" alt=""><figcaption></figcaption></figure>

So you can create a realistic load with the different type of bandwidth usage. Don’t forget that this kind of configurations is very useful when it comes to testing Black Friday, Cyber Monday scenarios.&#x20;

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FY8PVCsyetH7aVKTgKWyE%2Fimage.png?alt=media&amp;token=593d9d3b-f070-4f2f-a754-1bc132a07529" alt=""><figcaption></figcaption></figure>

Cps(characters per second) values vary according to speed&#x20;

| Network Type   | Speed       | CPS      |
| -------------- | ----------- | -------- |
| Fast Ethernet  | 100 Mbit/s  | 12800000 |
| WIFI 802.11a/g | 54 Mbit/s   | 6912000  |
| ADSL2+         | 24 Mbit/s   | 3072000  |
| HSPA+          | 21 Mbp/s    | 2688000  |
| HSPA           | 14 Mbp/s    | 1843200  |
| ADSL2          | 12 Mbit/s   | 1536000  |
| Ethernet LAN   | 10 Mbit/s   | 1280000  |
| ADSL           | 8 Mbit/s    | 1024000  |

Enjoy load testing!

{% content-ref url="/pages/-MUSAunBwe2J09CIl1hu" %}
[JMeter Test](/create-test/jmeter-test)
{% endcontent-ref %}

{% content-ref url="/pages/-MUT6iOSA6kWcHdMz1am" %}
[Features](/about-loadium/features)
{% endcontent-ref %}

{% content-ref url="/pages/-MUSDT9m95VYzdFJ536o" %}
[Broken mention](broken://pages/-MUSDT9m95VYzdFJ536o)
{% endcontent-ref %}

{% content-ref url="/pages/-MUT5hLDUtoTsSYDaFkV" %}
[Pricing OLD](/about-loadium/pricingold)
{% endcontent-ref %}

{% content-ref url="/pages/2PGklWpGiOiqwXOfu1Eg" %}
[Dedicated IP](/test-settings/what-is-dedicated-ip)
{% endcontent-ref %}

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# Network Type

What is , How to Use & Things to Pay Attention

Many people nowadays connect to the internet with their cell phones. Due to this, load from mobile sites has increased and the performance of mobile sites has also increased depending on the fluctuations in the networks.&#x20;

Mobile device users access the internet through their own networks. Therefore, internet speeds will vary depending on their location. Sometimes, users have problems accessing web applications from their mobile devices. One of the reasons for this is the different network bandwidths.&#x20;

### What is Bandwidth?

Bandwidth refers to Data Traffic, Data Transfer Speed and Bandwidth can be defined as the instant capacity of your internet connection. Bandwidth is the measurement of data capacity in communication sources in byte/second or bit/second.&#x20;

### Network Type With Loadium&#x20;

We need to make sure that websites or mobile applications work on every condition without affecting the user experience with functional and non-functional aspects in different internet connection speeds.&#x20;

You can select multiple network types on Loadium.  First you have to create a new Test.&#x20;

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FTw6UraOmKftVoX794svQ%2Fimage.png?alt=media&amp;token=d493709b-f5f4-4f11-8e67-ad255324686e" alt=""><figcaption></figcaption></figure>

So you can create a realistic load with the different type of bandwidth usage. Don’t forget that this kind of configurations is very useful when it comes to testing Black Friday, Cyber Monday scenarios.&#x20;

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F6hClSMltYxP8quRwj6Qa%2Fimage.png?alt=media&amp;token=2a0f4832-9000-4a92-9c3e-762b02d61b9a" alt=""><figcaption></figcaption></figure>

Cps(characters per second) values vary according to speed&#x20;

| Network Type   | Speed       | CPS      |
| -------------- | ----------- | -------- |
| Fast Ethernet  | 100 Mbit/s  | 12800000 |
| WIFI 802.11a/g | 54 Mbit/s   | 6912000  |
| ADSL2+         | 24 Mbit/s   | 3072000  |
| HSPA+          | 21 Mbp/s    | 2688000  |
| HSPA           | 14 Mbp/s    | 1843200  |
| ADSL2          | 12 Mbit/s   | 1536000  |
| Ethernet LAN   | 10 Mbit/s   | 1280000  |
| ADSL           | 8 Mbit/s    | 1024000  |

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# Test Scheduling

Brief guide on how to schedule your tests

\
When it comes to test planning, test scheduling is one of the key items. It’s also important for [creating a robust test plan](https://loadium.com/blog/part-1-how-to-create-a-robust-test-plan) suitable for the Software Testing Life Cycle (STLC).<br>

Thanks to Loadium, you can easily create a test schedule for your tests in a few steps. In this article, you will learn how to create test schedule for your tests.<br>

1. In the test creating page (also in the test editing page) click on “Scheduling” tab.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F3Us62JlrCVphQesAN04U%2Fimage.png?alt=media&amp;token=bc26209e-01b4-431f-aea8-b895f0561834" alt=""><figcaption></figcaption></figure>

1. You can view the current scheduling plans of your test on Scheduling tab. Let’s click on “Add New Schedule” button to create a new scheduling plan.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FXGIRze7aqr1aG7L2rKEE%2Fimage.png?alt=media&amp;token=abbfcefb-843a-49a3-b428-0cbd37c21cf5" alt=""><figcaption><p>Test Scheduling</p></figcaption></figure>

On this screen, you can create a daily, weekly, monthly and custom schedule for your test.

4. In the “Weekly” tab, you need to select the days and time you want to run your test.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FCjZ0uSCnS15xRFgToHnG%2Fimage.png?alt=media&amp;token=6f0b8c5d-acf1-41ff-9cf3-dea549847d86" alt=""><figcaption><p>Weekly/Daily Test Schedule</p></figcaption></figure>

4. In the "Monthly" tab, you can choose which days of the month you want to run your test.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fx0KYU0sz7ipd4a97DUDF%2Fimage.png?alt=media&amp;token=afce4734-b353-4adc-b787-262ec73fa06a" alt=""><figcaption><p>Monthly Test Schedule</p></figcaption></figure>

4. You can create custom schedules by using Cron Expression.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FbGTVXCSmozXWvzdCXuKD%2Fimage.png?alt=media&amp;token=9dc06b49-cdd0-4efd-bade-4fa0f3dfd82d" alt=""><figcaption><p>Custom Test Schedule with Cron Expression</p></figcaption></figure>

4. Once you created the test schedule, you can enable, disable and delete the schedules you want.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FAdxw2SkUW3cKQMo4gaAy%2Fimage.png?alt=media&amp;token=d85ce270-ab7d-4f83-a33f-8f736167272c" alt=""><figcaption><p>Editing Schedules</p></figcaption></figure>

If you have further questions on test scheduling or any other features of Loadium, we are here to assist you. Contact us [here](https://loadium.com/contact-us)!

Happy Load Testing!


# Test Scheduling

Brief guide on how to schedule your tests

{% embed url="<https://www.youtube.com/watch?v=URgS80qUVf8>" %}

When it comes to test planning, test scheduling is one of the key items. It’s also important for [creating a robust test plan](https://loadium.com/blog/part-1-how-to-create-a-robust-test-plan) suitable for the Software Testing Life Cycle (STLC).<br>

Thanks to Loadium, you can easily create a test schedule for your tests in a few steps. In this article, you will learn how to create test schedule for your tests.<br>

1. In the test creating page (also in the test editing page) scroll down to “Scheduling & Criteria” tab.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FWyyvdnQi2zxZA1jsd77B%2Fimage.png?alt=media&amp;token=637320f3-ed4d-41af-8d08-b21b3ba94198" alt=""><figcaption></figcaption></figure>

2. You can view the current scheduling plans of your test on Scheduling tab. Let’s click on “Add Schedule” button to create a new scheduling plan.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FvC00gI5F2ES74zDeCokr%2Fimage.png?alt=media&amp;token=da4e0bdf-0809-46d5-b519-23bdf966c02d" alt=""><figcaption></figcaption></figure>

On this screen, you can create a daily, weekly, monthly and custom schedule for your test.

3. In the “Weekly” tab, you need to select the days and time you want to run your test.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F6OELBA0Q26g1FhWYeFkg%2Fimage.png?alt=media&amp;token=4aaffd46-a447-43d3-96e4-e4dc7bfe7875" alt="" width="549"><figcaption></figcaption></figure>

4. In the "Monthly" tab, you can choose which days of the month you want to run your test.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FYrrJhD7NmpHZpu4OjflU%2Fimage.png?alt=media&amp;token=c3c0a91b-88ed-42bb-85c1-a51b06e5b913" alt="" width="551"><figcaption></figcaption></figure>

5. You can create custom schedules by using Cron Expression.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FZjBjOOkE8otZ9a2i4UEP%2Fimage.png?alt=media&amp;token=46bf15b9-c70b-4d63-8856-a0ae67848cdc" alt="" width="548"><figcaption></figcaption></figure>

{% hint style="info" %}
For more information about Cron Expressions, click the "Cron Expression Help" button.

<p align="center"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FSL4F96o0WnuRN0aQMzad%2Fimage.png?alt=media&amp;token=15aeb761-634a-4e5b-8964-5a3839bfcc55" alt=""></p>
{% endhint %}

6. Once you created the test schedule, you can delete the schedules you want.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FWKQPz7l9j7wM4WprqCSk%2Fimage.png?alt=media&amp;token=032df240-6f4c-4671-b4da-982a48f8829d" alt=""><figcaption></figcaption></figure>

If you have further questions on test scheduling or any other features of Loadium, we are here to assist you. Contact us [here](https://loadium.com/contact-us)!


# JMeter Settings

Brief guide for JMeter Settings while creating JMeter Tests

When a JMeter script is executed, execution is done with some predefined configurations. You can use Advanced Settings Panel to override those configurations, which will change the default values set within `jmeter.properties` file. Furthermore, you can also define variables and change their values using these settings.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FRbgA0xlmTcaBSZBCE8lc%2Fimage.png?alt=media&amp;token=9181be20-a836-40a5-80a6-31eeb6e94f84" alt=""><figcaption></figcaption></figure>

## Variable Referencing

You can create references to your variables within your JMeter script. This allows you to easily manage your variables within the script, without needing re-upload the script everytime you want to make changes.

**1)**&#x59;ou can enter the reference name on the left column (var1), and enter the value on the right column (aaa):

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F5T7PzBZfaRSvTHbRcQKC%2Fimage.png?alt=media&amp;token=6b8e5588-96dd-49ba-bc2e-68841406cfa6" alt=""><figcaption></figcaption></figure>

**2)** Then you can capture the reference by using the annotation `${__P(var1)}`:

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fj3jwsDE09qc6zurNuSLf%2Fimage.png?alt=media\&token=7332434f-af55-4ca4-9f44-fab00d296336)

**3)** The given value in the right column will be used within the script.

Example result in the report page: ![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F2gXjYaDrHBTtRamemSLg%2Fimage.png?alt=media\&token=44880f31-6fc9-43c4-9bba-43806e154fa2)

{% hint style="info" %}
**Example Use Case:** Setting the target URL address as a variable (for test environment for example), and then changing that URL address by using Advanced Settings Panel.
{% endhint %}

{% hint style="info" %}
🙌🏻**Example:** If you want to change that JTL to save response headers, you need to set *JMeter.save.saveservice.responseHeaders* to true
{% endhint %}

You can also add additional command line parameters to your execution.&#x20;

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.

{% hint style="warning" %}
**Note:** Those values must be carefully selected as they might corrupt the test and its results.
{% endhint %}


# JMeter Settings

Brief guide for JMeter Settings while creating JMeter Tests

When a JMeter script is executed, execution is done with some predefined configurations. You can use JMeter Settings -> Advanced Settings Panel to override those configurations, which will change the default values set within `jmeter.properties` file. Furthermore, you can also define variables and change their values using these settings.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FUxLdp6TLO30nSX6HA6Sa%2Fimage.png?alt=media&amp;token=00597fe7-e806-44ba-9439-6902d399fcc3" alt=""><figcaption></figcaption></figure>

## Variable Referencing

You can create references to your variables within your JMeter script. This allows you to easily manage your variables within the script, without needing re-upload the script everytime you want to make changes.

**1)**&#x59;ou can enter the reference name on the left column (var1), and enter the value on the right column (example):

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FlNGrdOF4DaPup58PzQcE%2Fimage.png?alt=media&amp;token=d935cd67-07af-40a4-982b-f182f6569001" alt=""><figcaption></figcaption></figure>

**2)** Then you can capture the reference by using the annotation `${__P(var1)}`:

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fj3jwsDE09qc6zurNuSLf%2Fimage.png?alt=media\&token=7332434f-af55-4ca4-9f44-fab00d296336)

**3)** The given value in the right column will be used within the script.

Example result in the report page:&#x20;

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FDZcuVsWKUF3EuK3KGLE2%2FChatGPT%20Image%2016%20Haz%202026%2009_23_00.png?alt=media&amp;token=ad433c1b-29dd-4129-8d53-38e8c22d657c" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Example Use Case:** Setting the target URL address as a variable (for test environment for example), and then changing that URL address by using Advanced Settings Panel.
{% endhint %}

{% hint style="info" %}
🙌🏻**Example:** If you want to change that JTL to save response headers, you need to set *JMeter.save.saveservice.responseHeaders* to true
{% endhint %}

You can also add additional command line parameters to your execution.&#x20;

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.

{% hint style="warning" %}
**Note:** Those values must be carefully selected as they might corrupt the test and its results.
{% endhint %}


# Failure Criteria

Brief guide for Failure Criteria

### 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](https://wiki.loadium.com/test-settings/test-failure-settings).

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FPuJA8xtaFEl7OSJ1Q30Q%2Fimage.png?alt=media&amp;token=ab1b64e0-77ff-4f40-a7a5-d30e4dbf650b" alt=""><figcaption></figcaption></figure>

If you tick Ignore During Ramp-up, threshold will be ignored until the ramp-up period is finished (instead of the first minute)

Happy testing!


# Flexible Thread Scheduling

A guide for Flexible Thread in JMeter

There is a plug-in for JMeter that we can use to increase or decrease the number of threads at a scheduled time in JMeter tests.

The Ultimate Thread Group provides flexible thread scheduling to your test scenario. It allows you to create a scheduled thread with advanced configuration.

Available scenarios with the Ultimate Thread Group are as following:

* Multiple scheduled records can be defined
* Start Threads Count, Initial Delay, Startup Time and Hold Load Time can be defined separately for each record
* Scheduled load preview can be displayed on the chart

### **Step 1: Add Thread Group**

Test plan -> Add -> Threads (Users) -> jp\@gc – Ultimate Thread Group

![](https://loadium.com/wp-content/uploads/2020/04/Picture1.png)

#### 🙌🏻  **Example:**

* The test will start with 70 threads
* At the 20th second of the test, 200 threads will be reached by adding 130 threads with a 4 second ramp up.
* After working with 200 threads for 25 seconds, 130 threads will be closed.
* In the 60th second of the test, 150 threads will be reached by adding 80 threads with a 4 second ramp up.
* After working with 150 threads for 25 seconds, 80 threads will be closed.
* Continue with 70 threads until 2 minutes are completed.

![](https://loadium.com/wp-content/uploads/2020/04/Picture2.png)

To make it more understandable, we have marked the area that each record covers on the chart.

**Note**: *Threads are automatically closed when the given hold load time is complete. If there are threads that are not closed, there are thread blocking operations.*

### **Step 2: Basic Settings**

Required configurations on the “New Tests” screen for the JMeter test scenario using ultimate thread group:

* **Thread Count** value should be calculated and entered at the maximum thread number that will run simultaneously. For example: In the example above, max 200 threads will work in one engine at the same time.
* **Duration** value should be set according to the timeline in the ultimate thread group preview graphic. It’s not a problem that the time determined is more than the ultimate thread running time. Testing will end automatically when threads are finished.
* **Iteration** and **Ramp up Time** values are managed by the Ultimate thread group plug-in.
* The **Engine Count** value should be set accordingly as many as the number of engines requested.

#### ![](https://loadium.com/wp-content/uploads/2020/04/Picture3.png)

Thread group values in the Ultimate thread group are not updated with the interface. You must do the necessary thread group config in jmx. You can save and run the test.

Report resulting from the above test:

![](https://loadium.com/wp-content/uploads/2020/04/Screen-Shot-2020-04-24-at-18.22.47.png)

Enjoy load testing!

{% content-ref url="/pages/-MUSAunBwe2J09CIl1hu" %}
[JMeter Test](/create-test/jmeter-test)
{% endcontent-ref %}

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# File Output

A quick guide to output custom files from your test runs

Loadium allows you to generate custom files, download and access them in your JMeter tests using its "Custom Logging" feature.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FvXUc4NdQqZrQ1wi11pha%2Fimage.png?alt=media&amp;token=36e35e3e-5253-43f0-b948-dc1e828271eb" alt=""><figcaption></figcaption></figure>

You can use custom libraries (such as java.io.File) to generate files.

For example, we have a Groovy script for creating a `.txt` file for logging, as shown below:

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FYj4j0yJZPj3uLgRJa6v0%2Fimage.png?alt=media&amp;token=77599a0e-1e8f-4d26-a288-731b9a09d1f3" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Note: As mentioned above, output path of your custom file must be set as "useroutput/myFileName" in order to access your file.**
{% endhint %}

Run the test for which you want to get the file outputs and wait for the test to finish.

Once your test is complete, navigate to the **Actions** button in the top-right corner and select **Download Test Files** to download the main test folder.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FSWVEz5rTXGsHgCdyJSbF%2Fimage.png?alt=media&amp;token=c7282de6-d97f-46d3-b69e-bf619bbd0459" alt=""><figcaption></figcaption></figure>

Now you can access the output files of your test simply by unzipping specified output file.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FFLQOLmdEpBnPkto7jA8M%2Fimage.png?alt=media&amp;token=514120dc-77e0-4682-b664-387ad878831e" alt=""><figcaption></figcaption></figure>


# Azure DevOps Pipeline

A guide for Loadium’ s Azure DevOps Integration

Loadium can be executed via Azure DevOps Pipelines using the [Loadium Azure Pipeline Extension.](https://marketplace.visualstudio.com/items?itemName=Loadium.loadium-integrations)

### Installation

1. Go to link and Click “Get It Free” to install Loadium Extension.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FdOCii3tfU7Y0uUEphAfx%2FAzurewiki1.png?alt=media\&token=a1075c5c-6e3c-4f85-ae5a-d62d219a8c1f)

2\. Login to Azure DevOps Platform.

3\. Select your project.

4\. Navigate to **Pipelines -> Releases**

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FOFZw1E4Ig2RdUcbs9OaA%2Fazurewiki2.png?alt=media\&token=5e29d4b9-a2da-4ab6-b335-944268777e30)

Click on “New” and select “New Release Pipeline”.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FASgxsXxCdAebeJSFPHxC%2Fazurewiki3.png?alt=media\&token=289268bf-3a04-41c9-89f4-f3a3ffe0393f)

5\. On the “Select a template” screen, start with an “Empty Job” on the right top of the screen.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F99oAS98WAQDRENoFwiMm%2Fazurewiki4.png?alt=media\&token=38d52b7a-6d00-4841-b92d-de5b6fba3041)

6\. Navigate to “Tasks” page.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fz2qIbgcYhLTgBvHe7Vix%2Fazurewiki5.png?alt=media\&token=f804e1c8-6aec-480a-974e-fa4611e55023)

7\. Click on “ + “ button to Add a task to Agent Job.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Fdtj77WW5RLcOS2aE3BEb%2Fazurewiki6.png?alt=media\&token=d51cec47-81da-4d2e-97af-684bb8d2ad2d)

### How do I Configure Loadium Extension to Start Testing with Loadium?

1\. Follow the steps mentioned in the above section to install the Loadium Azure DevOps extension. If already done, please proceed to Step 2.

2\. On the **Add tasks** screen, search for Loadium and click the **Add** button.

3\. Enter **Test URL.** For the Test URL, login to the Loadium account. Click on the **Account Page.** Go to the API KEY tab.

4.Click “ Create Role “ to create a role.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FC5vQrAAem7gn3cNm6Tz6%2Fazurewiki7.png?alt=media\&token=d0ce371c-e0c5-4482-8cb5-7ee2a08a5433)

**\*\*You have to add TEST\_START role to start test on Loadium.**

5\. Click to button ‘Create Api Key’.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F52LodEHbQIYt9XXz2Pkc%2Fazurewiki8.png?alt=media\&token=94ddbfb0-f343-41e6-983d-003716af6c67)

6\. Copy Access Key and Secret Key to Extension

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FgbDeyvNF8Rl66mLk7kjx%2Fazurewiki9.png?alt=media\&token=a481f87b-177d-4693-92da-93f4abdc6a49)

7\. Click on the link of the test key you want and copy the URL after the **“ detail/** “ and paste Extension.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FKKKKf6hdJcB9lqYm0uBc%2Fazurewiki10.png?alt=media\&token=9e16ba1e-d21e-4eb1-a723-df9726c3c6df)

8\. Save the Extension.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FK7WyA9bAHjqX6qe16Q8H%2Fazurewiki11.png?alt=media\&token=b5e739be-bf02-478a-b876-095314d66722)

9.Run the pipeline and you will see in the Job.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F6Saf5ybyhwd2ldczrcWv%2Fazurewiki12.png?alt=media\&token=c7e08c21-7ff0-46f7-994e-0a95e3839c19)

If you have further questions, do not hesitate to contact Loadium Technical Support Team over chatbot.&#x20;

Happy Load Testing!


# Jenkins Load Testing with Loadium

### What is Jenkins?

[Jenkins](https://jenkins.io/) is an open source web based continuous integration tool. It support operation like triggering automated tests, starting a build or making a commit to a version control system.

You can install Loadium’s Jenkins plugin from Jenkins market place. You need to navigate “**Manage Jenkins**” menu then “**Manage Plugins**“.  You need to search **Loadium** keyword in the **Available** tab.

After the installation, you need to add your Loadium credentials inside Jenkins.

### **How to Add Loadium Credentials to Jenkins**

* Open the Credentials menu in Jenkins’ welcome screen
* Navigate to “Global” credentials in that screen
* Select “Add Credential” link

Credentials page will ask you to fill some fields.

![](https://loadium.com/wp-content/uploads/2018/01/credentials-600x189.png)

* **ID:** Choose something differentiating than the other credentials stored in Jenkins
* **Description:** Description of the plugin, you can give anything
* **Username:** Your Loadium account’s username
* **Password:** Your Loadium account’s password

Fill out those fields and click Test Connection button to validate your credentials. In case it’s a success, you’ll receive “**Connection to Loadium Server is succesfull**” message. If not, you’ll be warned with an error message.

### **How to Add Loadium Plugin to Your CI Pipeline**

* Navigate to an Item in Jenkins main page to enable Loadium’s plugin.
* In Build Step, you’ll see “**Loadium Performance Test Runner Plugin**” option.
* Choose this one.

![](https://loadium.com/wp-content/uploads/2018/01/plugin-jenkins-600x144.png)

* Choose the credential that you created previously.
* Then plugin will fetch the projects you created in Loadium and fill “Loadium Test” combobox.
* Select the desired test to run and save your Jenkins Item.

Right now, you will be able to run any performance test in Loadium in your CI/CD pipeline.


# Microsoft Teams Integration

## Overview

Microsoft Teams integration allows you to receive real-time notifications about various Loadium events directly in your Teams channels. This integration helps teams stay informed about important test activities and system events without leaving their communication platform.

## Setting Up Teams Webhook

### 1. Choose Teams Channel:

* Open the New Microsoft Teams client
* Select "Teams" from the left sidebar
* Locate your desired channel
* Click "•••" (More options) next to the channel name
* Select "Manage channel"

### 2. Configure Webhook:

* Select "Edit connectors"
* Find and configure "Incoming Webhooks"
* Add the webhook to your channel (or configure if already exists)
* Copy the generated webhook URL to use in Loadium

For detailed information about Teams webhook setup, refer to [Microsoft Teams official documentation](https://learn.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook?tabs=newteams%2Cdotnet).

{% hint style="info" %}
**Note:** The setup process may vary slightly based on your Teams version and permissions. If you encounter any issues, please consult your Teams administrator or the Microsoft documentation.
{% endhint %}

### 3. Connect to Loadium:

In Loadium, navigate to **Account** -> **Integrations** -> **Communication**

Click the "+" button under Teams card

Enter a Profile Name for your integration

Paste the Microsoft Teams Webhook URL from your Teams channel.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FaYIxtQRCBSIzjpsDA4Eu%2Fimage.png?alt=media&amp;token=38a50675-930e-497d-b202-87d5a254f1e4" alt=""><figcaption></figcaption></figure>

## Notification Events

You can configure the following event types for notifications:

* **User Added:** Receive notifications when new users are added to your Loadium account
* **Test Run Started:** Get notified when a load test begins execution
* **Test Run Completed:** Receive alerts when a load test finishes
* **Usage Limit Nearing:** Get warnings when you're approaching your usage limits
* **Dedicated IPs Expiring:** Receive notifications about soon-to-expire dedicated IP addresses

{% hint style="info" %}
**Important:** By default, webhook channel notifications may be silenced intermittently. To ensure you receive timely updates, please follow these steps to enable the appropriate notification settings
{% endhint %}


# Microsoft Teams Integration

## Overview

Microsoft Teams integration allows you to receive real-time notifications about various Loadium events directly in your Teams channels. This integration helps teams stay informed about important test activities and system events without leaving their communication platform.

## Setting Up Teams Webhook

### 1. Choose Teams Channel:

* Open the New Microsoft Teams client
* Select "Teams" from the left sidebar
* Locate your desired channel
* Click "•••" (More options) next to the channel name
* Select "Manage channel"

### 2. Configure Webhook:

* Select "Edit connectors"
* Find and configure "Incoming Webhooks"
* Add the webhook to your channel (or configure if already exists)
* Copy the generated webhook URL to use in Loadium

For detailed information about Teams webhook setup, refer to [Microsoft Teams official documentation](https://learn.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook?tabs=newteams%2Cdotnet).

{% hint style="info" %}
**Note:** The setup process may vary slightly based on your Teams version and permissions. If you encounter any issues, please consult your Teams administrator or the Microsoft documentation.
{% endhint %}

### 3. Connect to Loadium:

In Loadium, navigate to **Integrations** tab on the Dasboard page.

Click the "Configure" button under Teams card

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F5uba5FVvEcZ3qeIl2IHD%2Fimage.png?alt=media&amp;token=2e823c72-607b-40af-9b1a-0cb7e2eb7aa2" alt="" width="563"><figcaption></figcaption></figure>

Enter a Profile Name for your integration

Paste the Microsoft Teams Webhook URL from your Teams channel.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FkkUbe7mIUYXbRD1PTqHb%2Fimage.png?alt=media&amp;token=e2dca4b8-8b01-41c4-bd59-dcf529f84e96" alt="" width="551"><figcaption></figcaption></figure>

## Notification Events

You can configure the following event types for notifications:

* **User Added:** Receive notifications when new users are added to your Loadium account
* **Test Run Started:** Get notified when a load test begins execution
* **Test Run Completed:** Receive alerts when a load test finishes
* **Usage Limit Nearing:** Get warnings when you're approaching your usage limits
* **Dedicated IPs Expiring:** Receive notifications about soon-to-expire dedicated IP addresses
* **User Removed:** Receive alert when the users removed.

{% hint style="info" %}
**Important:** By default, webhook channel notifications may be silenced intermittently. To ensure you receive timely updates, please follow these steps to enable the appropriate notification settings
{% endhint %}


# New Relic Integration

A guide for Loadium’ s New Relic Integration

New Relic is a company which  offers performance management solutions, enabling developers to realize and fix problems in real time. With this development, through New Relic integration, developers can easily monitor their application performance while load testing it. It also allows developers to evaluate the end-user experience and the application system KPI using single dashboard.

Now, you can diagnose performance related problem, apply a fix and repeat this cycle with ease. This data also accessible even after the test has ended.

## Setting Up Loadium New Relic Integration

### Creating Profile

* While **creating a new test** or **editing an existing one**, you’ll find New Relic option under APM Integration tab.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MaCp8SrDv4BpzyjMGFT%2F-MaCr560S-Hcy19aWSj0%2Fnewrelic1.png?alt=media\&token=2fc732aa-f1da-4d45-b64b-07151cf27b63)

{% hint style="info" %}
**Note** : Filling all the fields under ‘Basic Settings’ Tab is needed to run test after APM integration.
{% endhint %}

* To create a new profile or to choose already existing profile, click **New Relic APM** button then click '**Create a new New Relic Profile'** button to create new one and paste your New Relic data sharing API Key into the relevant field also give it a title for future reference. Then click next.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MaCp8SrDv4BpzyjMGFT%2F-MaCrGC_xgD2zfi9z0n-%2Fimage.png?alt=media\&token=878696da-1305-4a54-90aa-307d9cd1f354)

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MaDWvbfYViexhWQ0rbK%2F-MaD_wMCMXl4GdEUXDrv%2Fimage.png?alt=media\&token=4fdac6f4-d0f8-4238-9f7d-9f1ad07ebbad)

* There are 2 options for entity type.&#x20;
  * Applications are for built-in functions\&metrics of New Relic
  * Components are for custom-made functions\&metrics

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MaCp8SrDv4BpzyjMGFT%2F-MaCrZyOkbG2ONubxPUT%2Fimage.png?alt=media\&token=c1471f7b-3442-4e50-bfe5-70698dee9b77)

* And you need to choose 'Entities' and 'Metrics' that you already added to your New Relic account.&#x20;

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MaCp8SrDv4BpzyjMGFT%2F-MaD2x_sppBoqYw740Dj%2Fimage.png?alt=media\&token=5800ee0c-7345-413f-9a30-35b6c3edb302)

* After filling all desired fields, you can show summary of your New Relic APM integration. Later, we can see integrated APM under the Integrated APM’s section.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MaDWvbfYViexhWQ0rbK%2F-MaD_FG3nKCCeL0ABw4Q%2Fimage.png?alt=media\&token=fa06d1be-9501-456a-b092-5b06a458b27f)

### Managing Profiles

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MaCp8SrDv4BpzyjMGFT%2F-MaD4HdbQ267taSXe1f2%2Fnewrelic2.png?alt=media\&token=f8d1fa51-7b85-462a-a552-b385634e620a)

* '1' numbered area shows us the integrated APMs under the Integrated APM’s section.
* '2' numbered button is necessary to assign this APM to the test which you already arranged. After clicking ‘Save Test’ you can now start the test.
* '3' numbered button is useful for removing any new relic from selected test.

{% hint style="info" %}
**Note:** There are 2 different ways to delete APM;

* First one is removing the New Relic from the test.
* Second one is deleting this New Relic globally.
  {% endhint %}

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MaCp8SrDv4BpzyjMGFT%2F-MaD5-wKUcRDFRPIrZdt%2Fimage.png?alt=media\&token=c7ebeea7-8377-4a7b-add2-69e6f4db1e52)

* '4' numbered button is for Edit or Delete APM globally. With this option, we can either edit the name and API Key or delete the new relic globally.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MaD5WWZpR7CIVslED-m%2F-MaD5hpFrCsjUqfeMjVp%2Fimage.png?alt=media\&token=ed6b8769-ca4d-48be-8313-afa9ab1a2e7c)

* '5' numbered button  we can edit both New Relic API Key and Selected Metrics.

## Usage During Test

Afterwards, Run Test will direct you to report page. From the report page, you can go to New Relic tab from the left-side menu as shown.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MaD5WWZpR7CIVslED-m%2F-MaD7zoQqjVAWXi47mXa%2Fimage.png?alt=media\&token=62b04a08-d8a1-4ef1-91eb-9d95289e6577)

At this page we can see our entity types and metrics that we selected previously. And by clicking the checkbox near by metrics, we can start monitoring the data graphically.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MaD5WWZpR7CIVslED-m%2F-MaDLtCyh2ZDpqFodSrO%2Fimage.png?alt=media\&token=90a1b76b-141d-4164-aa65-c0d93e223676)

Happy testing!

{% content-ref url="/pages/-MUQ5cTQeTV9Yioro2zC" %}
[Getting Started with Loadium](/getting-started)
{% endcontent-ref %}

{% content-ref url="/pages/-MUSA3fXQEXUc1CFlYx1" %}
[Broken mention](broken://pages/-MUSA3fXQEXUc1CFlYx1)
{% endcontent-ref %}

{% content-ref url="/pages/-MUSAoEB7WKUP6OKgxHU" %}
[Quick Start](/creating-your-first-test)
{% endcontent-ref %}

{% content-ref url="/pages/-MUSA62srAvcUJsdKFVu" %}
[Broken mention](broken://pages/-MUSA62srAvcUJsdKFVu)
{% endcontent-ref %}

{% content-ref url="/pages/-MUSDT9m95VYzdFJ536o" %}
[Broken mention](broken://pages/-MUSDT9m95VYzdFJ536o)
{% endcontent-ref %}

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# AppDynamics Integration

A guide for Loadium’ s AppDynamics Integration

AppDynamics is a software analytics company which offers performance management solutions enabling developers to diagnose and fix application performance problems in real time.

Using Loadium’s integration with AppDynamics, developers can easily monitor their application performance levels while load testing it. Loadium users can now easily incorporate key performance metrics from AppDynamics into their test scenarios to more quickly identify hot spots in the system under test.&#x20;

Not only are you able to view your application monitoring data alongside your user-experience and performance data, but this data is accessible for you even after the test has ended.

## **Setting Up Loadium App Dynamics Integration**

### **Creating Profile**

While **creating a new test** or **editing an existing one**, you’ll find AppDynamics option under APM Integration tab.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MaDMLU_wrPVf1Vay1w_%2F-MaDNL8Xzwrr9GVAFZvJ%2Fimage.png?alt=media\&token=ae6c0072-8635-4244-8f17-495bcdb52b21)

{% hint style="info" %}
**Note** : Filling all the fields under 'Basic Settings' Tab is needed to run test after APM integration.
{% endhint %}

Button number '2' allows you to select an existing profile or create new one.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MaC_6_plCG_9u4iyV8i%2F-MaCbNeTBAF4N8NDNsCJ%2Fimage.png?alt=media\&token=01b49b1d-b116-4e0a-8a73-071759c8da43)

If you need a new App Dynamics profile, first, you will have to integrate your AppDynamics account's details by entering the required details.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MaC_6_plCG_9u4iyV8i%2F-MaCbUQcNtCOplcpUvUo%2Fimage.png?alt=media\&token=91295ce8-1929-41c0-b5ca-0f1669e37593)

Second, you can select proper metrics.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MaC_6_plCG_9u4iyV8i%2F-MaCbti8O5nhwe-p9f49%2Fimage.png?alt=media\&token=b847bc57-437f-4b91-8e86-d102f9ccecc1)

## Usage During Test

Afterwards, Run Test will direct you to report page. From the report page you can go to App Dynamics tab as shown.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MaDMLU_wrPVf1Vay1w_%2F-MaDODEPe2LUApaFuaZZ%2Fimage.png?alt=media\&token=2f2909f3-60ef-4724-8b45-b1e5926283e8)

At this page we can see our metrics that we selected previously. By clicking the checkbox near by metrics, we can start monitoring the data graphically.

Enjoy testing!

{% content-ref url="/pages/-MUSAoEB7WKUP6OKgxHU" %}
[Quick Start](/creating-your-first-test)
{% endcontent-ref %}

{% content-ref url="/pages/-MUSAunBwe2J09CIl1hu" %}
[JMeter Test](/create-test/jmeter-test)
{% endcontent-ref %}

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# TeamCity Integration

### What is TeamCity?

TeamCity is a Java-based build management and continuous integration server from JetBrains. You can use TeamCity to trigger your Load Testing process by using Loadium’s plugin.

### **Installation Steps**

* You can install Loadium’s TeamCity plugin from Jetbrains market place. Follow this [link](https://plugins.jetbrains.com/plugin/10487-loadium-jmeter-runner) to download plugin.
* After downloading Loadium’s plugin zip file, open your TeamCity administration panel. Go to “Plugin List” menu and install downloaded plugin by uploading it into your TeamCity server.

![](https://loadium.com/wp-content/uploads/2018/03/Screen-Shot-2018-04-09-at-12.09.08-600x328.png)

### How to Use Integration?

* There’s an Integration section under Administration page. You’ll find Loadium under it after a successful installation. Select Loadium plugin.
* Enter your Loadium credentials and save them. Click “Test Connection” button to validate your credentials.

![](https://loadium.com/wp-content/uploads/2018/03/Screen-Shot-2018-04-09-at-12.09.20-600x260.png)

* Go to the project’s “Build Settings” where you want to execute performance test. Add a  new Build Step. Choose Loadium as Runner Type. You can give a free text as step name.
* In case your credentials are ok, your Loadium project will be loaded under “Loadium Test List” combobox.
* Click Save to save your Build Step.

![](https://loadium.com/wp-content/uploads/2018/03/select-project-600x344.png)

* Run your test and see the test runs like a charm. You can take a logs if you want and watch the execution status.

![](https://loadium.com/wp-content/uploads/2018/03/test-run-600x246.png)

Enjoy testing!

{% content-ref url="/pages/-MUT6iOSA6kWcHdMz1am" %}
[Features](/about-loadium/features)
{% endcontent-ref %}

{% content-ref url="/pages/-MUQ5cTQeTV9Yioro2zC" %}
[Getting Started with Loadium](/getting-started)
{% endcontent-ref %}

{% content-ref url="/pages/MgN0OAuKVZtI6DuNx1bd" %}
[Pricing](/about-loadium/pricing)
{% endcontent-ref %}

{% content-ref url="/pages/-MdzgKH5SWu9wNDRJLcG" %}
[Gatling Corner](/gatling-corner/introduction-to-gatling)
{% endcontent-ref %}

{% content-ref url="/pages/-MUSAunBwe2J09CIl1hu" %}
[JMeter Test](/create-test/jmeter-test)
{% endcontent-ref %}

{% content-ref url="/pages/uADtdH7q8HM7HPzTdDZC" %}
[Locust Test](/create-test/locust-test)
{% endcontent-ref %}

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# Built-in JMeter Functions

JMeter allows you to conduct [performance tests](https://loadium.com/blog/in-depth-analysis-throughput-controller-in-jmeter-and-splitting-threads-to-requests/) on your application by using any type of request. During these tests, we sometimes need to create new data, timestamp or maybe manipulate a response.

For these purposes, [JMeter](https://loadium.com/blog/handling-error-messages-of-jmeter-tests-in-loadium/) provides built-in functions easily adaptable to your tests. Let’s explore the ones that you might need during a test.

## Random String

In order to create a random string in [JMeter](https://loadium.com/blog/local-network-simulation-on-jmeter/) there are a few different ways.

Examples:

**${\_\_RandomString(5)}** This will create a random string, It can be readable or not.

**${\_\_RandomString(5,ABCD123)}** This will create a random string containing only the alphanumeric values that you provide.

**${\_\_RandomString(5,,var)}** This will create a random string, then assign the value to a variable. So you will be able to use that variable in another script by using ${var} expression. Second parameter for RandomString function is optional.

## Random Number

In order to create a random string in [JMeter](https://loadium.com/blog/jmeter-timers/) there are a few different ways.

Examples:

**${\_\_Random(5)}** This will create a random number with defined length.

**${\_\_Random(5,var)}** This will create a random number with defined length, then assign the value to a variable. So you will be able to use that variable in another script by using ${var} expression.

## UUID

A **universally unique identifier** (**UUID**) is a [128-bit](https://en.wikipedia.org/wiki/128-bit) number used to identify information in computer systems. In order to create one in JMeter, you should us \_\_UUID() functionality. UUID is almost unique as its length and random

**${UUID()}**  and you will have a value like that 0c7dba7e-7587-46d0-88f2-dfe577b88432

## Split String

In case you need to split a String with a delimiter, you can use ${SPLIT()} functionality.

Just create a BeanShell Processor where you would want the split operation to happen. Then add this **${\_\_split(${param},splitParam,|)}** in the beanshell script field.

1st Parameter: Parameter that you would want to split.

2nd Parameter: After the split, splitted values will be assigned to this variable. You need to define index when using it.

3rd Parameter: Delimiter that you have in the String.

Example:

Param = canberk|akduygu|loadium

splitParam\_1 = canberk

splitParam\_2 = akduygu

splitParam\_3 = loadium

## Time

You can use Time functionality to get current time with different formats. You can specify a date time format to format time value.

${\_\_time(dd/MM/yyyy,)} will get you 02/12/2018

${\_\_time(dd-mmm-yyyy hh:mm,)} will get you 02-12-2018 12:22

${\_\_time()} will get you the timestamp like 1598723200239

There are many other functions that you would use with [JMeter](https://loadium.com/blog/tag/jmeter/) but in case those functions are not sufficient for you, [JavaScript](https://loadium.com/blog/handling-error-messages-of-jmeter-tests-in-loadium/) is here to help you.

## JavaScript

You can use \_\_javaScript() function and pass any javascript code as a parameter and do extreme stuff also.

**Examples:**

Create a number between 0-10

**${\_\_javaScript(Math.floor(Math.random() \* 10))}**

Compare a variable to a hardcoded string then storing true/false result to a variable.

**${\_\_javaScript(“${username}”==”canberk”,found)}**


# How to Install JMeter Plugins

JMeter has many plugins that come in handy from time to time for either developing a script or viewing results. It is an easy and brief process to install and start using plugins in your script. Let's take a look.

## **JMeter Plugins Manager**

The first thing to start with is JMeter Plugins Manager, which helps you to install, upgrade and uninstall your Plugins without any confusing steps.

With the help of the [Plugins](https://loadium.com/blog/performance-test-with-selenium/) Manager, now you don’t have to install various plugins manually. The Plugins Manager does it itself without confusing you with installation files and etc.

### **How to install?**

1\) Download the [JMeter Plugins Manager](https://jmeter-plugins.org/install/Install/) JAR file and then put it into JMeter’s **lib/ext** directory.

2\) Start JMeter and go to “Options” menu to access the Plugins Manager.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-McmlHhIWz7cOvvcuHKn%2F-McmnCci0uJwgESyRjQ7%2Fimage.png?alt=media\&token=ea14fa60-9aad-49e0-b07a-ea1deaebee7b)

3\) And here it is, [JMeter](https://loadium.com/blog/handling-error-messages-of-jmeter-tests-in-loadium/) Plugins Manager. From this dialogue you may install, uninstall or upgrade your Plugins only by clicking the check-boxes. The plugins which need upgrades will appear in *italic* mode. If you are done with your install, uninstall or upgrade, you just need to click **Apply Changes and Restart JMeter**.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-McmlHhIWz7cOvvcuHKn%2F-Mcmna_-daPjIGUx05wS%2Fimage.png?alt=media\&token=7fb94408-2804-40e3-9d00-790634dc9acc)


# Record and Play Load Testing With Jmeter in 5 Steps

While Apache JMeter allows you to create a [load test from scratch](https://loadium.com/blog/introduction-to-jmeter/), it also gives you the opportunity to Record and Playback load test scenarios for your web or mobile applications. Recording [performance test](https://loadium.com/blog/is-your-business-ready-for-the-peak-season/) scenarios are very useful when it comes to web or mobile testing. Websites and mobile applications make many requests varying from initial server to 3rd party application like analytics sites etc. Therefore implementing those requests from scratch may not be the best idea. In those cases, we recommend you to use the Recording module of JMeter.

JMeter has a special module for that purpose. It’s called **HTTP Test Script Recorder**. This module works as a proxy on the host and port that you provide and listen to the [HTTP requests](https://loadium.com/blog/4-things-you-should-know-about-http-requests/). Then creates **HTTP Sampler** for recorded requests.

## How to Configure HTTP Test Script Recorder

### Step 1

Go to Non-Test Elements and select the module.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MciBPPedJjsN-i_Vs-0%2F-MciBjeJW2LgBAC38wT4%2Fimage.png?alt=media\&token=a7f34cb0-5ebc-409b-9988-6b9f51469f8f)

In that screen, you will see many configuration elements. Some of them are mandatory, some are not.

{% hint style="info" %}
Port is mandatory. This port number will also be used in your browser. So select an empty port. [JMeter](https://loadium.com/blog/handling-error-messages-of-jmeter-tests-in-loadium/) proxy is not ready with basic configuration.
{% endhint %}

### Step 2

Others configuration items are optional. But there is on item, you should configure from our experience. That’s the **Grouping** section. During script recording, we’ll simulate an end to end test. Therefore many pages, many jpeg or CSS files will be captured. But we need to distinguish which request is made on which page or application module so that during execution, JMeter will create readable reports.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MciBPPedJjsN-i_Vs-0%2F-MciBxgfo0yuu-1dW7zm%2Fimage.png?alt=media\&token=1267aa29-545e-4fed-863a-7e04b0e133c6)

There are 5 choices:

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MciBPPedJjsN-i_Vs-0%2F-MciC1kkLcUjUsS2MWO0%2Fimage.png?alt=media\&token=1a777ba8-4d7f-4a88-9e0b-a460efba0f44)

* **1) Do not group sampler:** Don’t use this one for your sake. Every request will be listed on the same label and it’s not easy to distinguish which request belongs to which action you made during test recording.
* **2) Add a Separator Between Each Group:** A basic separator will be added between every action you made during recording.
* **3) Put Each group in a new Controller:** This will also record your test scenario according to your actions and create a [Controller](https://loadium.com/blog/module-controller/) for each action you made.
* **4) Put each group in a New Transaction Controller:** That’s basically the same as the 3rd option but there’s a slight difference. Transaction Controller lets you aggregate the results under one label. The [controller](https://loadium.com/blog/in-depth-analysis-throughput-controller-in-jmeter-and-splitting-threads-to-requests/) doesn’t.
* **5) Store 1st Sampler of each group only:** This one will save only the first request of every action you made. That might not be the best solution as we mostly want to capture all requests.

### Step 3

There is another config that you might want to do. That’s “Which file to be excluded during recording?”.

Add file extensions that you don’t want to capture to **URL Patterns to Exclude**.

Regular expression pattern is .\*\\.extensionName.\*

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MciBPPedJjsN-i_Vs-0%2F-MciCC5My_QXUVMJIvJe%2Fimage.png?alt=media\&token=a980a9b3-b4db-4195-a2ca-d39a16342d82)

The reason we do this is that those files are mostly dynamic and they are likely to change in near future. This about a newspaper website, images are changing every minute. So there’s no need to capture those things. We are able to call dynamic content by making a small configuration.

### Step 4

This configuration can be done by adding an [HTTP Request](https://loadium.com/blog/how-to-record-http-https-traffic-with-mitmproxy/) Defaults to your test plan.

Add an HTTP Request Default, then go to the Advanced tab. Select **Retrieve All Embedded Resources**

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MciBPPedJjsN-i_Vs-0%2F-MciCHSxNRYpQdXnEJy4%2Fimage.png?alt=media\&token=a7ab94e0-404c-477e-af43-202809cfa671)

Now JMeter will always request the most updated embedded content for the pages that you visit. Think about creating a Random Product when clicking on an e-commerce web page. Every time we hit another product, [JMeter](https://loadium.com/blog/websocket-with-apache-jmeter/) will ask about the resource for those products when this is configured.

### Step **5**

Configure your browser’s proxy settings to JMeter’s setting that you made in step 1. Then hit the Start button in Test Script Recorder.

Now you can capture any request.


# Websocket with Apache JMeter

It’s apparent that the usage of Websocket has expanded greatly in recent years, and its reliability is expected to be high since it mostly carries crucial information to clients. Hence, [testing](https://loadium.com/blog/functional-testing-with-loadium-apache-jmeter/) their durability and reliability has become more important.

It is possible to execute [performance tests](https://loadium.com/blog/tag/performance-testing/) on Websockets with Apache [JMeter](https://loadium.com/blog/tag/jmeter/) by using “Websocket Samplers” plugin developed by Peter Doornbosch.

## **Websocket Samplers Plugin For Jmeter**

Let’s take a look at the [plugin](https://loadium.com/blog/how-to-install-use-jmeter-plugin/) first.&#x20;

You can download the plugin [here](https://jmeter-plugins.org/?search=websocket-samplers).

Once you install the plugin, you will get 7 new Sampler elements:

* **Websocket Close**: Closes the current Websocket connection
* **Websocket Open Connection:** Initiates a new connection with given parameters, with options for connection\&read timeouts
* **Websocket Ping/Pong:** Performs a ping or ping/pong service for the current connection
* **Websocket Sampler:** A single sampler that performs one-time request.
* **Websocket Single Read Sampler:** Reads response without sending a request.
* **Websocket Single Write Sampler:** Sends a request without reading the response
* **Websocket request-response Sampler:** Does both sending a request and reading response

## Example Case

Websockets’ behavior may reveal differences between each other, but the structure of a script for Websocket is usually similar to the following format:

* Initiating a connection with Websocket
* Sending the first request
* Receiving the first request
* Using a looper (Runtime controller or Loop Controller etc.) to continue the data transmission between the client and the server by sending a message and receiving it.

-First, we need to start a connection with the Websocket. It can be done either using “Websocket Open Connection”, or “Websocket Request” with the “setup new connection” option.

-The information about the sockets needs to be given. For example, you can find the socket’s information from Google Chrome’s Inspect mode>Network>WS

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-Mch_kvN5vasPL15No-_%2F-MchdOwi_wB2kG1rUy6D%2Fimage.png?alt=media\&token=b451e504-1783-47b4-a826-3826e1dcc916)

-There is one another situation that requires a token that is received by another request for a Websocket to initiate a connection.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-Mche3jDlW_HwvC2RKQG%2F-McheVcMhdAL5dGW-sf9%2Fimage.png?alt=media\&token=358e68d1-55b0-4c20-b0f8-21d299c4d790)

-When the connection has started, there will be a series of messages that will be transferred from both the client and the server-side. Some of the requests going from the client might be unique, but at some point, repetitive pattern requests can be seen and it will be imitated with a loop logic. Additionally, this repetitive pattern usually has a constant interval between requests, which might need to be taken into account.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-Mche3jDlW_HwvC2RKQG%2F-McheeGvKEgn5tsebxwa%2Fimage.png?alt=media\&token=571563c6-2c35-48b0-8633-49da2187e81b)

That's it, happy testing!

{% content-ref url="/pages/WfTjbcNWw11klGow67OJ" %}
[JMeter Test](/create-test/jmeter-test-1)
{% endcontent-ref %}

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# JMeter Timers

## Why Do I Need a Timer in JMeter?

User behavior in [load tests](https://loadium.com/blog/record-and-play-load-testing-in-5-steps/) depends on many factors. Those factors can be “ramp-up time”, “user count on the system in a specific time interval”, etc. and most of them rely on timing. **The time between user actions defines the realism of the scenario.** That’s why JMeter offers various Timer for you to use in your performance test projects.

By default, [JMeter](https://loadium.com/blog/websocket-with-apache-jmeter/) executes all samplers one after another. There is no delay between sampler’s execution. This makes our tests non-realistic because no user goes into a page and clicks to a link, then does another request. A user thinks, reads, writes in a web or mobile app. So all those times are the key characteristic of your scenario. In [performance testing](https://loadium.com/blog/performance-testing-with-postman/), this is called “**think time**”. Testing without a [JMeter](https://loadium.com/blog/handling-error-messages-of-jmeter-tests-in-loadium/) timer can create irregular test results because the simulated requests will come in a different pattern than what is seen in a real-world situation.

## Timer Types

In JMeter, there are 9 different Timer types.

1. Constant Timer
2. Uniform Random Timer
3. Precise Throughput Timer
4. Constant Throughput Timer
5. Gaussian Random Timer
6. JRS223 Timer
7. Poisson Random Timer
8. Synchronizing Timer
9. BeanShell Timer

Each timer has its own behavior. Let’s have a look at some major Timers.

**Constant Timer:**  This is the most basic timer [JMeter](https://loadium.com/blog/tag/jmeter/) provides. All Samplers will wait a constant time interval according to the value you provided. The thread delay is in milliseconds.

**Uniform Random Timer:** This timer makes the sampler wait for a duration calculated as the **constant delay plus a random value between 0 and the specified random delay**.

{% hint style="success" %}
***Example***

Constant Delay: 500 ms\
Random Delay: 100 ms

JMeter will pause the sampler for a random duration between 500 ms and 600 ms.
{% endhint %}

**Gaussian Random Timer:** It follows a normal or Gaussian distribution method. It provides a delay based on a constant and standard deviation.

**JRS223 Timer and BeanShell Timers:** They both require you to write some scripts by using javascript, groovy or [BeanShell](https://loadium.com/blog/beanshell-processor-tutorial-1-basic-usage/) scripting language.

## How to Use Timers

We recommend you to use scoping articles that we recently published. [Scopes in JMeter](https://loadium.com/blog/scopes-in-jmeter/)

There are examples that you can look into.

{% content-ref url="/pages/MyXygFWRPhcbbkkjn4jQ" %}
[Getting Started with Loadium](/getting-started-1)
{% endcontent-ref %}


# Handling Error Messages of JMeter Tests in Loadium

Errors found during [testing](https://loadium.com/blog/functional-testing-with-loadium-apache-jmeter/) is a part of the process, [tests](https://loadium.com/blog/record-and-play-load-testing-in-5-steps/) are done to find them after all. After finding an error, understanding its reason is crucial. Some errors are easy to understand and recognize if they reveal themselves clearly, but sometimes errors are hard to detect and if their reason isn’t clear it might even lead to more confusing results.

There might be several reasons for an error to occur. It could be due to a logical error in the script, or while the script is doing its work properly, server might mess up when processing it.

## Jmeter Functions

[JMeter](https://loadium.com/blog/how-to-add-a-variable-number-of-parameters-in-apache-jmeter/) has a built-in functionality that allows us to handle error messages. Since [JMeter](https://loadium.com/blog/in-depth-analysis-throughput-controller-in-jmeter-and-splitting-threads-to-requests/) is a Java application which is an OOP language, there is access to some objects that come in handy. One of them is the “Prev” class’ “prev” object that allows us to do workarounds for error messages, which you can find the complete documentation here:

<https://jmeter.apache.org/api/org/apache/jmeter/samplers/SampleResult.html>

Let’s take a look at some methods from this class:

* getResponseCode() – Returns the last executed sample’s response code
* setResponseCode() – Sets a custom response code to the last executed sample
* getResponseDataAsString() – Returns the last executed sample’s response body

By using only these 3 methods, we can easily handle the error messages.

## Example Case

Sometimes the message contained in the response code or the code itself isn’t self-explanatory enough. Likewise, there may be more detailed information of the error in the response body, and since what’s included in the body by default is not available to be seen in the report screen “Error” page, a configuration can be done to make it visible.

For example, the response error message “Internal Server Error” does not show the reason clearly, and if there is a possibility that its body contains information about the error, it is better for it to be shown here. For this, we can make a configuration in a JSR223 PostProcessor like the following:

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-Mchg7XuMHNJ5TK2SfZW%2F-Mci8YzdU7Lyy3uxWYkV%2FScreen%20Shot%202021-06-21%20at%2013.38.07.png?alt=media\&token=da296404-629b-4c0f-bd46-6d0e4792dbe5)

And with the function:

`if(prev.getResponseCode() == "500"){`\
`prev.setResponseMessage(prev.getResponseDataAsString());`

In Jmeter, instead of standart "Internal Server Error" message, we will get a message as shown below:

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-Mchg7XuMHNJ5TK2SfZW%2F-Mci9UNWutLHtkRWGlVF%2Fresponsecode.png?alt=media\&token=88b50ded-f4e6-4bcc-81b4-90dad882bb59)

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# Details of Throughput Controller in JMeter (Splitting Threads to Different Requests)

## **What is Throughput?**

Throughput, essentially, is the number of requests executed per unit of time. It is one of the basic concepts of [performance testing](https://loadium.com/blog/tag/performance-testing/). Since the main subject here is “performance”, a term that features a measurement of “per unit of time” makes it an important one.

In performance tests, there will be a lot of requests going on in a short period of time in order to apply necessary stress to the desired servers. However, not every server in a system has an equal priority or necessity to apply stress. One of the servers might be called more frequently than others. For example, for an e-commerce website, a server that is responsible for completing a transaction will have much more [load](https://loadium.com/blog/campaign-periods-key-to-success-load-test/) in general compared to the one that is responsible for creating an account. Therefore, it is unnecessary to apply the same load for every page, instead, the load should be split or even prevented from some servers. Generally, for this purpose, a tool in [JMeter](https://loadium.com/blog/using-commandline-parameters-in-jmeter/) called “throughput controller” is used, however, this tool could sometimes lead to logical errors in the script.

## **How Throughput Controller Works**

What the throughput controller basically does is; controlling the execution amount for its child requests. For example, in a script where a request is going to be called 100 times in total, it can be reduced up to 50 times with a throughput controller that has a 50% execution parameter. One thing worth mentioning, which is also mentioned in JMeter’s documentation; is that the throughput controller does not indicate exactly what its name implies, which is “requests executed per unit of time”. Instead, it does not have control over “per unit of time”, but this functionality is still somewhat parallel to what is usually wanted to perform, which is limiting the specific request’s execution amount.

For a more detailed examination of how throughput controller controls execution times, let’s illustrate it with an example:

Let’s say we have a number of threads (virtual-users) set to 10 and add two throughput controllers with 50% execution. First one; “Letters”, and second one; “Numbers”. With this setup, JMeter will try to execute requests “A” and “1” 5 times each.

<p align="center"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MciGEzN7hozXqv4GCsG%2F-MciNcWsgTyTuxofKmA5%2Fimage.png?alt=media&amp;token=54d73e53-7127-408d-b456-83058ef83304" alt="" data-size="original"></p>

What is important here is, if we take a look at the results of the execution, it can be seen that Thread#2 has executed both requests; “A” from “Letters”, and “1” from “Numbers”.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MciGEzN7hozXqv4GCsG%2F-MciURI2HQ63YQ0xjpQg%2FScreen%20Shot%202021-06-21%20at%2015.13.24.png?alt=media\&token=f73e7f9e-1083-421b-a3c6-63bac7439571)

This means that, if we have a script which passes crucial information (variables) between the requests in order to execute another request, this behavior of JMeter may cause a logical error in the script.

For instance, let’s say we have a script for an e-commerce website, and we want to distribute users by paying online and paying on delivery.

<p align="center"><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MciGEzN7hozXqv4GCsG%2F-MciX-fGLFpfoWopbGAx%2FScreen%20Shot%202021-06-21%20at%2015.20.52.png?alt=media&amp;token=5939ae5f-9dff-4219-80c4-e2f8ab1b2ad1" alt="" data-size="original"></p>

Information of credit card will be required for paying online, and information of the person who is picking up the package will be required for paying on delivery. Furthermore, this information will be managed in the script by executing different requests with different parameters for each paying type. Therefore if we were to distribute users with only throughput [controller](https://loadium.com/blog/module-controller/), there is a possibility that thread#1, (let’s say online payer), which has information of a credit card stored in its variable will be executing a request for paying on delivery, which will cause an error in the script, and vice versa. Since the throughput controller’s purpose is to distribute execution amount with the given parameters by selecting threads almost randomly, it will be ignoring the logical errors occurring in the script.

## **Alternatives / Solutions**

One alternative can be using a switch controller instead, and design it to act like a throughput controller. For this, we need to create a .csv file for switch controller to make it act like it randomly selects its child nodes, with respect to execution amounts we want it to achieve.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MciGEzN7hozXqv4GCsG%2F-MciXi4f_gleHL6npFvk%2Fimage.png?alt=media&amp;token=4dd051ea-3272-4223-b3a0-12ba2d6cc42b" alt=""><figcaption><p>CSV File configuration</p></figcaption></figure>

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MciGEzN7hozXqv4GCsG%2F-MciXxyrWMUMm8pqLNHu%2Fimage.png?alt=media&amp;token=efb3f184-8949-4d5a-837b-d7d82f09cc4a" alt=""><figcaption><p>Contents of CSV File</p></figcaption></figure>

With this .csv file, the switch controller will be executing “Paying Online” and “Paying On Delivery” 5 times each, and the order can certainly be randomized if needed to achieve more realistic simulation. Moreover, with this script design, the threads will be following one of either path; “Paying Online” or “Paying on Delivery”.

## **When Should I Use Throughput Controller?**

As long as there isn’t a transfer of crucial information between requests, or probability that some logical error might occur, using the throughput controller should not cause an issue.


# How to Add a Varying Number of Parameters in Apache JMeter

Some requests have more than one parameter, and the number of parameters may change. You can also add dynamic parameters according to your scenario.

To resolve this issue, JSR223 PreProcessor provided by [JMeter](https://loadium.com/blog/functional-testing-with-loadium-apache-jmeter/) can be used.

First, we add an [HTTP request](https://loadium.com/blog/4-things-you-should-know-about-http-requests/) as shown below, then **we delete all the parameters** and add JSR223 [PreProcessor](https://loadium.com/blog/how-to-add-a-variable-number-of-parameters-in-apache-jmeter/).

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MciD-11DEsgH8ynRzLp%2F-MciDqIiLlSaMQ6tYiGV%2Fimage.png?alt=media\&token=3bc09a8d-6f88-40a4-9076-f61dafc052ad)

In this example, we choose the groovy language.

Then we add a for loop to determine how many parameters we will add, and add the parameter insert code to use it inside the for a loop.

`for(int i=1; i<=10; i++){sampler.AddArgument("ParameterName"+i, "Value"+i);}`

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MciD-11DEsgH8ynRzLp%2F-MciDyvYPtc2h9EkXD1u%2Fimage.png?alt=media\&token=6d3bfb35-2f99-4b08-91bf-4f704e25450e)

When we run the [test](https://loadium.com/blog/jmeter-distributed-testing-step-by-step/), we add any number of parameters as shown in the figure.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-MciD-11DEsgH8ynRzLp%2F-MciF6YSr1QFrKCBLIDt%2Fimage.png?alt=media\&token=d1959079-78dd-448f-a169-707bca918c6a)

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# Local Network Simulation On JMeter

For the recent years, mobile had overtaken desktop traffic. It seems that this trend will continue to rise. But does it change in our lives? That means that our users are on the move. They are not sitting in their comfortable chairs and take benefit of great DSL network speeds.

In most cases, mobile device users access the internet via their cellular operator network. The speed, reliability varies depending on the location of the user. You’ll realize that it’s always changing. That means speed varies mostly during the day. So we need to make sure that websites or mobile application work on every condition without affecting the user experience with functional and non-functional aspects in different internet connection speeds.

## How to Simulate Different Network Speeds?

By default, [JMeter](https://loadium.com/blog/websocket-with-apache-jmeter/) sends all requests defined in a Test Plan as fast as it could, depending on the local computer that you are working on. This is incredibly important for producing the load effectively but from a user side, it is not very realistic. As real users don’t send requests to the server without taking a breath, they also spend some time to think between any operations. Besides that, mobile users have limited network bandwidth and that limits them to make requests at the slower speed. So mobile [performance testing](https://loadium.com/blog/performance-testing-terminology/) scripts should mimic the network type.

In your jmeter.properties file, there are two properties that define the bandwidth type that you use during your [performance tests](https://loadium.com/blog/tag/performance-testing/). Those properties are\
`httpclient.socket.http.cps=0`\
`httpclient.socket.https.cps=0`\
\
One is for HTTP, the other one is for HTTPS requests. CPS stands for “**Character per second**”. When all those values are set to zero, it means there is no limit. No limit means no waiting. When those values are set to some other value, it means that the bandwidth throttle according to the value that you specified.

CPS Calculation Formula is:

**cps = (target bandwidth in kbps \* 1024) / 8**

For example: to emulate the Mobile EDGE cellular network speed (which is 384 Kbits/second downstream), the relevant CPS value would be: 49152 (384 \* 1024 / 8)

Then go to your jmeter.properties file and set the cps values.\
`httpclient.socket.http.cps=21888`\
`httpclient.socket.https.cps=21888`\
In case you don’t want to mess up with all those setting files, you can use the command line to manipulate those values on runtime. Below is the command for it.\
`jmeter -Jhttpclient.socket.http.cps=21888 -Jhttpclient.socket.https.cps=21888 -t /performancescript.jmx`\
Here are some popular bandwidth presets:

| **Bandwidth**                  | **cps Value** |
| ------------------------------ | ------------- |
| Mobile data GPRS : 171 kbit/s  | 21888         |
| Mobile data EDGE : 384 kbit/s  | 49152         |
| Mobile data HSPA : 14,4 Mbp/s  | 1843200       |
| Mobile data HSPA+ : 21 Mbp/s   | 2688000       |
| Mobile data DC-HSPA+ : 42 Mbps | 5376000       |
| Mobile data LTE : 150 Mbp/s    | 19200000      |
| WIFI 802.11a/g : 54 Mbit/s     | 6912000       |

[Loadium](https://loadium.com/blog/functional-testing-with-loadium-apache-jmeter/) allows you to manipulate those values before the test run.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F0GrwCfSqW8NvwJ9t6JPE%2Fimage.png?alt=media&amp;token=a6ce9ac0-f4d8-4ff6-ae6f-00fe2334195a" alt=""><figcaption></figcaption></figure>

You can set different bandwidth type for all the engines. So you can create a realistic load with the different type of bandwidth usage. Don’t forget that this kind of configurations are very useful when it comes to [testing](https://loadium.com/blog/functional-testing-with-loadium-apache-jmeter/) Black Friday, Cyber Monday scenarios.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FJjQhwIsqrpFZeAQ1domd%2Fimage.png?alt=media&amp;token=c405a1c5-9270-4348-999e-2c92bb63256f" alt=""><figcaption><p>Available Bandwith Configurations</p></figcaption></figure>

Happy testing!

{% content-ref url="/pages/-MUQ5cTQeTV9Yioro2zC" %}
[Getting Started with Loadium](/getting-started)
{% endcontent-ref %}

{% content-ref url="/pages/-MUSAunBwe2J09CIl1hu" %}
[JMeter Test](/create-test/jmeter-test)
{% endcontent-ref %}

{% content-ref url="/pages/MgN0OAuKVZtI6DuNx1bd" %}
[Pricing](/about-loadium/pricing)
{% endcontent-ref %}

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# Running Load Test with FTP Server

### What is FTP (File Transfer Protocol)&#x20;

FTP server is an application that allows files to be transferred from one computer to another. Files can be transferred to any computer over the Internet.&#x20;

FTP is a standard network protocol used for the transfer of files between a client and server on a computer network.&#x20;

![](https://firebasestorage.googleapis.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FtXXB87x9n7ByWyGwED7e%2Ffile.png?alt=media)

### Why Do We Need to Load Test the FTP Server ?&#x20;

There may be slowdowns in network speeds, latency or server on the FTP server. File transfer can take minutes or hours when the FTP server starts to slow down or crashes. The effect can be much greater when there are large file shares via the FTP server.&#x20;

Load testing is needed to measure how much load the FTP server can withstand and to find bottlenecks.&#x20;

### How to Test FTP Servers with Jmeter?&#x20;

Add FTP Request Defaults (Test Plan -> Add -> Config Element -> FTP Request Defaults)&#x20;

![](https://firebasestorage.googleapis.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F5v0F8QXdhJJ9zAQW9Zlc%2Ffile.png?alt=media)

FTP Request Defaults is not used to send an ftp FTP request. It is used to make the definitions in an FTP request. &#x20;

You can set the required elements for a test, as shown below. We are using the Server at ftp.domain.com, a sample FTP server running on the standard FTP port 21.&#x20;

![](https://firebasestorage.googleapis.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2Ft93JrjNtKPf01YSiIDB0%2Ffile.png?alt=media)

![](https://firebasestorage.googleapis.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FoECRf0VjXUXpmyOyJdMe%2Ffile.png?alt=media)

Add FTP Request (Thread Group -> Add -> Sampler -> FTP Request)&#x20;

You need to add "FTP Request” to send an FTP request. &#x20;

We write the path to the file and the username and password of the FTP server as shown below. Since we defined it in "FTP Request Defaults" before, we do not need to define the "Server Name or IP" part again, so we leave this field blank.&#x20;

![](https://firebasestorage.googleapis.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FM58YkdDmQqZuwUE0ssIp%2Ffile.png?alt=media)

Then we start the test.&#x20;

{% content-ref url="/pages/hI2S1v1P7s5BIs9sCHgV" %}
[Quick Start](/creating-your-first-test-1)
{% endcontent-ref %}

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# Introduction to Gatling

Gatling is an Open Source Performance Load Testing Tool for Running, Recording and Editing Load Test Automations in SCALA language.

## Installing Gatling

In order to download Gatling we’ll need to navigate to following link:

<https://repo1.maven.org/maven2/io/gatling/highcharts/gatling-charts-highcharts-bundle/3.5.1/gatling-charts-highcharts-bundle-3.5.1-bundle.zip>

Unzip the downloaded file and you’ll see executables in /bin folder.

## Gatling With Loadium

Loadium supports Gatling 3.5.1, Also you need an IDE (preferably IntelliJ IDEA) installed on your computer in order to write Scala simulations.

Once you logged in, you can easily start creating and configuring your Gatling test.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FT4vJscQJTZtgqPXGW7We%2Fimage.png?alt=media&amp;token=802345a4-8b14-4f8f-aa23-537ef4fe0ab0" alt=""><figcaption></figcaption></figure>

You can find detailed information for using Gatling with Loadium [here](https://wiki.loadium.com/creating-test/gatling-test).

Enjoy load testing!

{% content-ref url="/pages/-Mdzir5FykITF2HYvKR1" %}
[Broken mention](broken://pages/-Mdzir5FykITF2HYvKR1)
{% endcontent-ref %}

{% content-ref url="/pages/-MUSBc3iHQSjgBJ9Ppxx" %}
[Gatling Test](/create-test/gatling-test)
{% endcontent-ref %}

{% content-ref url="/pages/-MUT5hLBO28\_mZRXGWKF" %}
[ABOUT LOADIUM](/about-loadium/features)
{% endcontent-ref %}

{% content-ref url="/pages/MgN0OAuKVZtI6DuNx1bd" %}
[Pricing](/about-loadium/pricing)
{% endcontent-ref %}

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# Introduction to Gatling

Gatling is an Open Source Performance Load Testing Tool for Running, Recording and Editing Load Test Automations in SCALA language.

## Installing Gatling

In order to download Gatling we’ll need to navigate to following link:

<https://repo1.maven.org/maven2/io/gatling/highcharts/gatling-charts-highcharts-bundle/3.5.1/gatling-charts-highcharts-bundle-3.5.1-bundle.zip>

Unzip the downloaded file and you’ll see executables in /bin folder.

## Gatling With Loadium

Loadium supports Gatling 3.5.1, Also you need an IDE (preferably IntelliJ IDEA) installed on your computer in order to write Scala simulations.

Once you logged in, you can easily start creating and configuring your Gatling test.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FOF80ahwtZX3SkiiRYgVr%2Fimage.png?alt=media&amp;token=4ede08e5-687f-4ea2-8b4d-1c3f6b8f0fc7" alt=""><figcaption></figcaption></figure>

You can find detailed information for using Gatling with Loadium [here](https://wiki.loadium.com/creating-test/gatling-test).

{% content-ref url="/pages/9Cenwdp15fENjqCERuAp" %}
[Gatling Test](/create-test/gatling-test-1)
{% endcontent-ref %}

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# Gatling Recorder

A guide on for using Gatling Recorder, and creating\&running a basic Gatling test

## Recording a Script

To start Gatling Recorder, open the terminal on your computer and navigate to Gatling's bin directory using “cd” command.

* If you’re on windows you’ll need to run: `recorder.bat`&#x20;
* On the macOS or Linux Based OS you need to execute: `Sh ./recorder.sh`

```
loadium@localhost:~ erdem$ cd ~
loadium@localhost:~ erdem$ cd Downloads/
loadium@localhost:Downloads erdem$ cd gatling-charts-highcharts-bundle-3.5.1
loadium@localhost:gatling-charts-highcharts-bundle-3.5.1 erdem$ cd bin/
loadium@localhost:bin erdem$ Sh ./recorder.sh
GATLING_HOME is set to /Users/erdem/Downloads/gatling-charts-highcharts-bundle-3.5.1
```

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-Mdzl4RXkOCux91G2_TN%2F-Mdzz51BAvZt6jBAvGXC%2Fimage.png?alt=media\&token=55c402e3-6030-424d-8972-a02e9b033d56)

### Using .HAR File

In order to record a .HAR file you need to open the Chrome developer tools, Navigate to Network Section and start recording.

<figure><img src="https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2FVwd3Cie9fHFqvlZEZ26m%2Fimage.png?alt=media&amp;token=b8ceb683-8e91-47f6-90ce-0f1b8e864c43" alt=""><figcaption></figcaption></figure>

After that you can right click and choose the "Save All As Har with Content". This should generate a .HAR file to use with Gatling.

{% hint style="info" %}
**Keep in mind:** Loadium also supports HAR files and it can convert your HAR files to JMX and run your tests with provided HAR File. Check "Convert" tab for more info.

&#x20;                                    ![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MUOy4kHWrKkuqX5mhH7%2Fuploads%2F5fXwVSWvghIArZHwylvx%2Fimage.png?alt=media\&token=7091e0a9-ee29-4f96-8f47-3ad1421ffd91)
{% endhint %}

Gatling Recorder can convert your HAR files easily to Scala you can simply switch the recorder mode to HAR Converter and select the HAR file. When you click to start it’ll convert your HAR Gatling Compatible Scala Test.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-Mdzl4RXkOCux91G2_TN%2F-Me-0jfFttAXNogdW4hL%2Fimage.png?alt=media\&token=3c7eec3d-ed73-476b-bda6-332ee8e16472)

### HTTP(S) Proxy Recorder

In order to record your first script you need to import your CA to your browser, after that you can use the proxy recording with Gatling.

Oops! Here comes the error. When we tried to exporting the CA from Gatling Recorder we welcomed by a roadblock. Even if we tried to Generate CA button on the Recorder it didn’t generated anything.

Here comes the thinking…

What we are gonna do?

How to Generate Certificate Authority For Gatling Recorder Proxy?

It’s as simple as writing 2 liner code, in fact literally two line code!

* Open the terminal on macOS or Linux Machine and type the following codes and hit enter

```
openssl genrsa -des3 -out rootCA.key 4096
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.crt
```

There should be two files created such as rootCa.key and rootCA.crt

* Import the .crt file to your browser and change your proxy settings to localhost:8000

![Uploading the certificate to Firefox browser](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-Mdzl4RXkOCux91G2_TN%2F-Me-3rkL2_FmwOFZ2iPa%2Fimage.png?alt=media\&token=7ab89825-9670-4599-9b0c-b66e2cadf627)

* Select the HTTP mode as Certificate Authority. Use the rootCA.crt file for CA Certificate and rootCA.key for CA Private Key.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-Mdzl4RXkOCux91G2_TN%2F-Me-1YczPtXQLWqBmB4M%2Fimage.png?alt=media\&token=403b5a63-9b5c-4649-a315-3510dd3b8239)

Click the start and you’re ready to go.

## Running the Test

Open the terminal on your computer and navigate to bin directory using “cd” command.

* If you’re on windows you’ll need to run: `gatling.bat`
* On the macOS or Linux Based OS you need to execute: `sh ./gatling.sh`

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-Me-7ysTDl69FdGKc26z%2F-Me-83scICewIHvj6NE-%2Fimage.png?alt=media\&token=245e87b4-d0c6-463e-b254-9d77993b2b3e)

As you see you’ll see the recorded script and the demo scripts every script has its own number you can simply enter 0 and Gatling will begin testing.

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-Me-7ysTDl69FdGKc26z%2F-Me-8DCk6iijCMhjIpWo%2Fimage.png?alt=media\&token=c24c0cfb-e611-4e6d-8b62-e187c81e9463)

## Automatically Generated Reporting

When test complete you’ll see results as shown above. In the last line you’ll notice a local url you can find your dashboard report using that url and the dashboard report is look like this:

![](https://33973752-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MUOy4kHWrKkuqX5mhH7%2F-Me0AtFimPqtv6vy5vKp%2F-Me0Czc7loyj9IrciDyu%2Fimage.png?alt=media\&token=e314bd0a-7fa5-4ea4-9210-dab74c1654cd)

Enjoy Gatling test!

{% content-ref url="/pages/9Cenwdp15fENjqCERuAp" %}
[Gatling Test](/create-test/gatling-test-1)
{% endcontent-ref %}

If you don't see the answer to your question here, please [reach out to us](https://loadium.com/contact-us/) to let us know! We're always improving our documentation.


# Gatling Pros\&Cons

Among all the performance test tools, why do we use Gatling?. Let's take a look.

In a nutshell, Gatling has been a part of load-testing solutions for years. It’s performance efficient and cross-platform capabilities got many eyes' attention.

Gatling uses Scala language for writing tests. It’s immediately catching developer’s eyes while load testing their applications and projects.

Developers wants to code, don’t they? Gatling closes this gap between developers and testers. Both can use this tool simply and get familiar with it. This is one of the Gatling’s biggest advantage, providing this kind of adaptation.

Gatling is an open source load-testing tool, You can write your scripts using Scala language or you can simply convert your .Har dump from your browser and convert to Scala language. It can simulate thousands of users concurrently, and it has a basic reporting feature that allows you to take an additional look to test results.

Also Gatling provide you a GUI for recording your traffic and converting your .Har files to Scala script.

## Gatling Pros

### :green\_book:Detailed Reporting

After running your tests Gatling shows you a pretty detailed and colorful report that you can check connection times, response times, concurrent users etc.

### :green\_book:Load Test As Code

Gatling uses Scala language which is human readable DSL, This benefits for developers they can easy adapt the language.

### :green\_book:CI/CD Friendly

Any Gatling project that built using Maven or Gradle can easily integrate with CI/CD pipelines out of the box. This is very advantageous compared to other similar tools.

### :green\_book:Taurus, NewRelic etc. APM Integration

Performance testing means nothing without using any performance monitoring tools a.k.a APM’s. Gatling provides smooth integration with realtime tracking tools.

### :green\_book:Powerful

Gatling is really powerful tool, Uses Netty and Akka toolkit. While JMeter synchronous and slow, Gatling is asynchronous by its design. Gatling doesn’t allocating separate threads for each users. Which helps to simulate users by using one thread.

### :green\_book:Integrated API Assertions

Gatling’s integrated API assertions helps you to run different functional checks with your performance tests.

## Gatling Cons

### :closed\_book:Distributed Gatling Tests

Gatling Frontline helps you to scale your tests but it’s pricy. So if you want to scale with your tests with open sourced Gatling it’s not easy. While JMeter is easy to distribute your load tests, Gatling isn’t.

To distribute your Gatling tests you can create bash scripts for handling executors or you can easily distribute your tests using [Loadium](https://loadium.com/).

### :closed\_book:Poor Information During Execution

Gatling doesn’t provide much information during executing test, Instead of that it shows you a detailed report when you finish. But sometimes you need to see real-time data. This is why we gladly like to mention that Gatling is supported by [Loadium](https://loadium.com/), which allows you to monitor your Gatling tests easily.

### :closed\_book:Protocols Support

Gatling much more efficient than similar tools when it comes to threads and connections handling. However, Gatling supports much less protocols. Gatling only supports HTTP, Websocket, Serer-sent events and JMS.

In conclusion, Gatling is a really efficient tool for some protocols. If you need to use APM’s and CI/CD integrations Gatling is the best choice for you. Also keep in mind you can make pro from cons using [Loadium](https://loadium.com/)! :)

Happy load testing!


