Repolode
codesenberg

codesenberg/bombardier

A cross-platform command-line HTTP(S) benchmarking and load-testing tool written in Go, built on fasthttp for high request throughput.

Stars
6,843
Forks
332
Open issues
30
Last commit
13 days ago

What is it?

bombardier is a command-line tool for load-testing HTTP and HTTPS services. You give it a URL, a number of concurrent connections, and either a request count or a duration, and it reports requests per second, latency statistics, HTTP status code counts, errors, and throughput.

By default it uses the fasthttp client instead of Go's standard net/http library for speed. Since v1.1 you can switch to the net/http client with flags, which is useful for testing HTTP/2.x services or when you need a more RFC-compliant client. The project ships prebuilt binaries for Linux, macOS and Windows, and can also be installed with go install.

One known limitation is that setting the Host header correctly does not work with fasthttp; the net/http mode (--http1 or --http2) is the documented workaround.

Key features

  • 01Load-tests HTTP and HTTPS endpoints with configurable concurrent connections.
  • 02Runs for a fixed number of requests or a fixed duration.
  • 03Reports requests per second, latency, status code breakdown and throughput.
  • 04Offers a fasthttp client by default and a net/http client for HTTP/2.x testing.
  • 05Provides prebuilt binaries for Linux, macOS and Windows.

Use cases

  • Measuring how many requests per second a web service or API can handle.
  • Checking latency distribution and error rates under concurrent load.
  • Comparing server performance before and after a change.

Quick start

  1. 1

    Install with Go 1.18+ using go install

    go install github.com/codesenberg/bombardier@latest
  2. 2

    Run a benchmark against a URL with 125 connections and 10 million requests

    bombardier -c 125 -n 10000000 http://localhost:8080

Things to know

  • The default fasthttp client cannot pass the Host header correctly, so use the --http1 or --http2 flags (net/http) as a workaround.

In collections

Topics

FAQ

What is bombardier?
A cross-platform command-line HTTP(S) benchmarking and load-testing tool written in Go, built on fasthttp for high request throughput. bombardier is a command-line tool for load-testing HTTP and HTTPS services. You give it a URL, a number of concurrent connections, and either a request count or a duration, and it reports requests per second, latency statistics, HTTP status code counts, errors, and throughput.
Is bombardier free to use? What license does it have?
bombardier is open source under the MIT license. Check the license terms before using it in commercial products.
Is bombardier still maintained?
Actively maintained. The last commit to bombardier was on Oct 10, 2026.
What can I use bombardier for?
Measuring how many requests per second a web service or API can handle. Checking latency distribution and error rates under concurrent load. Comparing server performance before and after a change.
How do I install bombardier?
Install with Go 1.18+ using go install: go install github.com/codesenberg/bombardier@latest Run a benchmark against a URL with 125 connections and 10 million requests: bombardier -c 125 -n 10000000 http://localhost:8080
Where can I get bombardier?
The source code and installation instructions are on GitHub: https://github.com/codesenberg/bombardier

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects