Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

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

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Python
  3. locust

locust

MITPython2.46.1

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

Visit WebsiteGitHubGitHub
28.0k stars3.2k 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,013
Forks3,226
Contributors0
Open Issues5
Last commit21 hours 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 13 hours ago

Related Projects

fakerfaker

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

Stars19,341
Forks2,109
Last commit20 hours ago
playwright-pythonplaywright-python

Python version of the Playwright testing and automation library.

Stars14,852
Forks1,193
Last commit1 day ago
PytestPytest

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

Stars14,364
Forks3,255
Last commit1 day ago
pyautoguipyautogui

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

Stars12,635
Forks1,433
Last commit1 year 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