gRPC 接口编写流程

2019-05-05  本文已影响0人  lvxy_js

一. gRPC介绍

在gRPC中,客户端应用程序可以直接在不同机器上的服务器应用程序上调用方法,就像它是本地对象一样,使您更容易创建分布式应用程序和服务。

二. 如何生成gRPC代码

概述

手动编写proto文件,然后通过gRPC的程序生成C++/Python代码

使用 protocol buffers 去定义 gRPC 的 service 的方法和request 以及 response 的类型

参考TalkLogicRpc\TalkLogicRpc.proto文件

gRPC service 方法

service Call {
rpc GetTalkData (GetTalkDataReq) returns (GetTalkDataResp);
}

request 以及 response 的类型

message GetShareHandleReq {
}
message GetShareHandleResp {
uint32 result = 1;
}

三. 接口编写基本流程

实例

为了能调用服务的方法,我们得先创建一个存根

with grpc.insecure_channel('localhost:50006') as channel:

返回的对象实现了定义在 ConfStub 接口中的所有对象。

request = TalkLogicRpc_pb2.CreateConferenceReq(listInviteMember=listInviteMember, 
                                                   videoCall=videoCall, 
                                                   groupId='')
response = stub.CreateConference(request)

以上则完成了单个接口,单个请求参数的接口用例编写介绍

四. 接口用例自动生成框架

背景

  1. 一个接口往往存在多种入参,例如建立通话的号码,可以呼各种情况【‘5061’,‘空’,‘特殊字符’等等】,而同一个接口的方法体基本相同
  2. 为了方便统计,需要使用unittest框架生成测试报告统计测试结果

需求
为了满足1和2,需要可以在同一个接口,根据参数配置,自动生成测试用例,因此封装了框架

1. 目录结构

API-Python
├─common                # 存放公共方法:包括开发给的接口,自己写的公共方法
├─result               # 执行脚本
├─testcase            # 存放用例
│      ├──call
│      └──meeting
├─config.ini                  # 工具类
├─runAll.py                  # 工具类
└─errorcode_config.xls      # 存放接口入参及期望值,一个接口一个页签

2. 注意事项

在testCase/模块的目录下新增接口测试py文件时(例如建立通话接口测试——test_make_call.py)

module_str = 'testCase.meeting' # 要运行的接口模块
interface_list=['test_disable_member_speaker'] # 要运行的接口名称

备注

当前的多接口运行,暂时只支持单模块多接口,后面会继续修改成 多模块多接口可配

上一篇 下一篇

猜你喜欢

热点阅读