一、下载安装
https://github.com/bojand/ghz...
官方文档: https://ghz.sh/docs/usage
大致可以分为三类参数:
基本参数
负载参数
并发参数
基本参数
--config:指定配置文件位置--proto:指定 proto 文件位置,会从 proto 文件中获取相关信息--call:指定调用的方法。
具体格式为包名.服务名.方法名
如:--call helloworld.Greeter.SayHello-c:并发请求数-n:最大请求数,达到后则结束测试-d:请求参数
JSON格式,如-d '{"name":"Bob"}'
-D:以文件方式指定请求参数,JSON文件位置
如-D ./file.json-o:输出路径
默认输出到 stdout-O/--format:输出格式,有多种格式可选便于查看的:csv、json、pretty、html:
便于入库的:influx-summary、influx-details:满足InfluxDB line-protocol 格式的输出
以上就是相关的基本参数,有了这些参数基本可以进行测试了。
配置文件:
所有参数都可以通过配置文件来指定,这也是比较推荐的用法。
{
"proto": "/path/to/greeter.proto",
"call": "helloworld.Greeter.SayHello",
"total": 2000,
"concurrency": 50,
"data": {
"name": "Joe"
},
"metadata": {
"foo": "bar",
"trace_id": "{{.RequestNumber}}",
"timestamp": "{{.TimestampUnix}}"
},
"import-paths": [
"/path/to/protos"
],
"max-duration": "10s",
"host": "0.0.0.0:50051"
}
ghz --config ./ghz.json
使用方式:
ghz -c 10 -n 1000 \
--insecure \
--proto ./hello_world.proto \
--call helloworld.Greeter.SayHello \
-d '{"name":"Joe"}' \
0.0.0.0:50051
【GRPC 压测工具 ghz】参考: https://www.lixueduan.com/pos...
推荐阅读
- Go函数学习
- golang sync 包
- GoTests 工具自动化 test 使用
- 9张图轻松吃透Go内存管理单元
- Go内存架构,一个有趣的问题
- Go 语言第一课--核心篇
- GoLang底层|GoLang之切片底层系列二(浅显学习)
- 在从Golang Buffalo webapp发送推文时设置CSRF令牌时遇到问题
- 使用Air热加载Go程序(windows下的配置)