GRPC 压测工具 ghz

一、下载安装
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

参考: https://www.lixueduan.com/pos...

你可能感兴趣的:(golang)