Skip to main content

Advanced HTTP load testing tool with real-time progress monitoring and detailed performance reports.

Project description

HTTP Benchmarker

License: CC BY-NC 4.0 Python Version Code Style

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

http_benchmarker-0.1.2.tar.gz (11.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

http_benchmarker-0.1.2-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

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

Hashes for http_benchmarker-0.1.2.tar.gz
Algorithm Hash digest
SHA256 c231a540bced769097526c2e1eb456fd57e1271b6e42529e2a508dc018104339
MD5 d0204215f4e5c996bfabf4769bdc322d
BLAKE2b-256 c6b05ae94703113d72fe8cae08c6131f4a28fa763dc9bc70f48aa53405c3babd

See more details on using hashes here.

File details

Details for the file http_benchmarker-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for http_benchmarker-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 9c0014d59c6676e913954b3601c6da0a298de998fbababe5d76fd026d099ea99
MD5 36d3d23c3c774250f3964541c896f7bf
BLAKE2b-256 aa8396696461661aa2dcde9d191c7a773b609d3ff538e784b309da82d6e12a40

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page