如何测试gRPC API?

时间:2017-12-12 02:25:48

标签: testing go rpc grpc

我被分配来测试gRPC API(用Golang编写),但我不知道如何测试它,我找不到任何在线教程进行此类测试。我能想到的唯一方法是编写单元测试来测试方法本身,但我也想用客户端测试它。例如,我过去使用JMeter作为客户端测试REST API来发送请求并验证响应数据。有没有一种方法可以用客户端测试gRPC API,还是单独测试单元?

5 个答案:

答案 0 :(得分:2)

可以有两种类型的测试。

  • 通过忽略网络

    来测试 gRPC 方法的实现

    this问题回答了测试的这个方面。只需编写RPC方法的单元测试

  • 如果您想同时测试实现和 gRPC 网络方面,那么您需要为要测试的服务编写gRPC客户端。

这是一个关于创建gRPC客户端的代码片段

// 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以获取完整的代码示例

答案 1 :(得分:2)

如果您正在搜索 Postman 之类的工具,还有 https://kreya.app。有了它,您可以调用您的 gRPC 服务并查看响应。

免责声明:我是 Kreya 的作者之一。

答案 2 :(得分:2)

既然您提到您之前已经使用 JMeter 进行过测试,那么我假设您正在寻找可以调用 gRPC 服务的外部测试客户端。您可以使用几种。常见的有

通过这 4 个客户端,您可以动态调用 gRPC 服务。但是,如果您正在寻找一款还可以进行负载测试的测试客户端,那么您将需要使用 Fint。

答案 3 :(得分:0)

好吧,我正在寻找像Postman这样的客户,然后我发现bloomrpc,它有助于调用grpc服务。但是我不确定如果您正在寻找像jmeter这样的工具,它是否能满足您的目的。

答案 4 :(得分:-1)

您也可以尝试使用command line tool这个evans测试gRPC