https://github.com/kartikmehta8/rs-load-tester
This is a high-performance HTTP load tester written in Rust. It is designed to benchmark web servers by sending multiple concurrent requests and collecting detailed metrics for analysis.
https://github.com/kartikmehta8/rs-load-tester
analysis load-testing rust
Last synced: 3 months ago
JSON representation
This is a high-performance HTTP load tester written in Rust. It is designed to benchmark web servers by sending multiple concurrent requests and collecting detailed metrics for analysis.
- Host: GitHub
- URL: https://github.com/kartikmehta8/rs-load-tester
- Owner: kartikmehta8
- Created: 2024-12-12T14:23:54.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-12-12T14:24:05.000Z (5 months ago)
- Last Synced: 2025-02-10T05:18:00.096Z (3 months ago)
- Topics: analysis, load-testing, rust
- Language: Rust
- Homepage:
- Size: 13.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# HTTP Load Tester
This is a high-performance HTTP load tester written in Rust. It is designed to benchmark web servers by sending multiple concurrent requests and collecting detailed metrics for analysis.
## Features
- **Concurrency**: Supports customizable concurrent requests.
- **Multiple HTTP Methods**: Handles GET, POST, PUT, DELETE, and other methods.
- **Payload Support**: Allows sending a payload for POST/PUT requests.
- **Custom Headers**: Accepts user-defined headers for requests.
- **Timeout Configuration**: Supports configurable request timeouts.
- **Detailed Metrics**:
- Total requests sent.
- Number of successful and failed requests.
- Response time for each request.
- Response status codes.
- Content length and response headers.
- Server information (if available).
- Start and end timestamps for each request.
- Throughput (requests per second).
- **Logging**:
- Per-request logs are stored in `request_logs.json`.
- Summary metrics are stored in `summary_metrics.json`.## Program Lifecycle
### Interactive Input
The program will prompt you to input:
- Target URL
- HTTP method (e.g., GET, POST)
- Payload (optional)
- Headers (optional, comma-separated)
- Number of concurrent requests
- Total number of requests
- Timeout in seconds### Output Files
1. **request_logs.json**: Logs details of each request, including:
- URL, HTTP method, payload size.
- Headers sent and received.
- Response time and status.
- Success or failure status.
2. **summary_metrics.json**: Includes:
- Total requests.
- Success and failure counts.
- Total time taken.
- Throughput (requests/second).
- Concurrency level.