簡體   English   中英

"如何測試 gRPC API?"

[英]How to test gRPC APIs?

我被分配測試一個 gRPC API(用 Golang 編寫),但我不知道如何進行測試,而且我在網上找不到任何此類測試的教程。 我能想到的唯一方法是編寫單元測試來測試方法本身,但我也想用客戶端測試它。 例如,我過去測試過使用 JMeter 作為客戶端發送請求並驗證響應數據的 REST API。 是否有使用客戶端測試 gRPC API 的方法,或者單元測試是唯一的方法?

好吧,我正在尋找像 Postman 這樣的客戶端,然后我找到了bloomrpc ,它有助於調用 grpc 服務。 但是我不確定它是否符合您的目的,如果您正在尋找像 jmeter 這樣的工具。

如果您正在尋找像 Postman 這樣的工具,還有https://kreya.app 有了它,您可以調用您的 gRPC 服務並查看響應。

免責聲明:我是 Kreya 的作者之一。

可以有兩種類型的測試。

  • 通過忽略網絡僅測試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})

在此處查看完整的代碼示例

由於您提到您之前已經使用 JMeter 進行過測試,因此我假設您正在尋找可以調用 gRPC 服務的外部測試客戶端。 您可以使用幾種。 常見的有

使用這 4 個客戶端,您可以動態調用 gRPC 服務。 但是,如果您正在尋找也可以進行負載測試的測試客戶端,Fint 就是您所需要的。

你也可以試試這個命令行工具evans 來測試 gRPC

對於任何偶然發現這個線程的人......之前的所有答案都已經提供了很好的工具。 我們在團隊中使用了 BloomRPC 和 Kreya(個人選擇)。

我要添加的是這個 gRPC 生態系統頁面。 它包含所有相關工具的精選列表。 還有其他 GUI 測試工具(參見 GUI 部分),或負載測試、基准測試工具(Testing)

https:\/\/github.com\/grpc-ecosystem\/awesome-grpc<\/a>

PS:老實說,我無法檢查除 BloomRPC 和 Kreya 之外的所有工具。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM