As BlazeMeter’s CEO and founder, Alon Girmonsky brings over 20 years of technological expertise and innovation to BlazeMeter. Prior to founding BlazeMeter, he served as CTO for Taldor and was co-founder of iWeb Technologies (acquired by Global Media Online, 2002), a Young & Rubicam-backed NewMedia Company. Alon began his career in the technology sector as an officer in the software division of Israel's Defense Force Intelligence Unit.

Become a JMeter and Continuous Testing Pro

Start Learning
Slack

Test Your Website Performance NOW!

arrow Please enter a URL with http(s)

How to Run 50,000 Concurrent Users from Multi GEOs Using Locust.IO

BlazeMeter is historically a JMeter shop, but lately we’ve started supporting all leading open source tools including Gatling, Locust.IO, and more.  

 

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.

 

The Recipe

 

The Ingredients:

 

Here’s the gist of the Locust.IO script I used:

 

Locust Script

 

Here’s the gist of the Taurus YAML file I used:


Taurus YAML File

 

The above configuration uses the Locust.IO engine to execute a Locust.IO file, named locustfile.py (its gist appears earlier in this post).


 

The Method

 

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).



Taurus Testing Tool Console

 

First, I want to see how it performs on my laptop with only 10 concurrent users.

 

Running Load Tests With 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:

 

Load Testing from Multiple Geo Locations

 

I get the following response:

 

Performance Testing from Multiple Locations

 

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).

 

Taurus YAML File

 

I also set the concurrency to 50,000

 

Load Testing with 50,000 Concurrent Users

 

Now I run the same test - but this time I use "cloud" provisioning.

 

Running Locust.IO load tests from the cloud

 

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).

 

Running Locust.io tests from the cloud

That's it! The test is running in the cloud. Here’s how it looks:

Load Testing with Locust.io - Results

 

Or, if you prefer using the console to view the test in action:

Taurus Test Automation

 

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.

     
arrow Please enter a URL with http(s)

Interested in writing for our Blog?Send us a pitch!