Appearance
使用 OHA 进行压力测试
什么是 OHA?
Ohayou(おはよう) 是一个用 Rust 编写的轻量级 HTTP 负载生成器,它能够向 Web 应用发送负载,并实时显示 TUI。这个程序由 tokio 提供动力,并使用了由 ratatui 创建的美观的 TUI。
相比于许多传统的性能测试工具,OHA 的特点是简单易用,且性能非常高,能够在高并发场景下提供良好的测试体验。
安装 OHA
- 在 Windows 上还可以直接使用 winget 来安装:
shell
winget install hatoo.oha- 下载 .exe
https://github.com/hatoo/oha/releases/download/v1.16.0/oha-windows-amd64.exe
powershell
// :: 1. 改名
ren oha-windows-amd64.exe oha.exe
// :: 2. 扔进 Windows 目录(自动在 PATH 里,全局可用)
move oha.exe C:\Windows\
// :: 3. 验证
oha --versionOHA 核心参数
-n <N>总请求数。默认值: 200。 示例:-n 5000-c <N>并发连接数。默认值: 50。 示例:-c 200-z <DURATION>测试持续时间。与-n互斥,若指定则忽略-n。 示例:-z 10s, -z 3m-q <QPS>全局速率限制,即每秒请求数(QPS)。 示例:-q 100
使用 OHA
这个命令会向 https://example.com 发送 200 个请求,使用 50 个并发连接。
shell
oha https://example.com指定请求数量和并发数
向 https://example.com 发送 1000 个请求,使用 100 个并发连接。
shell
oha -n 1000 -c 100 https://example.com指定压测时间
持续 10 秒发送请求。
shell
oha -z 10s https://example.comQPS 限速
每秒 100 个请求的速度向 https://example.com 发送请求。
shell
oha -q 100 https://example.com进阶用法
带参数
使用 10 个并发,共发送 200 个请求。
shell
oha -m GET -H "Authorization: Bearer eyJhbGciOXVCJ9.eyJodHRwOi8vc2NoZW1hcy543po" -H "Content-Type: application/json" -n 200 -c 10 "https://example.com/data-sync/get-mailaddress-page?pageIndex=1&pageSize=1000&remoteVersion=31484"组合测试
进行 10 秒的压测,使用 100 个并发连接,每秒 100 个请求的速率,并启用延迟修正,关闭 keep-alive 连接。
shell
oha -z 10s -c 100 -q 100 --latency-correction --disable-keepalive https://example.com