这篇会介绍 gRPC 协议请求的编排方法。
一、协议上传
将你定义好的 proto 文件,通过云压测 > 测试场景 > 新建测试场景 > 文件管理 > 协议文件上传。
注意:说明:
注意:关于 PTS 支持的协议类型及使用方法,请参见 使用协议文件。
二、脚本编写
先创建一个 gRPC client,然后你可以使用 client 提供的以下方法编写你的逻辑:
·load:加载并解析你上传的 proto 文件。
·connect:与 gRPC 服务器建立连接。
·invoke:发起 RPC 调用并获得响应。
·close:关闭连接。
Proto 文件及场景脚本的示例如下:
// based on https://github.com/go-kit/kit/blob/master/examples/addsvc/pb/addsvc.protosyntax = "proto3";package addsvc;// The Add service definition.service Add { // Sums two integers. rpc Sum (SumRequest) returns (SumReply) {}}// The sum request contains two parameters.message SumRequest { int64 a = 1; int64 b = 2;}// The sum response contains the result of the calculation.message SumReply { int64 v = 1; string err = 2;}
场景脚本:
// GRPC APIimport grpc from 'pts/grpc';const client = new grpc.Client();// 加载协议文件根目录中的 addsvc.protoclient.load([], 'addsvc.proto');export default () => { client.connect('grpcb.in:9000', { insecure: true }); const rsp = client.invoke('addsvc.Add/Sum', { a: 1, b: 2, }); console.log(rsp.data.v); // 3 client.close();};
三、文件依赖
在压测场景里,你可上传以下几种类型的文件,提供压测执行时的状态数据:
·参数文件:以 csv 文件的形式,动态提供测试数据。也即,场景被每个并发用户(VU)执行时,会获取参数文件里的每行数据,作为测试数据的值,供脚本里的变量引用。具体使用方法参见:使用参数文件。
·请求文件:构建你的请求所需的文件,如需要上传的文件。具体使用方法参见:使用请求文件。
·协议文件:请求序列化所需要用到的文件。具体使用方法参见:使用协议文件。