10 个稳定版本
1.1.6 | 2024 年 6 月 3 日 |
---|---|
1.1.4 | 2024 年 1 月 22 日 |
1.1.3 | 2023 年 10 月 30 日 |
1.1.1 | 2023 年 5 月 5 日 |
1.0.2 | 2023 年 3 月 22 日 |
#27 in 性能分析
545 每月下载次数
1MB
713 行
Goku
Goku 是一个基于 drill 和 vegeta 启发而构建的 HTTP 服务钻探需求的 HTTP 负载测试工具
安装
自动下载(Linux、OSX、WSL)
您可以使用以下命令直接将 Goku 最新版本下载到当前目录:
curl -sSL https://raw.githubusercontent.com/jcaromiq/goku/1.1.6/scripts/install.sh | sh
使用 Cargo
cargo install goku-bench
goku --version
手动下载
转到 Goku 的 GitHub 发布页面,下载与您的系统匹配的最新 .tar.gz
文件。目前,有以下可用的 tar 文件:
- Linux (x86_64)
- macOS (x86_64)
- Windows (x86_64)
源代码
作为要求,您需要安装 rust
$ cargo build --release
版本控制
CLI 使用 SemVer v2.0.0 进行版本控制。
贡献
使用手册
Usage: goku [OPTIONS] --target <TARGET>
Options:
-v, --verbose Runs in verbose mode
-t, --target <TARGET> URL to be requested using an operation [default: GET] Ex. GET https://127.0.0.1:3000/
-r, --request-body <REQUEST_BODY> File path for the request body
-c, --clients <CLIENTS> Number of concurrent clients [default: 1]
-i, --iterations <ITERATIONS> Total number of iterations [default: 1]
-d, --duration <DURATION> Duration of the test in second
--headers <HEADERS> Headers, multi value in format headerName:HeaderValue
--scenario <SCENARIO> Scenario file
-h, --help Prints help
-V, --version Prints version information
--target
-t
指定操作和请求的 URL,默认为 GET。
格式:GET https://127.0.0.1:3000
--request-body
-r
可选
指定要发送的正文文件的路径。
--clients
-c
指定要使用的并发调用数,默认为 1。
--iterations
-i
指定要执行的总调用数,默认为 1。
--duration
-d
指定测试时长(秒)。
--headers
可选
指定要发送的头部信息。
--scenario
可选
指定yaml格式的场景文件。
target: POST https://127.0.0.1:3000/
clients: 50
requests: 1000
headers:
- key: "bar"
value: "foo"
- key: "Content-Type"
value: "application/json"
body: "{\"firstName\": \"Terry\",
\"lastName\": \"Medhurst\",
\"maidenName\": \"Smitham\",
\"age\": 50}"
--帮助
打印帮助信息。
--version
打印版本信息。
简单目标
goku --target "GET https://127.0.0.1:3000"
goku --target http://localhost:3000?foo=bar
goku -c 50 -i 1000 --target http://localhost:3000
goku -c 50 --duration 60 --target http://localhost:3000
带有自定义头部的目标
goku --target "GET https://127.0.0.1:3000" --headers Content-Type:application/json --headers bar:foo
带有自定义正文的目标
goku -c 50 -i 1000 -r body.json --target "POST https://127.0.0.1:3000"
带有自定义正文和头部的目标
goku -r body.json --target "POST https://127.0.0.1:3000" --headers Content-Type:application/json --headers bar:foo
输出
Concurrency level 50
Time taken 4 seconds
Total requests 1000
Mean request time 169.90099999999998 ms
Max request time 415 ms
Min request time 5 ms
95'th percentile: 319 ms
99.9'th percentile: 367 ms
许可证
查看LICENSE。
捐赠
如果您欣赏在这个项目中完成的全部工作,小额捐赠总是受欢迎的。
依赖
~19–32MB
~619K SLoC