All Products
Search
Document Center

Performance Testing:Get started with JMeter stress testing

Last Updated:Jun 02, 2026

Performance Testing Service (PTS) lets you run cloud-based stress tests using Apache JMeter scripts. This guide walks you through creating a JMeter script locally, uploading it to PTS, and running your first stress test.

Prerequisites

Before you begin, ensure that you have:

  • Activated PTS

  • Apache JMeter 5.0 or 5.6.3 installed on your local machine

Important

PTS supports JMeter 5.0 and 5.6.3. JMeter 4.x is not supported. The version you use locally must match the version you select in the PTS console.

Step 1: Create a JMeter script

  1. In Apache JMeter, add an HTTP Request sampler and configure the following parameters on the Basic tab: Configure HTTP request parameters

    Parameter

    Description

    Example

    Protocol

    The request protocol

    http

    Server name or IP

    The domain name or IP address of the target

    www.example.com

    Port Number

    The port used to access the target

    80

    Method

    The HTTP method

    GET

  2. Run the test plan and check the View Results Tree listener for a successful response. View Results Tree showing a successful response

  3. After the request succeeds, save and export the test plan as a .jmx file (for example, HTTP_Request.jmx).

Step 2: Upload the script and run the stress test

  1. Log on to the PTS console, choose Performance Test > Create Scenario, and then click JMeter.

  2. Configure the stress testing scenario. Scenario configuration

    Parameter

    Description

    Example

    Scene

    The scenario name

    test-jmx

    Upload files

    On the Scene Assembly tab, upload your .jmx script file

    HTTP_Request.jmx

    JMeter version

    The JMeter version. Must match the version you used locally.

    5.6.3

  3. Configure load settings. Set the maximum virtual users to 10, the test duration to 2 minutes, and the increment duration to 2 minutes. Keep the default values for other parameters. Load settings

    Stress tests are billed on a pay-as-you-go basis. Set the load level based on your actual needs. For billing details, see Billing overview. For load configuration options, see Configure the stress testing model and level.

  4. Debug the scenario before running the full stress test. Debugging validates your configuration early and prevents failures at scale — a test that passes locally at low concurrency can still fail when scaled up in the cloud. For instructions, see Debug a stress testing scenario. A successful debug run returns HTTP 200. If the status code is not 200, check your HTTP request configuration. image

  5. Click Save and Start. On the Note page, select Execute Now, select the The test is permitted and complies with the applicable laws and regulations check box, and then click Start.

Analyze stress test results

After the stress test finishes, PTS automatically generates a report that includes scenario metrics, business details, monitoring details, and API sampling logs. View the report on the Stress Test Report page.

For more information, see View a JMeter performance testing report.

Stress test report

FAQ

Why does my JMeter stress test fail?

The most common cause is a JMeter version mismatch. Verify that the JMeter version selected in the PTS console matches the version used to create the script. Although later JMeter versions are generally backward-compatible, subtle differences can cause failures. Always debug the scenario before starting the full test.

Do I need to upload JAR plugins and data files separately?

Yes. On the Scene Assembly tab, upload all JAR plugins and data files your script depends on alongside the .jmx file. A missing file causes the stress test to fail.

Why does my script fail with file path errors?

PTS runs your script on cloud-based load generators, not your local machine. Remove all absolute local file paths from your script and use only file names. For example, change /Users/admin/data/test.csv to test.csv.

How does PTS allocate virtual users across thread groups?

PTS rewrites the thread count in your script at runtime to match the load settings configured in the console. The original script file is not modified. Allocation works as follows:

  1. PTS subtracts the threads in setUp Thread Group and tearDown Thread Group from the total concurrent threads you specify.

  2. PTS distributes the remaining threads across your Thread Groups proportionally, based on the thread count ratios in your script.

  3. If the remaining thread count is 0, no threads are allocated.

For example, if you set 500 concurrent threads and your script has three Thread Groups with counts in the ratio a:b:c, PTS allocates 500 threads across the three groups at that same ratio.

To get predictable results, set thread counts correctly before uploading:

Scenario

Thread count setting

Single Thread Group

Set the thread count to 1

Multiple Thread Groups with even distribution

Set the same thread count in each Thread Group

Multiple Thread Groups with proportional distribution

Set the thread counts in the desired ratio (for example, 2, 3, 5 for a 2:3:5 split)

What's next