Suzi is a lightweight, flexible, and extensible HTTP load testing tool written in Go. It’s designed for developers and DevOps engineers who want quick insights into application performance without relying on heavy external tools.
-
- Basic Load – send a fixed number of requests at a constant rate.
- Burst Load – hammer the server with a sudden spike of requests.
- Ramp-Up Load – gradually increase request rate from low to peak.
- Random Load - send requests in a random manner.
- get detailed insights into response time distribution. Useful when need to get over all idea about user experience.
-
- Generates an interactive HTML report with charts (response time per request).
- Includes a latency summary table showing percentile breakdown.
- simulate slow responses or protect against server hangs. One of the important feature in day-to-day server testing (basic).
- Email notifications after testing or CI/CD integration can be sent for better review.
-
git clone https://github.com/Mujib-Ahasan/Suzi.git cd suzi -
go build -o suzi.exe -> for windows go build -o suzi -> for Linux/macOS -
-------Disable the timeout and plot function just by removing the flags--------- //Basic attack ./suzi -url https://example.com -req 50 -rate 5 -atk basic -timeout 5 -plot true //Burst attack ./suzi -url https://example.com -req 50 -atk burst -timeout 5 -plot true //Ramp-Up attack ./suzi -url https://example.com -req 50 -atk rampup -timeout 5 -plot true // Random attack ./suzi -url https://example.com -req 50 -rate 5 -attack basic -timeout 5 -plot true
| Flag | Default | Description |
|---|---|---|
-url |
(required) | Target site or API endpoint to test |
-req |
10 | Number of requests to send |
-atk |
basic |
Attack type (basic, burst, rampup, random) |
-method |
GET |
HTTP method (GET, planning to add POST) |
-rate |
1 | Number of requests per second |
-timeout |
5 | Request timeout in seconds |
-cpus |
NumCPU | Number of CPU cores to use |
-email |
false |
Send results via email |
-emailTo |
"you@local.test" |
Receiver email-id |
-emailFrom |
"Suzi <noreply@gmail.com>" |
Sender email-id |
-smtpHost |
"localhost" |
For production use "smtp.gmail.com" |
-smtpPort |
1025 |
For Production use 465 (donot use 587) |
-smtp-user |
os.Getenv("SMTP_USER") |
Set to the email address that owns the app password (set env var for this) |
-smtp-pass |
os.Getenv("SMTP_PASS") |
App Password generated from Gmail (set env var for this) |
-smtpTLS |
false |
True for production |
-smtp-retries |
3 |
Email send retries |
-smtp-timeout |
10 |
Email send timeout in seconds |
-
For Local testing use Docker
docker run --name mailhog -d -p 8025:8025 -p 1025:1025 mailhog/mailhog. After starting the container open localhost at port 8025.
Run the command./suzi -url https://example.com -rate 5 -req 50 -email -atk mailAll -
For production usecase run the command carefully
./suzi -url https://example.com -rate 5 -req 50 -email -atk mailAll -email /
-emailTo "<receiver email-id> -emailFrom "Suzi <email-addr that owns app-password>" /
-smtpHost "smtp.gmail.com" -smtpPort 465 -smtpTLS true
After that receiver should get a email like this.

Note: In Releases, you would get the binary for linux
- Most load testers (like JMeter or Locust) are heavy, complex, and overkill for quick checks.
- Our Suzi Offers:
- Simple – one binary, easy flags, no config files.
- Fast – written in Go with goroutines for concurrency.
- Extensible – easy to add attack strategies and plotting.
- Developer-Friendly – quick experiments, local testing, and custom benchmark.
- Emailing - can enhance development and deployment experience.
Contributions are always welcome! Feel free to open issues or submit pull requests for new features, enhancements, or bug fixes.
MIT License – free to use and modify.