用Python进行gRPC接口测试
发布时间:2020-01-08 12:31:14 所属栏目:资源 来源:搜狗测试
导读:gRPC 是一个高性能、通用的开源RPC框架,其由 Google 主要面向移动应用开发并基于HTTP/2 协议标准而设计,基于 ProtoBuf(Protocol Buffers) 序列化协议开发,且支持众多开发语言。 自gRPC推出以来,已经广泛应用于各种服务之中。在 测试 中,我们也越来越
gRPC 是一个高性能、通用的开源RPC框架,其由 Google 主要面向移动应用开发并基于HTTP/2 协议标准而设计,基于 ProtoBuf(Protocol Buffers) 序列化协议开发,且支持众多开发语言。 自gRPC推出以来,已经广泛应用于各种服务之中。在测试中,我们也越来越多地遇到gRPC接口相关的测试内容。测试一个gRPC接口,我们往往需要一个测试用的客户端,本文就为大家介绍如何用python来实现一个简易的gRPC客户端程序。 一、前期准备 gRPC 默认使用 protocol buffers,这是 Google 开源的一套成熟的结构数据序列化机制。在开始编写客户端之前,我们首先要安装一些必要的模块和工具。 安装好了必要的模块和工具(编译器)之后,我们就可以根据proto协议文件生成所需的模块和方法。比如我们要测试的接口协议文档为helloword.proto,文档内容为: 就可以执行以下命令来快速获取: 生成的模块、方法会保存在两个文件之中,分别为helloworld_pb2.py、helloworld_pb2_grpc.py。这两个文件是实现客户端时不可缺少的。 二、客户端实现 在前期准备完成之后,实现一个客户端并非难事,我们只需将自动生成的文件和模块引用进来,就可以调用一些内置方法来完成与gRPC接口的交互。 比如上面生成的文件是helloworld_pb2.py、helloworld_pb2_grpc.py,我们就在客户端引入这两个模块: 同时再引入必要的grpc模块: 接下来就是调用模块中的方法来进行grpc接口的连接、测试了。如果服务端起在本地的50051端口,完整实现的代码如下: 其中,关键的步骤为: 1、连接rpc服务器; 2、对service获取一个stub用于调用接口; 3、发送数据、接收数据。 将代码保存为client.py,运行脚本就可以成功获取服务端返回的结果了,假设服务端返回的文本为"Hello": 到这里,一次简单的gRPC接口连接、交互就算完成了,并实现了一个简易的gRPC客户端。 三、实际应用 在知音平台项目中,官网控制台需要获取某个用户对于某种服务的用量。官网控制台与后端服务之间使用gRPC接口,通信方式为客服端一次请求, 服务器一次应答。 按照上面介绍的方法,我们可以制作一个简单的测试客户端,模拟官网控制台对后端服务进行请求,实现对用户用量的查询。 接口协议如下(仅为演示需要,只展示部分内容) 实现客户端关键方法如下: 运行客户端(已利用argparse模块做成命令行形式),可以成功返回结果:![]() ![]() ![]() ![]() (编辑:92站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |