Best use case
locust is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Locust load testing in Python. Use for load testing.
Teams using locust should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/locust/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How locust Compares
| Feature / Agent | locust | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Locust load testing in Python. Use for load testing.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Locust
Locust is an easy-to-use, scriptable, and scalable performance testing tool. You define the behavior of your users in regular Python code.
## When to Use
- **Python Teams**: Scripting complexity is zero if you know Python.
- **Distributed Testing**: Easy to scale out using a Master/Worker architecture to simulate millions of users.
- **Web UI**: Comes with a nice web interface to start tests and view graphs in real-time.
## Quick Start
```python
from locust import HttpUser, task, between
class WebsiteUser(HttpUser):
wait_time = between(1, 5)
@task
def index(self):
self.client.get("/")
@task(3)
def view_item(self):
item_id = randint(1, 10000)
self.client.get(f"/item?id={item_id}", name="/item")
```
Run `locust -f locustfile.py`.
## Core Concepts
### User Class
Represents a user. Attributes like `wait_time` simulate "think time" between actions.
### Tasks
Decorator `@task` marks methods as user actions. You can weight them (`@task(3)` runs 3x more often than `@task(1)`).
### Web UI
Accessible at `http://localhost:8089`. Allows you to set the user count and spawn rate dynamically.
## Best Practices (2025)
**Do**:
- **Use `FastHttpUser`**: Locust's standard `HttpUser` uses `requests` (slow). `FastHttpUser` uses `geventhttpclient` which is much faster for load generation.
- **Group Requests**: Use the `name` argument in `client.get(url, name="my-endpoint")`. Otherwise, every unique URL (with differing IDs) shows as a separate entry in reports.
**Don't**:
- **Don't block the Greenlet**: Locust uses Gevent. Do not perform CPU-intensive work or blocking IO (standard `time.sleep`) in your tasks, or you pause the whole user runner.
## References
- [Locust Documentation](https://locust.io/)Related Skills
template
Expert [skill-name] assistance covering [feature 1], [feature 2], and [feature 3]. Use when [working with X], [debugging Y], or [implementing Z].
zsh
Zsh shell with oh-my-zsh. Use for terminal shell.
zed
Zed high-performance collaborative editor. Use for fast editing.
xcode
Xcode Apple development IDE with simulators. Use for iOS/macOS development.
webstorm
WebStorm JavaScript IDE with debugging. Use for web development.
webpack
Webpack module bundler with loaders and plugins. Use for bundling.
warp
Warp modern terminal with AI. Use for terminal work.
vscode
Visual Studio Code editor with extensions and debugging. Use for code editing.
vite
Vite fast build tool with HMR. Use for modern frontend builds.
visual-studio
Visual Studio IDE for Windows with debugging and profiling. Use for .NET development.
vim
Vim text editor with motions, macros, and plugins. Use for terminal editing.
turbopack
Turbopack Rust-powered bundler. Use for fast builds.