rakyll/hey
摘要
hey 是一个轻量级命令行工具,用于对 Web 应用程序进行负载测试,支持 HTTP 方法、并发性以及各种性能测试配置。
查看缓存全文
缓存时间: 2026/09/29 15:28
rakyll/hey
来源:https://github.com/rakyll/hey
hey 是一个向 Web 应用程序发送负载的小工具。它最初名为 boom,灵感来自 Tarek Ziade 的 tarekziade/boom 工具(https://github.com/tarekziade/boom)。使用相同名称曾导致二进制文件名冲突并引发混淆。为保留原名称,我们将此项目重命名为 hey。
安装
- Linux (amd64): https://storage.googleapis.com/hey-releases/hey_linux_amd64
- macOS (amd64): https://storage.googleapis.com/hey-releases/hey_darwin_amd64
- Windows (amd64): https://storage.googleapis.com/hey-releases/hey_windows_amd64
包管理器
macOS:
- Homebrew(https://brew.sh/)用户可使用
brew install hey。
用法
hey 在指定并发级别下运行请求数量,并输出统计信息,同时支持 HTTP2 端点。
用法:hey [选项...]
选项:
-n 运行的请求数量,默认值为 200。
-c 并发运行的工作线程数。总请求数不得小于并发级别,默认值为 50。
-q 速率限制,单位为每个工作线程的每秒查询数(QPS),默认无速率限制。
-z 发送请求的持续时间。达到时长后应用停止并退出。若指定时长,则忽略 -n。
示例:-z 10s -z 3m。
-o 输出类型。若未指定则打印摘要。唯一支持的备选项为 "csv",以逗号分隔值格式转储响应指标。
-m HTTP 方法,可选 GET、POST、PUT、DELETE、HEAD、OPTIONS。
-H 自定义 HTTP 头部。可通过重复该标志指定多个头部。
例如:-H "Accept: text/html" -H "Content-Type: application/xml"。
-t 每个请求的超时时间(秒),默认值为 20,设为 0 表示无超时。
-A HTTP Accept 头部。
-d HTTP 请求体内容。
-D HTTP 请求体文件路径。例如:/home/user/file.txt 或 ./file.txt。
-T Content-type,默认值为 "text/html"。
-a 基本身份验证,格式为 用户名:密码。
-x HTTP 代理地址,格式为 主机:端口。
-h2 启用 HTTP/2。
-host HTTP Host 头部。
-disable-compression 禁用压缩。
-disable-keepalive 禁用 Keep-Alive,阻止在不同 HTTP 请求间复用 TCP 连接。
-disable-redirects 禁用跟随 HTTP 重定向。
-cpus 使用的 CPU 核心数。(当前机器默认值为 8 核)
示例
使用默认设置发送请求:
hey https://google.com
使用 100 个并发线程发送 1000 个请求:
hey -n 1000 -c 100 https://google.com
运行 30 秒负载测试:
hey -z 30s https://google.com
发送带自定义请求体的 POST 请求:
hey \
-m POST \
-d "param1=value1¶m2=value2" \
https://google.com
添加自定义头部:
hey \
-H "Accept: application/json" \
-H "Authorization: Bearer token" \
https://google.com
测试 HTTP/2:
hey -h2 https://google.com
将每个工作线程的速率限制为 10 次查询/秒:
hey -q 10 -c 5 -z 30s https://google.com
相似文章
Show HN: Rapel – 不稳定网络中的分块可续传下载
Rapel 是一个支持续传的分块 HTTP 下载工具,专为不稳定网络设计。它具备并发下载、JSON 状态管理、优雅关闭及跨平台支持等特点。
Show HN: Bash4LLM+ – 一个轻量级、无依赖的 Bash 封装器,用于 LLM API
Bash4LLM+ 是一个轻量级、无依赖的 Bash 封装器,用于 LLM API,提供与 Groq 及其他提供者的安全、可审计交互,具有动态模型列表、流式输出和可扩展附加功能等特点。
Cro – Raku 中的优雅响应式服务
Cro 是一组用于构建响应式分布式系统的 Raku 库,具备带路由的 HTTP 服务器、WebSocket 支持以及异步管道。
Show HN: 一个纯ARM64汇编编写的Web服务器,现可在Linux上运行,并可无理由支持CGI
ymawky 是一个完全用ARM64汇编编写的Web服务器,支持CGI、静态文件和多种HTTP方法,现已可在Linux上运行。
Show HN: 用汇编语言构建 Web 服务器,为我的生命赋予(些许缺乏的)意义
ymawky 是一个专为 macOS 编写的 ARM64 汇编 Web 服务器,其特点是不依赖 libc 仅使用系统调用,并具备基本的 HTTP 功能。