How to Run 50,000 Concurrent Users from Multi GEOs Using Locust.IO
To be more specific, this means that we’re now able to:
Read and execute scripts written by leading open source tools without any modifications
Seamlessly scale tests for up to hundreds of thousands of concurrent users
Provide standard reporting, which include performance KPIs, APM correlations, and thresholds (fail/success criteria)
Automate with any Continuous Integration/Continuous Delivery (CI/CD) platform
As an example, I’ll show you how to run a 50,000 concurrent users’ test from four different locations using 50+ cloud servers.
For the test script, we’ll use Locust.IO.
Locust.IO is an open source load testing tool that uses Python code to define user behaviour, and swarm applications with millions of simultaneous users.
Here’s the gist of the Locust.IO script I used:
Here’s the gist of the Taurus YAML file I used:
I'd like to debug the test first, therefore I’ll run it on my local console - so I’m going to use Taurus. I’ll run it on my console with local provisioning (as opposed to cloud provisioning).
First, I want to see how it performs on my laptop with only 10 concurrent users.
Once I'm satisfied that the test is ready to run, I want to run the same test from the cloud from multiple GEO locations, preferably using different cloud vendors.
Now I can use the following command to see which cloud vendors and locations are available:
I get the following response:
In my Taurus YAML file, I now add four locations, two from AWS and two from GCE (the full YAML gist was presented earlier in this post).
I also set the concurrency to 50,000
Now I run the same test - but this time I use "cloud" provisioning.
This time the Locust.IO test runs from the cloud, using 50+ different servers spread across four locations using two different vendors (AWS and GCE).
That's it! The test is running in the cloud. Here’s how it looks:
Or, if you prefer using the console to view the test in action:
Testing is at the heart of modern software delivery. Being able to continuously test code at any step of the software delivery process is critical if you want to release resilient applications fast.
For Continuous Testing to really happen, testing needs to be simple and efficient. Developers simply can't waste time on creating the tests, running them, or analyzing the results. Releases can't be delayed because of the effort around testing.
Run your Locust tests with BlazeMeter! Get scalability, multiple geo-locations and advanced reporting. To learn more, request a demo. Or, put your URL in the box below and your test will start in minutes.