An open API service indexing awesome lists of open source software.

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.

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.