k6/net/grpc
k6/net/grpc
模块提供了一个 gRPC 客户端,用于通过 HTTP/2 进行远程过程调用 (RPC)。
类/方法 | 描述 |
---|---|
Client | 用于向 gRPC 服务器发起 RPC 调用的 gRPC 客户端。 |
Client.load(importPaths, ...protoFiles) | 加载并解析给定的协议缓冲区定义,使其可用于 RPC 请求。 |
Client.connect(address [,params]) | 连接到给定的 gRPC 服务。 |
Client.invoke(url, request [,params]) | 对给定的服务/方法执行一元 RPC 并返回一个 Response。 |
Client.asyncInvoke(url, request [,params]) | 异步地对给定的服务/方法执行一元 RPC 并返回一个包含 Response 的 Promise。 |
Client.close() | 关闭与 gRPC 服务的连接。 |
参数 | RPC 请求特定选项。 |
Response | 由 RPC 请求返回。 |
常量 | 定义常量以区分 gRPC Response 状态。 |
Stream(client, url, [,params]) | 创建一个新的 gRPC 流。 |
Stream.on(event, handler) | 为可能的流事件之一添加新的监听器。 |
Stream.write(message) | 向流写入消息。 |
Stream.end() | 向服务器发送信号,表示客户端已完成发送。 |
EventHandler | gRPC 流上各种事件调用的函数。 |
元数据 | gRPC 流消息的元数据。 |
gRPC 指标
k6 对 gRPC 请求进行特定测量。有关完整列表,请参阅指标参考。
示例
import grpc from 'k6/net/grpc';
import { check, sleep } from 'k6';
const client = new grpc.Client();
client.load(null, 'quickpizza.proto');
export default () => {
client.connect('grpc-quickpizza.grafana.com:443', {
// plaintext: false
});
const data = { ingredients: ['Cheese'], dough: 'Thick' };
const response = client.invoke('quickpizza.GRPC/RatePizza', data);
check(response, {
'status is OK': (r) => r && r.status === grpc.StatusOK,
});
console.log(JSON.stringify(response.message));
client.close();
sleep(1);
};