Locust 完成 gRPC 协议的性能测试
1、gRPC 知多少
对于分布式系统而言,不同的服务分布在不同的节点上,一个服务要完成自己的功能经常需要调用其他服务的接口,比如典型的微服务架构。通常这种服务调用方式有两种,一种是发送 HTTP 请求的方式,另一种则是 RPC 的方式,RPC 是 Remote Procedure Call(远程过程调用)的简称,可以让我们像调用本地接口一样使用远程服务。gRPC 是一个由 google 推出的、高性能、开源、通用的 rpc 框架。它是基于 HTTP2 协议标准设计开发,默认采用 Protocol Buffers 数据序列化协议,支持多种开发语言。ProtoBuf buffer 是一种数据表达方式,以.proto 结尾的数据文件,可以类比 json、xml 等。
2、脚本设计
在我们开始性能测试之前,我们必须先有一个测试服务,那么我给你一个最简单的 gRPC 服务的例子。https://download.csdn.net/download/chenlei_525/19339531
再打开这个例子后,第一步要通过如下的命令安装依赖
那么我们线运行一下,通过如下命令启动服务端:
然后我们再次运行:
我们可以在服务端的控制台看到如下打印内容:
在客户端代码的控制台看见如下返回:
如果上面一切 ok 那么说明我们已经为利用 Locust 完成 gRPC 性能测试准备好了一个测试服务了。
3、撰写 Locust 脚本
所需文件下载地址:https://download.csdn.net/download/chenlei_525/19340128第一步我们就是要通过研发提供的.proto 文件生成 Python 的访问代码。命令如下:
会生成两个 python 文件,helloworld_pb2.py helloworld_pb2_grpc.py,我们将其复制到我们的测试脚本代码所在目录下,然后创建性能测试脚本如下:
4、控制台启
动在脚本所在的目录下执行:
就可以启动 Locust 的控制台了图片:
输入性能测试场景参数后,点就开始测试就可以进入压力测试阶段了。
测试脚本工程下载地址:https://download.csdn.net/download/chenlei_525/19341045
版权声明: 本文为 InfoQ 作者【陈磊@Criss】的原创文章。
原文链接:【http://xie.infoq.cn/article/34c1bac17e5b1be43847d42c5】。文章转载请联系作者。
评论