grpc服务压测

QA同事们用的是jmeter,用惯了wrk还真是用不来。

准备环境:windows开发机

准备工具

h2load:https://github.com/nghttp2/nghttp2 压测工具

wireshark:https://www.wireshark.org   抓包工具。这一步可选,如果熟悉grpc数据格式的话,手写数据也没问题。

虚拟机:wireshark抓过网卡的数据,所以localhost是不行的,所以最简单的办法是弄个虚拟机。

 

开始

就拿example/helloworld为例,先确保client和server工作正常、通信正常,开始抓包

184142_ZuUN_2917931.png

因为是内部服务,不需要tls;如果是有证书的话,要对wireshark多设置几步,网上很多,此处略过。

过滤规则、URI 确定没错之后,导出字节流存为一个文件hello.bin

h2load http://ip:50051/helloworld.Greeter/SayHello -d hello.bin -H 'te: trailers' -H 'content-type: application/grpc' -n100

184612_W28u_2917931.png

收工

 

转载于:https://my.oschina.net/papayakov/blog/1801149

Locust是一款用于进行负载和压力测试的开源工具,可以用于测试各种类型的应用程序和协议,包括gRPCgRPC是一款高性能、跨语言、开源的远程过程调用(RPC)框架,可以用于构建可靠和高效的分布式系统。 要使用Locust进行gRPC压测,需要先安装Locust,并根据测试需求编写相应的脚本。在脚本中,需要定义gRPC的请求和响应,以及压力测试的行为和逻辑。 首先,需要导入必要的库和模块,如grpc、locust等。然后,定义一个gRPC客户端类,用于发送gRPC请求和处理响应。在该类中,可以编写请求和响应的具体逻辑,包括请求参数、协议格式等。 接下来,定义一个Locust的用户类,用于模拟并发访问gRPC服务。该类需要继承Locust的User类,并实现相关的方法,如on_start、on_stop等。在on_start方法中,可以初始化gRPC客户端并建立连接;在on_stop方法中,可以关闭连接和清理资源。 最后,编写一个Locust的测试类,用于配置并运行压测任务。在该类中,需要定义并配置相关的性能参数,如并发用户数、每秒请求数等。然后,启动Locust进行测试,可以通过Web界面监控测试的进程和结果。 总结来说,通过使用Locust进行gRPC压测,可以方便地模拟并发访问gRPC服务,验证其性能和稳定性。通过编写相应的脚本和配置相关参数,可以实现多样化的压测场景和测试需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值