Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Python
  3. locust

locust

MITPython2.47.0

An open-source load testing tool that lets you write scalable performance tests in plain Python.

Visit WebsiteGitHubGitHub
28.2k stars3.3k forks0 contributors

What is locust?

Locust is an open-source load testing tool that allows developers to write performance tests in plain Python code. It simulates user behavior to test the scalability and responsiveness of web services, APIs, and other systems under high concurrency. Unlike GUI-based tools, it provides a code-first approach that integrates with standard development workflows.

Target Audience

Developers, QA engineers, and DevOps professionals who need to perform scalable load and performance testing on web applications, APIs, or custom protocols. It's ideal for teams that prefer scripting tests in Python over using proprietary tools.

Value Proposition

Locust stands out by offering a developer-friendly, Python-based testing environment that avoids the limitations of domain-specific languages or graphical interfaces. Its distributed architecture and real-time web UI enable testing at scale while maintaining flexibility through a pluggable, hackable design.

Overview

Write scalable load tests in plain Python 🚗💨

Use Cases

Best For

  • Testing web APIs under high concurrent user loads
  • Performance validation in CI/CD pipelines
  • Simulating complex user scenarios with conditional logic
  • Distributed load testing across multiple machines
  • Custom protocol testing beyond HTTP
  • Real-time monitoring and adjustment of load tests

Not Ideal For

  • Teams that prefer GUI-based drag-and-drop test creation without writing code
  • Environments where Python is not used or supported in the tech stack
  • Quick, one-off smoke tests for simple endpoints where CLI tools like curl or Postman are sufficient
  • Testing protocols with no community extensions, requiring extensive custom client development

Pros & Cons

Pros

Plain Python Scenarios

Tests are written in regular Python code, allowing use of loops, conditionals, and standard libraries without callbacks or XML, as shown in the example code snippet for defining user behavior.

Distributed Scalability

Uses event-based gevent to handle hundreds of thousands of concurrent users and supports running tests over multiple machines, enabling testing of highly concurrent systems as highlighted in the README.

Real-time Web UI

Includes an interactive web interface for live monitoring and dynamic load adjustment during tests, with screenshots in the README showing real-time charts and statistics.

Protocol Flexibility

Can test any system by writing custom clients or using community extensions, making it adaptable beyond HTTP, though this requires additional effort as noted in the documentation links.

Cons

Limited Built-in Features

The codebase is intentionally small and hackable, meaning users must write custom code for advanced reporting, load shapes, or protocol support, increasing setup complexity compared to more comprehensive tools.

Python Dependency Barrier

Requires Python knowledge and environment setup, which can be a hurdle for teams unfamiliar with Python or in polyglot ecosystems, limiting accessibility for non-developers.

Custom Protocol Effort

Testing non-HTTP protocols necessitates writing custom clients from scratch, which is time-consuming and error-prone compared to tools with native protocol support out of the box.

Frequently Asked Questions

Quick Stats

Stars28,232
Forks3,261
Contributors0
Open Issues2
Last commit1 day ago
CreatedSince 2011

Tags

#load-testing#developer-tools#load-test#performance-testing#load-generator#http#http-testing#python#api-testing#distributed-testing#benchmarking#web-ui#scalability#performance#locust

Built With

g
gevent
P
Python

Links & Resources

Website

Included in

Python290.8k
Auto-fetched 1 day ago

Related Projects

fakerfaker

Faker is a Python package that generates fake data for you.

Stars19,455
Forks2,130
Last commit13 days ago
playwright-pythonplaywright-python

Python version of the Playwright testing and automation library.

Stars15,058
Forks1,250
Last commit1 day ago
PytestPytest

The pytest framework makes it easy to write small tests, yet scales to support complex functional testing

Stars14,625
Forks3,528
Last commit1 day ago
pyautoguipyautogui

A cross-platform GUI automation Python module for human beings. Used to programmatically control the mouse & keyboard.

Stars12,737
Forks1,435
Last commit2 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub