HTTP load testing CLI tool that generates constant request rates with comprehensive reporting and UNIX composability
Vegeta is an HTTP load testing tool that generates requests at a constant rate against target services. It operates as both a CLI tool and Go library, designed with UNIX composability principles to integrate well into testing pipelines. The tool avoids Coordinated Omission problems that affect measurement accuracy in other load generators.
The attack command accepts targets from stdin or files in HTTP or JSON format, supporting custom headers, bodies, and authentication. It can maintain persistent connections, handle HTTP/2, and includes options for TLS configuration, DNS caching, and connection pooling. Rate limiting is configurable per time unit, and the tool can run for specified durations or indefinitely.
Vegeta provides extensive reporting capabilities through separate encode, plot, and report commands. Results can be output as text summaries, JSON metrics, histograms with custom buckets, or HTML plots. The binary output format enables chaining commands together using pipes, allowing users to generate attacks and immediately analyze results or save them for later processing.
# via Homebrew
brew update && brew install vegeta
# via Arch Linux
pacman -S vegeta
# via FreeBSD
pkg install vegeta
