接口测试 请问各位 grpc 接口,如何做压测呢用什么工具 可以用 jmeter 吗?

wei · 2020年04月02日 · 最后由 TD 回复于 2020年04月15日 · 4132 次阅读

请问各位 grpc 接口,如何做压测呢用什么工具 可以用 jmeter 吗?

共收到 11 条回复 时间 点赞

请问一下 grpc 接口可以封装成 RF 的关键字进行调用吗

压测,我们一般用 Java,自研的压测框架

grpc 协议,基于 HTTP/2 和 pb 协议,因此工具需要支持读取 pb 协议和 HTTP/2(正常来说这个可以忽略)。
我们这样做,使用 node js 写一个 http 服务,并且 封装一个 请求 grpc 接口的 function,node js 收到 http 请求后,马上调用 请求 grpc 接口的 function,并且返回 grpc 接口的 response 给 http 客户端。并且 node js 采用 master ,worker 模式,尽量让 node js 不会成为压测链路的瓶颈。调用链路如下:
wrk/ab/jmeter --> node js proxy --> grpc 服务

********* | --- http -- | **** | -- grpc --| ***

此模式,不局限 http --> grpc ,还可以 http --> websocket, http --> thrift 等等

可以考虑使用 jmeter 里面的 JavaSamplerClient 类

TD 回复

可以,grpc 可以使用 python 实现客户端,然后封装成 RF 关键字

@weizhao1zhao 可以用 jmeter 。可以用 JavaSamplerClient(自己写 java 代码并打包给 jmeter )或者把 grpc 契约包打包成 jar 包,加入 jmeter 依赖后给 beanshell 使用。

后者相对灵活一些,但会有额外的性能损耗(beanshell 解析器的资源消耗)。

PB 的都需要自研的,目前我们是自研

Bingoo 回复

这个不太了解,具体怎么弄,嘿嘿,有示例吗

wei #3 · 2020年04月07日 Author
陈恒捷 回复

后面的这种有示例吗?第一次弄还是不太明白

TD 回复

https://www.jianshu.com/p/43fdfeb105ff?from=timeline&isappinstalled=0
先学一下 grpc python 客户端的实现方式,RF 部分就和 http 请求封装差不多了

Bingoo 回复

好的,谢谢

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册