ghz grpc 压力测试使用

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

生成的html

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FantasyBaby

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值