开源 Java 应用,用于对 Web 应用及其他服务进行负载测试和性能测量。
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
使用 Go 1.18+ 通过 go install 安装
go install github.com/codesenberg/bombardier@latest - 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 数据每日更新。
相关项目
基于 Go 的 HTTP(S) 压测命令行工具,提供终端实时显示和 Web 图表。
一款终端版 top 工具,实时显示正在运行的 eBPF 程序及其运行时间、事件频率和估算 CPU 占用。
基于 Go 语言的高性能 HTTP Web 框架,API 风格类似 Martini,适用于 REST API、Web 应用和微服务。
面向 Windows 和 Linux 的任务管理器替代品,可深入查看进程的线程、内存、句柄、网络连接和模块。
用 Go 编写的键盘驱动终端下载管理器,支持分块并行下载与多镜像下载。