hey:用简洁命令对 HTTP 服务进行并发负载测试
一分钟看懂
hey 是一个用 Go 编写的小型 HTTP 负载生成器,可作为 ApacheBench 的替代工具。它按指定请求总数、并发数或持续时间向 Web 服务发出请求,并汇总响应时间和吞吐等统计结果。
你可以用它做什么
- 快速检查 Web 接口在一定并发量下的响应表现。
- 按固定请求数或固定持续时间运行压测。
- 限制每个并发工作器的每秒查询速率。
- 测试 GET、POST、PUT、DELETE、HEAD、OPTIONS 和 HTTP/2 端点。
- 添加请求头、请求体、基本认证或代理设置。
主要能力
- 通过
-n和-c控制请求总量与并发工作器数量。 - 通过
-z按持续时间运行,通过-q控制速率。 - 支持自定义方法、请求头、正文、超时和 Host。
- 默认输出统计摘要,也可输出 CSV 形式的响应指标。
适合哪些人
适合需要从命令行快速验证 HTTP 服务性能的后端开发者、测试人员和运维工程师。它更适合单机、单目标的轻量测试,不替代复杂分布式压测、完整业务链路模拟或容量规划平台。
怎么开始使用
可从官方 README 提供的 Linux、macOS 或 Windows 二进制链接下载安装;macOS 也可使用 Homebrew。最简单的命令是 hey https://example.com,再根据需要增加请求数、并发数、持续时间和请求参数。
使用前需要知道
负载测试会给目标服务带来真实流量和资源压力,只应对自己拥有或明确获准测试的系统使用。单机结果会受到客户端 CPU、网络和连接限制影响,不能直接等同于生产容量。项目采用 Apache-2.0 许可证。