我被分配测试 gRPC API(用 Golang 编写),但我不知道如何测试它,而且我在网上找不到任何此类测试的教程。我能想到的唯一方法是编写单元测试来测试方法本身,但我也想与客户端一起测试它。例如,我过去曾使用 JMeter 作为客户端来测试 REST API 来发送请求并验证响应数据。是否有通过客户端测试 gRPC API 的方法,或者单元测试是唯一的方法吗?
嗯,我正在寻找像 Postman 这样的客户端,然后我发现了 bloomrpc,它有助于调用 grpc 服务。但我不确定它是否符合您的目的,如果您正在寻找像 jmeter 这样的工具。
如果您正在寻找像 Postman 这样的工具,还有 https://kreya.app。有了它,您可以调用 gRPC 服务并查看响应。
免责声明:我是 Kreya 的作者之一。
对于任何偶然发现此线程的人...... 之前的所有答案都已经提供了很好的工具。我们团队中使用了 BloomRPC & Kreya(个人选择)。
我要添加的是这个 gRPC 生态系统页面。它包含所有相关工具的精选列表。还有其他 GUI 测试工具(参见 GUI 部分),或者负载测试、基准测试工具(测试)
https://github.com/grpc-ecosystem/awesome-grpc
PS:说实话,我无法检查除了 BloomRPC 和 Kreya 之外的所有工具。
可以有两种类型的测试。
仅测试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})
检查此处以获取完整的代码示例
您还可以尝试这个命令行工具,evans,用于测试 gRPC
我在本文中找到了如何测试 gRPC 的答案:https://api-academy.hashnode.dev/how-to-test-grpc-apis