Operations 12 min read

How to Achieve a 50,000‑User Load Test with JMeter & BlazeMeter

This guide walks you through the complete process of planning, scripting, locally testing, and scaling a load test to over 50,000 concurrent users using JMeter and BlazeMeter, covering script creation, sandbox configuration, engine sizing, cluster setup, and master‑slave orchestration.

Programmer DD
Programmer DD
Programmer DD
How to Achieve a 50,000‑User Load Test with JMeter & BlazeMeter

This article explains, from a load‑testing perspective, the steps required to execute a smooth 50 000‑user concurrent test.

Quick step outline:

Write your script.

Use JMeter for local testing.

Run a BlazeMeter sandbox test.

Configure Users‑per‑Engine with one controller and one engine.

Set up and test your collection (1 controller and 10‑14 engines).

Use Master/Slave feature to reach your maximum concurrent user goal.

Step 1: Write Your Script

Start by downloading the latest JMeter version from the Apache JMeter site and any required plugins that simplify the work.

Scripts can be obtained by:

Recording the scenario with the BlazeMeter Chrome extension.

Using JMeter’s HTTP(S) Test Script Recorder as a proxy.

Building the script manually from scratch.

If the script is recorded, remember to parameterize values such as usernames and passwords, possibly using a CSV data set, and to extract dynamic data (tokens, IDs) with regular expressions, JSONPath or XPath extractors. Keep the script parameterized and use configuration elements like default HTTP requests to ease environment switches.

Step 2: Local Testing with JMeter

Debug the script with a single thread and one iteration, using the View Results Tree, sample results, and log viewer to verify behavior.

After a successful single‑thread run, increase to 10‑20 threads for a 10‑minute test, checking for independent users, errors, and correct responses. Before uploading, remove all listeners, debug samples, and any absolute file paths; keep only file names.

Step 3: BlazeMeter Sandbox Test

Refer to the BlazeMeter article on creating tests, then configure the sandbox with 300 users, one controller, and a 50‑minute duration.

Ensure firewalls allow BlazeMeter CIDR ranges, all test files (CSVs, JARs, JSON, user.properties) are accessible, and no absolute paths are used. Download error logs if problems arise.

Typical sandbox settings:

Engine: 1 controller, 0 engines.

Threads: 50‑300.

Ramp‑up: 20 minutes.

Iterations: continuous.

Duration: 30‑50 minutes.

Step 4: Determine Users‑per‑Engine

Run a test with one controller and one engine using 500 threads, 40‑minute ramp‑up, unlimited iterations, and a 50‑minute duration. Monitor CPU and memory; keep engine usage below 75 % CPU and 85 % memory. Adjust thread count accordingly, reducing by 10 % for safety.

Step 5: Install and Test a Cluster

A cluster consists of one controller and up to 14 engines. Use the previous step’s test, increasing the engine count up to 14, and run the full test duration while ensuring no engine exceeds the CPU or memory thresholds. Verify the total users and hit rate per cluster.

Step 6: Use Master/Slave to Reach 50 k Users

Assuming one engine supports 500 users, a cluster of 12 engines supports 6 k users. To achieve 50 k users, create eight clusters of 12 engines and one cluster of 4 engines, or alternatively ten clusters of 10 engines (5 k users each).

Configure the test names, switch the “Standalone” property to “Slave” for the slave tests, duplicate them to obtain nine slaves, then change the last test to “Master”. Run the master test to start ten parallel tests, each handling 5 k users.

After the test, you can view aggregated results in the “Master load results” tab and inspect individual reports.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

concurrencyMaster‑SlaveJMeterLoad TestingBlazeMeter
Programmer DD
Written by

Programmer DD

A tinkering programmer and author of "Spring Cloud Microservices in Action"

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.