MCPcopy Index your code
hub / github.com/codesenberg/bombardier

github.com/codesenberg/bombardier @v2.0.2 sqlite

repository ↗ · DeepWiki ↗ · release v2.0.2 ↗
242 symbols 889 edges 36 files 22 documented · 9%
README

bombardier Build Status Go Report Card GoDoc

Logo bombardier is a HTTP(S) benchmarking tool. It is written in Go programming language and uses excellent fasthttp instead of Go's default http library, because of its lightning fast performance.

With bombardier v1.1 and higher you can now use net/http client if you need to test HTTP/2.x services or want to use a more RFC-compliant HTTP client.

Installation

You can grab binaries in the releases section. Alternatively, to get latest and greatest run:

Go 1.18+: go install github.com/codesenberg/bombardier@latest

Usage

bombardier [<flags>] <url>

For a more detailed information about flags consult GoDoc.

Known issues

AFAIK, it's impossible to pass Host header correctly with fasthttp, you can use net/http(--http1/--http2 flags) to workaround this issue.

Examples

Example of running bombardier against this server:

> bombardier -c 125 -n 10000000 http://localhost:8080
Bombarding http://localhost:8080 with 10000000 requests using 125 connections
 10000000 / 10000000 [============================================] 100.00% 37s Done!
Statistics        Avg      Stdev        Max
  Reqs/sec    264560.00   10733.06     268434
  Latency      471.00us   522.34us    51.00ms
  HTTP codes:
    1xx - 0, 2xx - 10000000, 3xx - 0, 4xx - 0, 5xx - 0
    others - 0
  Throughput:   292.92MB/s

Or, against a realworld server(with latency distribution):

> bombardier -c 200 -d 10s -l http://ya.ru
Bombarding http://ya.ru for 10s using 200 connections
[=========================================================================] 10s Done!
Statistics        Avg      Stdev        Max
  Reqs/sec      6607.00     524.56       7109
  Latency       29.86ms     5.36ms   305.02ms
  Latency Distribution
     50%    28.00ms
     75%    32.00ms
     90%    34.00ms
     99%    48.00ms
  HTTP codes:
    1xx - 0, 2xx - 0, 3xx - 66561, 4xx - 0, 5xx - 0
    others - 5
  Errors:
    dialing to the given TCP address timed out - 5
  Throughput:     3.06MB/s

Extension points exported contracts — how you extend this code

ReadonlyUint64Histogram (Interface)
ReadonlyUint64Histogram is a readonly histogram with uint64 keys
internal/test_info.go
ReadonlyFloat64Histogram (Interface)
ReadonlyFloat64Histogram is a readonly histogram with float64 keys
internal/test_info.go

Core symbols most depended-on inside this repo

Error
called by 82
config.go
ParseURLOrPanic
called by 61
common.go
newBombardier
called by 19
bombardier.go
bombard
called by 15
bombardier.go
disableOutput
called by 14
bombardier.go
String
called by 14
config.go
testType
called by 13
config.go
add
called by 11
error_map.go

Shape

Function 114
Method 83
Struct 27
TypeAlias 10
Interface 7
FuncType 1

Languages

Go100%

Modules by API surface

bombardier_test.go30 symbols
internal/test_info.go26 symbols
completion_barriers.go20 symbols
config.go18 symbols
bombardier.go17 symbols
error_map.go12 symbols
clients.go12 symbols
config_test.go10 symbols
flags.go9 symbols
limiter.go8 symbols
args_parser_test.go7 symbols
templates.go6 symbols

Dependencies from manifests, versioned

github.com/PuerkitoBio/purellv1.2.1 · 1×
github.com/alecthomas/kingpinv2.2.6+incompatible · 1×
github.com/alecthomas/templatev0.0.0-2019071801265 · 1×
github.com/alecthomas/unitsv0.0.0-2024092700094 · 1×
github.com/andybalholm/brotliv1.1.1 · 1×
github.com/codesenberg/concurrentv0.0.0-2018053111412 · 1×
github.com/goware/urlxv0.3.2 · 1×
github.com/mattn/go-runewidthv0.0.16 · 1×
github.com/rivo/unisegv0.4.7 · 1×

For agents

$ claude mcp add bombardier \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact