Advanced HTTP load testing tool with real-time progress monitoring and detailed performance reports.
Project description
HTTP Benchmarker
Advanced HTTP load testing tool with real-time progress monitoring and detailed performance reports.
Features
- ⚡ Asynchronous requests for high-concurrency testing
- 📊 Comprehensive metrics: RPS, latency percentiles, success rate
- 🚀 Real-time progress with TQDM integration
- 📝 Detailed error reporting with error grouping
- 💾 Automatic report generation (text/JSON)
- 📈 Statistical analysis: p50, p90, p95, p99 latency
- 🎨 Color-coded terminal output
Installation
From PyPI (recommended)
pip install http-benchmarker
From source (development version)
git clone https://github.com/mrasulzoda/http-benchmarker.git
cd http-benchmarker
pip install -e .
Basic Usage
Run HTTP benchmark tests from the command line using the http_benchmarker command.
Default test (100 requests, 10 concurrency)
http_benchmarker bench https://api.example.com/get
Advanced test with custom parameters
http_benchmarker bench https://api.example.com/data \
--requests 500 \
--concurrency 50 \
--timeout 5
POST request with JSON data from a file
http_benchmarker bench https://api.example.com/data \
--method POST \
--json-file data.json
PUT request with JSON data from a file
http_benchmarker bench https://api.example.com/data \
--method PUT \
--json-file update.json \
--requests 500 \
--concurrency 50
Save results to a report file
# Save as text report
http_benchmarker bench https://api.example.com --save-report
# Save as JSON report
http_benchmarker bench https://api.example.com --save-report --json-report
Report Files
Reports are automatically saved with timestamped filenames:
-
reports/http_benchmark_20250817_101533.txt
-
reports/http_benchmark_20250817_101533.json
Command Options
| Option | Description | Default |
|---|---|---|
| URL | Target URL to test | Required |
| -r, --requests | Total number of requests | 100 |
| -c, --concurrency | Concurrent connections | 10 |
| -t, --timeout | Request timeout (seconds) | 10 |
| -m, --method | HTTP method (GET,POST,PUT) | GET |
| --json-file | Path to the JSON file with the request body | None |
| --save-report | Save results to file | False |
| --json-report | Save in JSON format | False |
| --report-dir | Reports directory | reports |
📜 License
This project uses the Creative Commons Attribution-NonCommercial 4.0 International license.
You can:
⬇️ Download and use the project
📝 Study and modify the code
↔️ Distribute original and derivative works
Under the following conditions:
👤 Attribution — You must give appropriate credit and link to the license
🚫 NonCommercial — You may not use the material for commercial purposes
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file http_benchmarker-0.1.2.tar.gz.
File metadata
- Download URL: http_benchmarker-0.1.2.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c231a540bced769097526c2e1eb456fd57e1271b6e42529e2a508dc018104339
|
|
| MD5 |
d0204215f4e5c996bfabf4769bdc322d
|
|
| BLAKE2b-256 |
c6b05ae94703113d72fe8cae08c6131f4a28fa763dc9bc70f48aa53405c3babd
|
File details
Details for the file http_benchmarker-0.1.2-py3-none-any.whl.
File metadata
- Download URL: http_benchmarker-0.1.2-py3-none-any.whl
- Upload date:
- Size: 12.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9c0014d59c6676e913954b3601c6da0a298de998fbababe5d76fd026d099ea99
|
|
| MD5 |
36d3d23c3c774250f3964541c896f7bf
|
|
| BLAKE2b-256 |
aa8396696461661aa2dcde9d191c7a773b609d3ff538e784b309da82d6e12a40
|