Repolode
codesenberg

codesenberg/bombardier

用 Go 编写的跨平台 HTTP(S) 命令行压测工具,基于 fasthttp 实现高吞吐请求。

Star
6,843
Fork
332
未关闭 Issue
30
最近提交
13天前

这是什么?

bombardier 是一个用于 HTTP 和 HTTPS 服务压力测试的命令行工具。只需指定 URL、并发连接数,以及请求总数或持续时间,它就会输出每秒请求数、延迟统计、各类 HTTP 状态码计数、错误信息和吞吐量。

默认情况下它使用 fasthttp 客户端而非 Go 标准库 net/http 以获得更高速度。自 v1.1 起,可以通过参数切换到 net/http 客户端,适合测试 HTTP/2.x 服务或需要更符合 RFC 规范的客户端场景。项目提供 Linux、macOS 和 Windows 平台的预编译二进制文件,也可以通过 go install 安装。

已知问题方面,使用 fasthttp 时无法正确设置 Host 请求头,此时可改用 net/http 模式(--http1 或 --http2)规避。

核心功能

  • 01支持对 HTTP 和 HTTPS 接口进行压测,并发连接数可配置。
  • 02可按请求总数或持续时间运行测试。
  • 03输出每秒请求数、延迟、状态码分布和吞吐量。
  • 04默认使用 fasthttp 客户端,也可切换到 net/http 以测试 HTTP/2.x。
  • 05提供 Linux、macOS 和 Windows 的预编译二进制文件。

适用场景

  • 测量 Web 服务或 API 每秒可处理的请求数。
  • 在并发负载下检查延迟分布和错误率。
  • 对比代码或配置变更前后的服务性能。

快速上手

  1. 1

    使用 Go 1.18+ 通过 go install 安装

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

    使用 125 个连接和 1000 万次请求对 URL 进行压测

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

使用前须知

  • 默认的 fasthttp 客户端无法正确传递 Host 请求头,可使用 --http1 或 --http2 参数(net/http)作为变通方案。

收录于专题

标签

常见问题

bombardier 是什么?
用 Go 编写的跨平台 HTTP(S) 命令行压测工具,基于 fasthttp 实现高吞吐请求。 bombardier 是一个用于 HTTP 和 HTTPS 服务压力测试的命令行工具。只需指定 URL、并发连接数,以及请求总数或持续时间,它就会输出每秒请求数、延迟统计、各类 HTTP 状态码计数、错误信息和吞吐量。
bombardier 可以免费使用吗?用的什么许可证?
bombardier 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
bombardier 还在维护吗?
活跃维护中。bombardier 最近一次提交是在 2026年10月10日。
bombardier 适合用来做什么?
测量 Web 服务或 API 每秒可处理的请求数。 在并发负载下检查延迟分布和错误率。 对比代码或配置变更前后的服务性能。
bombardier 怎么安装和运行?
使用 Go 1.18+ 通过 go install 安装: go install github.com/codesenberg/bombardier@latest 使用 125 个连接和 1000 万次请求对 URL 进行压测: bombardier -c 125 -n 10000000 http://localhost:8080
在哪里获取 bombardier?
源代码和安装说明在 GitHub 上:https://github.com/codesenberg/bombardier

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目