Locust Load Testing: How to Gauge the Quality of Your Apps

Ever needed an application to help you measure how many users your site can hold? Learn in this guide how locust load testing makes this possible!

What is Locust IO?

Locust is a load testing framework that’s open source. This distributed, scalable and light framework helps you find out how many users a system can handle through a series of test scenarios written in Python’s code.

The main idea behind the software is that it each test user’s (locust) behavior. Each of these locusts is built by the tester or the developer. Then, a group of locusts will attack your service or web application.

There is no need for clunky UIs or bloated XMLs. All Locust scripts are made in one Python code. This leads to more reusable test control and the version control tool can be used to track differences between histories.

How to Install Locust IO?

To install Locust, you’ll have to use Python 2.6+. As of now, it’s not available for Python 3.x. Locust is available on PyPI and can be made through easy install or pip.

Easy_install locust or pip install locust io

Test Iteration on Locust

While attempting to find our number of users, we’ve come across a few problems. Here are the few issues we’ve encountered and some solutions on how to fix them.

Ramping up too fast:
– Don’t fully flood the gates, unless this is what you’re testing for.
– If you’re using AWS, you run the risk of overloading your push requests and ELB into a surge queue, where they run the risk of being discarded.
– This might overload your back instances with an overload setup tasks (authentication, session, etc.).

High Memory Usage:
– We couldn’t find a solution for this but added more memory nodes into the system.

Error Due to Too Many Open Files:
– Increase the file limit for users wanting to use Locust
– Alternatively, you can start your Locust processes through the root and increase the limit from your script.

Replicating Production

You’ll have to adjust your staging environment to do a proper locust load testing procedure. Here are a couple of things you should do to improve the testing method:

– Remove Sticky Sessions, if they are on. If the load production is on multiple servers, and if it only replicates one logged in user, all of the requests might not be able to be routed the same way would in their production.

– Background Tasks: Your local setup should run things in the foreground that are placed as background tasks on production. This makes sense for users trying to conduct tests that are against staging or connect their local set up to a queue.

Closing Thoughts

Locust load testing is a great way for users to get the test out networks before placing their sites online. And, they help you use Python to gauge what needs to be fixed or replaced to ensure that your site is running smoothly.

We would suggest that you use Locust IO before running any application or website. You’ll find that it is easier to fix small bugs in your code and know how many users can be on the site without it shutting down. Thus, Locust is great for load testing and will help maintain the quality of your apps!