ghz grpc 压力测试使用

ghz grpc 压力测试使用,第1张

grpc压力测试

通过ghz来对grpc接口进行压力测.

ghz是通过golang开发的针对grpc的压测工具,ghz基于proto或者protoset来发起grpc调用,类似常规的测试(ABtest),可以指定并发量,请求总数,请求频率。

并且能够输出html,csv,json,prometheus等让我们更加直观的看到接口接口性能情况.

链接

官方文档 github

windows安装以及踩坑

用下载好的zip也可以去 下载地址 不同的版本,我目前只在windows上使用.

使用protoc

ghz可以通过proto文件也可以通过protoset调用grpc服务. 我个人推荐使用protoset,因为提前使用protoc编译好了的protoset文件可以让ghz调用不用考虑到proto文件的一些引用问题.

 protoc --include_imports -I . --descriptor_set_out=bundle.protoset *.proto

注意使用 –include_imports 不然很多依赖的proto不会编译进来

使用ghz执行测试

之后我们就可以使用ghz

解压配置并且配置环境变量


基于protoset执行测试

简单的调用

ghz --insecure   --protoset bundle.protoset   --call Service.method  127.0.0.1:7999

常用指令

   --skipFirst  grpc最好第一个跳过,因为比较慢
   --insecure  使用文本和非安全的连接
   -r|--rps=0  rps的速率限制,默认没有限制
   -c|--concurrency  指定并发数量 默认50
   -n| --total  一共请求的数量 默认200
   -d|--data  通过json的方式发送请求报文
   -D|--data-file  指定json文件调用数据
   -o|--output 输出路径
   -O|--format 输出的格式 summary, csv, json, pretty, html, influx-summary, influx-details

调用相关:
   --protoset 指定protoset文件
   -i | --import-paths 指定proto文件的路径(用protoset不需要使用)
   --call 指点调用的方法(package.Service/Method' 或者 'package.Service.Method' )

输出结果

  • count - 包含成功和失败的全部请求数量.
  • total - 从开始到结束的全部时间.
  • slowest - 最慢的请求
  • fastest - 最快的请求
  • average - 平均请求数量
  • requests/sec - rps

通过-O 输出html等

ghz --insecure -o test.html -O html  --protoset bundle.protoset   --call Service.method 127.0.0.1:7999

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/871031.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存