基于 Go 的 HTTP(S) 压测命令行工具,提供终端实时显示和 Web 图表。
hatoo/oha
用 Rust 编写的命令行 HTTP 压测工具,灵感来自 hey,带实时终端界面。
- Star
- 10,629
- Fork
- 306
- 未关闭 Issue
- 59
- 最近提交
- 3天前
这是什么?
oha 是一个命令行 HTTP 压测工具,可以对 Web 应用发送请求负载,并在实时终端界面中展示结果。它参照 rakyll/hey 设计,选项风格与之相近,但 -q 参数表示整体每秒请求数,而不是每个 worker 的请求数。
工具支持 HTTP/1.1、HTTP/2(可为每个连接设置并行请求数)以及实验性的 HTTP/3。可以控制请求速率、突发模式和压测时长,也可以基于正则生成随机 URL,或从文件读取 URL 列表。开启延迟校正可避免协调遗漏(coordinated omission)问题。输出支持文本、JSON、CSV 和静默模式,成功的请求还可以写入 SQLite 数据库。
项目基于 tokio 和 ratatui 构建,支持 rustls 或 native-tls 两种 TLS 实现、客户端证书、AWS SigV4 签名、代理、Unix socket 以及 VSOCK。可通过 Cargo、Homebrew、Arch Linux、winget 和 Docker 安装。
核心功能
- 01运行时通过实时终端界面展示吞吐量和延迟。
- 02支持 HTTP/1.1、HTTP/2,以及实验性的 HTTP/3。
- 03可按 QPS 限速、设置突发模式,并支持按时长运行。
- 04可基于正则生成随机 URL,或从文件读取 URL 列表。
- 05输出支持文本、JSON、CSV 和静默模式。
- 06提供延迟校正选项,避免协调遗漏问题。
- 07支持 TLS 配置、客户端证书、代理和 AWS SigV4 签名。
适用场景
- 发布前对 Web 服务做压力测试,观察其在并发下的表现。
- 对比同一接口在 HTTP/1.1 与 HTTP/2 下的性能。
- 用访问日志中的 URL 回放请求,模拟更真实的流量分布。
- 在 CI 或脚本中通过 JSON 或 CSV 输出快速完成基准测试。
快速上手
- 1
使用 Cargo 安装 oha(需要 Rust、make 和 cmake)
cargo install oha - 2
参照 README 的 Usage 部分,对目标 URL 运行 oha
使用前须知
- 通过 Cargo 从源码构建需要预先安装 make 和 cmake。
- HTTP/3 功能处于实验阶段,且依赖 rustls 作为 TLS 实现。
- README 仅列出了测试过的平台(Linux、Windows 10、macOS),未声明更广泛的支持。
收录于专题
标签
常见问题
- oha 是什么?
- 用 Rust 编写的命令行 HTTP 压测工具,灵感来自 hey,带实时终端界面。 oha 是一个命令行 HTTP 压测工具,可以对 Web 应用发送请求负载,并在实时终端界面中展示结果。它参照 rakyll/hey 设计,选项风格与之相近,但 -q 参数表示整体每秒请求数,而不是每个 worker 的请求数。
- oha 可以免费使用吗?用的什么许可证?
- oha 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- oha 还在维护吗?
- 活跃维护中。oha 最近一次提交是在 2026年10月22日。
- oha 适合用来做什么?
- 发布前对 Web 服务做压力测试,观察其在并发下的表现。 对比同一接口在 HTTP/1.1 与 HTTP/2 下的性能。 用访问日志中的 URL 回放请求,模拟更真实的流量分布。 在 CI 或脚本中通过 JSON 或 CSV 输出快速完成基准测试。
- oha 怎么安装和运行?
- 使用 Cargo 安装 oha(需要 Rust、make 和 cmake): cargo install oha 参照 README 的 Usage 部分,对目标 URL 运行 oha
- 在哪里获取 oha?
- 源代码和安装说明在 GitHub 上:https://github.com/hatoo/oha
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
开源负载测试工具,用普通 Python 代码编写 HTTP 等协议的压测场景,并提供 Web 界面。
用 Go 编写的跨平台 HTTP(S) 命令行压测工具,基于 fasthttp 实现高吞吐请求。
一款命令行基准测试工具,支持统计分析、预热运行,并可导出为 CSV、JSON、Markdown 等格式。
开源 Java 应用,用于对 Web 应用及其他服务进行负载测试和性能测量。
精选的 HTTP(S) 压测、测试调试与 REST API 客户端工具合集,附简要说明。