All Products
Search
Document Center

Performance Testing:Get started with JMeter stress testing

Last Updated:Feb 27, 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 on your on-premises device, uploading it to PTS, and running your first stress test.

Prerequisites

Before you begin, make sure that you have:

  • Activated PTS

  • Apache JMeter 5.0 or 5.6.3 installed on your on-premises device

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

    ParameterDescriptionExample
    ProtocolThe request protocolhttp
    Server name or IPThe domain name or IP address of the targetwww.example.com
    Port NumberThe port used to access the target80
    MethodThe HTTP methodGET
  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 you verify that 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

    ParameterDescriptionExample
    SceneThe scenario nametest-jmx
    Upload filesOn the Scene Assembly tab, upload your .jmx script fileHTTP_Request.jmx
    JMeter versionThe JMeter version. Must match the version you used on your on-premises device.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 > Note: Stress tests are billed on a pay-as-you-go basis. Configure the load level based on your actual needs. For more information, see Billing overview and Configure the stress testing model and level.

  4. Debug the scenario. Before you run the full stress test, debug the scenario to validate your configuration and prevent test failures. For more information, see Debug a stress testing scenario. A successful debug run returns an HTTP 200 status code. If the status code is not 200, check whether the HTTP request is configured correctly. image > Tip: Always debug before running the full test. Debugging catches configuration errors early.

  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. Make sure the JMeter version you select in the PTS console matches the version you 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. Upload all JAR plugins and data files that your script depends on along with the .jmx file on the Scene Assembly tab. If any file is missing, the stress test fails.

Why does my script fail with file path errors?

PTS runs your script on cloud-based load generators, not your on-premises device. Remove all local file paths from your script and keep only the 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 you configure 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 thread counts in the ratio a:b:c, PTS allocates 500 threads across the three groups at that same ratio.

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

ScenarioThread count setting
Single Thread GroupSet the thread count to 1
Multiple Thread Groups with even distributionSet the same thread count in each Thread Group
Multiple Thread Groups with proportional distributionSet the thread counts in the desired ratio (for example, 2, 3, 5 for a 2:3:5 split)

What's next