A lightweight REST load testing tool with robust support for different verbs, token auth, and performance reports.
lib | ||
.dockerignore | ||
.gitignore | ||
Dockerfile | ||
fly.toml | ||
go.mod | ||
main.go | ||
README.md |
Loadr
A lightweight REST load testing tool with robust support for different request patterns, token auth, and performance reports.
Installation
go build
Quick Start
# Simple pattern: 5 POST requests
./loadr -rate=20 -max=100 -url=http://api.example.com -pattern=5p
# Mixed pattern: 1 POST followed by 5 GETs, repeating
./loadr -rate=20 -max=100 -url=http://api.example.com -pattern=1p5g
# With authentication and request body
./loadr -rate=20 -max=100 -url=http://api.example.com -pattern=2p3g -json=./data.json -token=YourBearerToken
Request Patterns
The -pattern
flag supports flexible request patterns:
Simple Patterns
5p
: 5 POST requests3g
: 3 GET requests
Sequential Patterns
1p5g
: 1 POST followed by 5 GETs2p3g
: 2 POSTs followed by 3 GETs3g2p
: 3 GETs followed by 2 POSTs
Pattern Rules
- Numbers specify how many requests of each type
- 'p' or 'P' specifies POST requests
- 'g' or 'G' specifies GET requests
- If no number is specified, 1 is assumed (e.g., "pg" = "1p1g")
- Pattern repeats until max requests is reached
Command Line Flags
-rate
: Number of requests per second (default: 10)-max
: Maximum number of requests to send (default: 50)-url
: Target URL (default: "https://example.com")-pattern
: Request pattern (e.g., "5p", "1p5g", "3g2p")-json
: Path to JSON file for request body-token
: Bearer token for authorization-v
,-version
: Print version information
Reports
Test results are automatically:
- Displayed in the console
- Saved to
.reports/[timestamp].txt
Reports include:
- Total requests sent and received
- Average, maximum, and minimum latency
- Requests per second (sent and received)
- Pattern information