如何测试 gRPC API?

C J*_*C J 9 testing rpc go grpc

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

Com*_*Guy 11

如果您正在寻找像 Postman 这样的工具,还有https://kreya.app。使用它,您可以调用 gRPC 服务并查看响应。

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


Pra*_*ram 7

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


小智 5

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

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


She*_*tyh 2

可以有两种类型的测试。

  • 通过忽略网络仅测试gRPC方法的实现

    这个问题回答了这方面的测试。只需为 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})
Run Code Online (Sandbox Code Playgroud)

在此处查看完整的代码示例