bombardier

HTTP(S) benchmarking tool written in Go that uses fasthttp by default, with optional net/http for HTTP/2, and reports latency, requests/sec and throughput.

install· Go

bombardier is a command-line HTTP(S) load and benchmarking tool written in Go. It is invoked as bombardier [<flags>] <url> and generates requests against a target URL, then reports statistics on the result. It uses the fasthttp client by default rather than Go's standard http library, and runs on multiple platforms.

Runs are controlled by flags such as -c for the number of connections, -n for a total request count, and -d for a duration (for example -c 200 -d 10s). While running it shows a progress bar. The final report gives requests per second and latency as average, standard deviation and maximum, plus HTTP status code counts grouped as 1xx through 5xx and others, an error breakdown (such as dial timeouts), and throughput in MB/s. The -l flag adds a latency distribution with 50th, 75th, 90th and 99th percentiles.

From v1.1, bombardier can use the net/http client through the --http1 and --http2 flags. This is needed for testing HTTP/2 services or when a more RFC-compliant client is wanted. It is also the documented workaround for a known issue where the Host header cannot be set correctly with fasthttp. It suits developers and operators who want to measure the throughput and latency of web servers and APIs from the terminal.

Installation

# via Go
go install github.com/codesenberg/bombardier@latest

Alternatives & related tools

add a badge to your README

Maintain bombardier? Show that it's featured on trmn. The badge links back to this page.

Featured on trmn
Markdown
[![Featured on trmn](https://www.trmn.sh/badge/bombardier.svg)](https://www.trmn.sh/tools/bombardier?utm_source=badge)
HTML
<a href="https://www.trmn.sh/tools/bombardier?utm_source=badge"><img src="https://www.trmn.sh/badge/bombardier.svg" alt="Featured on trmn" height="20"></a>