【发布时间】:2018-05-25 15:44:53
【问题描述】:
我被指派测试一个 gRPC API(用 Golang 编写),但我不知道如何测试它,而且我在网上找不到任何此类测试的教程。我能想到的唯一方法是编写单元测试来测试方法本身,但我也想用客户端测试它。例如,我过去测试过使用 JMeter 作为客户端发送请求并验证响应数据的 REST API。是否有使用客户端测试 gRPC API 的方法,还是唯一的方法是单元测试?
【问题讨论】:
我被指派测试一个 gRPC API(用 Golang 编写),但我不知道如何测试它,而且我在网上找不到任何此类测试的教程。我能想到的唯一方法是编写单元测试来测试方法本身,但我也想用客户端测试它。例如,我过去测试过使用 JMeter 作为客户端发送请求并验证响应数据的 REST API。是否有使用客户端测试 gRPC API 的方法,还是唯一的方法是单元测试?
【问题讨论】:
可以有两种类型的测试。
忽略网络仅测试 gRPC 方法的实现
this 问题回答了这方面的测试。只需为 RPC 方法编写单元测试
如果您想同时测试实现和 gRPC 网络方面,那么您需要为要测试的服务编写 gRPC 客户端。
这里是关于创建 gRPC 客户端的代码 sn-p
// Set up a connection to the server.
conn, err := grpc.Dial(address, grpc.WithInsecure())
// Execute RPC you want to test
r, err := c.SayHello(context.Background(), &pb.HelloRequest{Name: name})
查看here 获取完整的代码示例
【讨论】:
init方法中)并在所有测试用例完成后停止。
好吧,我正在寻找像 Postman 这样的客户,然后我找到了bloomrpc,它有助于调用 grpc 服务。但我不确定它是否符合您的目的,如果您正在寻找像 jmeter 这样的工具。
【讨论】:
你也可以试试这个command line tool,evans,来测试 gRPC
【讨论】:
如果您正在寻找像 Postman 这样的工具,还有https://kreya.app。有了它,您可以调用您的 gRPC 服务并查看响应。
免责声明:我是 Kreya 的作者之一。
【讨论】: