用Python进行gRPC接口测试(二)
发布时间:2020-02-14 15:42:53 所属栏目:资源 来源:搜狗测试
导读:今天将继续为大家带来用 Python 进行gRPC接口 测试 的续集,上次主要讲了一下前期准备工作和简单RPC通信方式的实现,这次我们将着眼于另一类gRPC接口的通信形式——流式RPC。 上期回顾:用Python进行gRPC接口测试: http://www.51testing.com/html/93/n-44
今天将继续为大家带来用Python进行gRPC接口测试的续集,上次主要讲了一下前期准备工作和简单RPC通信方式的实现,这次我们将着眼于另一类gRPC接口的通信形式——流式RPC。 上期回顾:用Python进行gRPC接口测试:http://www.51testing.com/html/93/n-4463993.html 一、流式RPC的三种具体形式 流式RPC不同于简单RPC只有“单发单收“一种形式,而是可以分为三种不同的形式——“应答流式RPC”,“请求流式RPC”,“双向流式RPC”。对于这三种不同的形式,python有不同的请求及接收方式,下面就让我们来具体了解一下。(对于下面操作有疑问的同学可以去看上一期的内容) 首先接口协议是有区别的,我们来看三种形式的接口定义: 应答流式RPC: 请求流式RPC: 双向流式RPC: 可以看到,请求和响应参数中流式内容的前面会有一个stream标识,代表这是一个流式的内容。应答流式RPC只有返回是流式的,请求流式RPC只有请求是流式的,而双向流式RPC请求和返回都是流式的。 一个包含接口的完整proto协议文件(route_guide.proto)内容如下: 根据协议文件生成route_guide_pb2.py、route_guide_pb2_grpc.py两个必要的模块文件,然后就可以根据他们来创建客户端了。 二、客户端实现 1、应答流式RPC 应答流式RPC返回的内容为流式,一次请求,n次返回。我们可以用for循环来接收返回的内容: 2、请求流式RPC 请求流式RPC请求的内容为流式,n次请求,一次返回。我们可以用迭代器来发送若干份请求数据: 其中route_iterator为一个迭代器。 3、双向流式RPC 双向流式RPC请求的内容为流式,返回内容也为流式,n次请求,n次返回。我们可以用迭代器来发送若干份请求数据,通过for循环来接收返回结果: 三、实际应用 在录音笔项目中,需要对转写后的文本进行分段语义整理,由于文本内容可能较多,服务端需要采用流式的方式进行接收,并通过流式的方式将结果返给客户端,于是这里采用了双向流式RPC形式的接口。 接口协议如下(仅为演示需要,只展示部分内容): 实现客户端的关键代码如下: 运行客户端,可以成功返回结果:![]() ![]() ![]() ![]() (编辑:淮北站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |