HTTP load testing CLI tool that generates constant request rates and provides detailed performance reporting
Vegeta is an HTTP load testing tool designed to generate consistent request rates against web services. Unlike many load testing tools, it avoids Coordinated Omission issues by maintaining precise timing intervals between requests rather than waiting for responses before sending the next request.
The tool supports both command-line usage and Go library integration. It accepts targets in HTTP format (resembling HTTP message format) or JSON format for dynamic target generation. Vegeta can handle various HTTP methods, custom headers, request bodies from files, TLS client certificates, HTTP/2, and connection pooling configurations.
Vegeta provides comprehensive reporting capabilities including text reports, JSON metrics, histograms with custom buckets, and HTML plots. The attack results are output in binary format that can be piped between commands, following UNIX composability principles. It supports distributed load testing scenarios and includes features like DNS caching control, proxy support, and Prometheus metrics export.
The tool is particularly useful for performance engineers, SREs, and developers who need to conduct precise load testing with consistent request timing and detailed analysis of response characteristics including latency percentiles and throughput metrics.
# via Homebrew
brew update && brew install vegeta
# via Arch Linux
pacman -S vegeta
# via FreeBSD
pkg install vegeta