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:
Apache JMeter 5.0 or 5.6.3 installed on your local machine
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
-
In Apache JMeter, add an HTTP Request sampler and configure the following parameters on the Basic tab:

Parameter
Description
Example
Protocol
The request protocol
httpServer name or IP
The domain name or IP address of the target
www.example.comPort Number
The port used to access the target
80Method
The HTTP method
GET Run the test plan and check the View Results Tree listener for a successful response.

After the request succeeds, save and export the test plan as a
.jmxfile (for example,HTTP_Request.jmx).
Step 2: Upload the script and run the stress test
Log on to the PTS console, choose Performance Test > Create Scenario, and then click JMeter.
-
Configure the stress testing scenario.

Parameter
Description
Example
Scene
The scenario name
test-jmxUpload files
On the Scene Assembly tab, upload your
.jmxscript fileHTTP_Request.jmxJMeter version
The JMeter version. Must match the version you used locally.
5.6.3 -
Configure load settings. Set the maximum virtual users to
10, the test duration to2minutes, and the increment duration to2minutes. Keep the default values for other parameters.
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.
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 not200, check your HTTP request configuration.
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.

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:
PTS subtracts the threads in setUp Thread Group and tearDown Thread Group from the total concurrent threads you specify.
PTS distributes the remaining threads across your Thread Groups proportionally, based on the thread count ratios in your script.
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 |
|
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, |
What's next
Create a JMeter scenario - Full reference for scenario configuration options
Use CSV parameter files in JMeter - Parameterize your tests with external data
Configure RPS limits on JMeter - Control request throughput
Notes on using multiple thread groups in JMeter - Advanced thread group configuration
JMeter environment management - Manage JMeter runtime environments
Data sources - Configure data sources for your tests