Overload
Free, open-source load testing tool that reads Postman collections and gives you a gorgeous browser dashboard or a clean CLI — your choice.
Named Overload because that's exactly what it does to your server.
No metaphor. No brand committee. Just requests — a lot of them — all at once, until something interesting happens.
pip install overload-cli
Key Features
⚡ 10 Load Patterns
Burst, Load, Stress, Spike, Soak, Ramp, Breakpoint, Custom stages, Rate Limit, and Sequential. Each pattern models a real-world traffic scenario.
📮 Postman Native
Import your existing Postman Collection v2.1 files directly — nested folders, auth inheritance, variables, and all body types just work.
🖥️ Browser Dashboard
Run
overload and get a live browser UI with real-time Chart.js charts, progress tracking, and instant HTML reports — no Node.js required.🔧 CLI Mode
Run headless with
overload run for CI pipelines. Full flag surface, progress bar, and machine-readable exit codes.✅ CI/CD Assertions
Set performance gates with
--assert "p95_latency_ms<500". Exit code 1 on failure. JUnit XML output for native CI integration.🔒 Auth Built-in
Bearer tokens, Basic auth, API keys (header & query), and OAuth2 client-credentials flow with automatic token caching.
📊 Rich Reports
HTML reports with latency distribution, timeline scatter, per-second breakdown, and verdict section. Also exports JSON and CSV.
🐍 Pure Python
Python 3.10+ with async/await. No binary dependencies, no Node.js, no build step. Install with pip and start testing immediately.
How It Works
Overload provides two interfaces to the same async engine:
Option 1 — Browser UI
overload
# Opens http://localhost:3000 automatically
- Auto-detect: The UI scans your working directory for Postman collection & environment JSON files.
- Configure: Pick a test type, adjust concurrency/RPS/duration, and optionally add assertion thresholds.
- Run: Watch live progress with real-time RPS, latency, and error rate charts.
- Analyze: View the full HTML report with latency distribution, timeline scatter, and per-second breakdown.
Option 2 — CLI
overload run --collection api.json --pattern load --rps 100 --duration 60 \
--assert "p95_latency_ms<500" \
--assert "error_rate_pct<1" \
--junit results.xml
Results print to the terminal with a progress bar and summary table. An HTML report is saved to the reports/ directory.
If any assertion fails, the process exits with code 1 — the universal CI failure signal.
Quick Reference
| Command | Description |
|---|---|
overload |
Start browser UI on port 3000 |
overload ui --port 8080 |
Browser UI on custom port |
overload run --collection api.json --pattern burst |
CLI burst test |
overload run --config overload.config.yaml |
Load test config from file |
overload sequential --collection api.json --iterations 5 |
Run requests in order, 5 times |
overload --debug |
Enable verbose debug logging |
Test Types at a Glance
| Pattern | What It Simulates | Key Config |
|---|---|---|
| Burst | All requests at once — max throughput | --requests 200 |
| Load | Sustained traffic: ramp up → hold → ramp down | --rps 100 --duration 300 |
| Stress | Step-up until error threshold is hit | --rps 50 (starting) |
| Spike | Baseline → sudden spike → recovery | --rps 200 (spike) |
| Soak | Steady low RPS over long duration | --rps 30 --duration 1800 |
| Ramp | Linear increase from start to end RPS | --rps 200 (end) |
| Breakpoint | Binary search for degradation threshold | Auto-probes |
| Custom | User-defined stage sequence | --stages '[…]' |
| Rate Limit | Verify API rate limiting enforcement | --rps 60 --requests 120 |
| Sequential | Run requests in collection order | --iterations 5 |
💡 Tip
Explore each pattern in detail on the Test Patterns page, including configuration options, use cases, and example commands.
Tech Stack
Python 3.10+
Async/await with asyncio for high-concurrency HTTP testing. No GIL-blocked threads.
FastAPI + Uvicorn
ASGI web server for the browser UI. WebSocket for live progress streaming.
httpx
Async HTTP client with connection pooling, SSL, timeouts, and HTTP/2 support.
Vanilla JS + Chart.js
Zero-build frontend. No Node.js, no npm, no webpack. Just HTML, CSS, and JS.