Go语言 如何测试gRPC API?

vojdkbi0  于 2023-02-27  发布在  Go
关注(0)|答案(7)|浏览(168)

我被指派测试gRPC API(用Golang写的)但是我不知道如何去测试它,我也找不到任何关于这种类型测试的在线教程。我能想到的唯一方法是写单元测试来测试方法本身,但是我也想用客户端来测试它。例如,我曾经测试过REST API,使用JMeter作为客户端来发送请求和验证响应数据。有没有一种方法可以用客户端来测试gRPC API,或者单元测试是唯一的方法?

7fyelxc5

7fyelxc51#

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

cczfrluj

cczfrluj2#

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

  • 免责声明:我是《克瑞雅》的作者之一。
jmp7cifd

jmp7cifd3#

既然您提到您以前用JMeter做过测试,那么我假设您正在寻找一个可以调用gRPC服务的外部测试客户机。

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

e0uiprwp

e0uiprwp4#

可以有两种类型测试。

  • 忽略网络,只测试 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以获取完整的代码示例

e3bfsja2

e3bfsja25#

Postman刚刚发布了测试版的grpc:

https://blog.postman.com/postman-now-supports-grpc/
我刚刚测试了一下,效果很好👍🏻🙂

20jt8wwn

20jt8wwn6#

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

mum43rcc

mum43rcc7#

对于任何偶然发现这个线程的人...前面所有的答案都已经提供了很好的工具,我们在团队中使用了BloomRPC & Kreya(个人选择)。
我想添加的是这个gRPC生态系统页面。它包含了所有相关工具的精选列表。还有其他GUI测试工具(见GUI部分),或者负载测试,基准测试工具(测试)
https://github.com/grpc-ecosystem/awesome-grpc
PS:老实说,我还没有能够检查所有的工具,除了BloomRPC和Kreya。

相关问题