zhcn 技术 WebSphere 开发过程中使用的 8 个有用的 gRPC 测试工具

开发过程中使用的 8 个有用的 gRPC 测试工具

gRPC 是 Google 开发的远程过程调用 (RPC) 框架。

关于为什么这样命名,有一个有趣的旁注。远程过程调用是一种在远程计算机上执行函数或方法的方法,就好像它是本地函数一样。这是一个抽象,消除了处理 HTTP 调用和其他网络术语的麻烦。

gRPC 使微服务之间的通信和数据传输变得更加容易和更快。它在底层依赖于 HTTP/2 协议,但使开发人员可以轻松连接所有内容。

由于微服务可以多种语言存在,因此您必须编写程序以允许它们相互通信。

gRPC 支持多种语言,这使得它很容易。使用协议缓冲区作为接口定义语言来定义消息的结构。

测试 gRPC 应用程序

测试对于正在开发的任何复杂软件都至关重要,而不仅仅是 gRPC 应用程序。测试您的 gRPC 应用程序可确保您的微服务和其他服务能够可靠且高效地相互通信。

这确保了所有服务都可以毫无语言障碍地进行通信,即使它们是用不同的语言编写的。这是可能的,因为 gRPC 使用与语言无关的协议缓冲区。

测试您的应用程序还可以揭示错误和异常处理。除此之外,您还可以运行性能测试来查看服务在不同网络流量负载下的表现。

现在您已经了解了 gRPC,让我们看一下一些 gRPC 测试工具。

克雷亚

Kreya是一个 API 客户端,具有适用于 gRPC 和 REST API 的图形用户界面。其 gRPC 客户端支持请求流、一元调用、验证等。您还可以在 Kreya 本身内生成虚假数据来测试您的 API。

克雷亚仪表板
克雷亚仪表板

此外,请求及其配置存储在文件系统上,因此您可以使用 git 或其他版本控制系统同步您的项目。 Kreya 允许您通过编写脚本来定义测试,以便在逐个调用的基础上测试您的 API。

Kreya 为个人用户提供免费套餐。这包括功能齐全的 gRPC 客户端、可重用的身份验证配置、环境、模板等。

兆赫

ghz是一个用 Go 编写的开源 gRPC 基准测试和负载测试命令行实用程序,用于测试 API 并检索结果。 ghz 支持原始文件、预构建的原始集包或服务器反射。 Go 的模板变量允许您向请求添加自定义数据。

兆赫
兆赫

除了命令行实用程序之外,ghz 还提供对补充 Web 应用程序界面的访问,可用于查看、跟踪和保存测试结果。测试结果可以以多种文件格式查看,例如 CSV、JSON 和 HTML。截至撰写本文时,提供的 Web 界面仍处于测试阶段。

邮差

Postman是一个 API 开发平台,支持构建和测试几乎任何类型的 API,包括 gRPC。 Postman 允许您为单个请求、集合或集合中的文件夹创建测试。

邮差
邮差

在 Postman 中发出 gRPC 请求时,转到请求视图中的“脚本”选项卡,然后选择何时运行测试:在请求之前或在获取响应之后。您还可以使用代码片段更快地编写测试。

失眠

Insomnia是一个用于设计、测试和调试 API 的工具。支持 REST、GraphQL、WebSocket 和 gRPC 请求。在 Insomnia 中发出新请求时,您可以选择 gRPC 并输入 API 的 URL 端点。

失眠
失眠

您还需要添加一个.proto文件来定义消息。从一元请求到双向流,Insomnia 支持几乎所有请求类型,包括客户端和服务器流。

要使用 Insomnia 测试您的 API,您需要为 API 添加设计文档。然后,您可以在“测试”选项卡上创建测试套件。请注意,Insomnia 使用 Mocha 框架进行单元测试,使用 Chai 框架进行断言。

堆栈鹰

Stackhawk是一个API安全测试工具,也为gRPC服务提供解决方案。该工具可帮助您保护 API 端点。要使用 Stackhawk 扫描 gRPC 应用程序,您需要定义一个包含所需配置的stackhawk.yml文件

堆栈鹰
堆栈鹰

Stackhawk 提供免费套餐,在单个应用程序 CI/CD 管道中提供现代 DAST 集成自动化测试。但是,所有定价计划中都包含身份验证、自动化、见解、通知以及对所有 API 类型的支持等功能。

gRPCurl

gRPCurl是一个开源命令行实用程序,用于连接到支持 gRPC 的服务器。顾名思义,它被称为“gRPC 服务器的curl”。无法使用 cURL 向 gRPC 服务器发送请求的原因是 cURL 不支持协议缓冲区(二进制消息)。 cURL 仅适用于 JSON 字符串。

通过查询支持服务器反射的服务器、读取 proto 源文件或读取已编译的“protoset”文件(包含编码文件描述符 proto 的文件)来检查 gRPC 服务的架构即可。

尽管 gRPCurl 不是一个成熟的测试工具,但您可以使用命令行实用程序来执行基本查询和测试。

Smartbear的ReadyAPI

Smartbear的ReadyAPI支持gRPC API测试,但仅支持一元操作。要测试您的 gRPC 服务,您首先需要设置API 连接测试步骤。这允许您发送请求并从 gRPC 服务接收响应。

就绪API
就绪API

ReadyAPI 目前仅支持一元运算。也就是说,ReadyAPI 仅等待服务器的一个响应。

爱管闲事的老鼠

Nosymouse是一个包含 gRPC 测试器的工具,用于执行手动或自动功能、性能和安全测试。它提供并发虚拟用户、启动、验收标准、思考时间、测试数据、测试场景支持和多个加权用例等功能。

nosymouse 数据驱动测试
nosymouse 数据驱动测试

我们遵循数据驱动的测试方法,并始终支持单独的测试数据、变量、自动验证和实际用例。您可以使用不同的输入运行测试并使用接口验证输出。

我们提供 14 天免费试用来测试两个并发服务用户。

最后一句话

随着 gRPC 服务和工具的兴起,选择合适的 gRPC 测试工具可能很困难。选择正确的工具非常重要,因为它直接影响 API 的功能。需要考虑的一件重要事情是支持各种 gRPC 功能,例如服务器反射、流式传输等。选择测试工具时,请记住 gRPC 特定的功能。

接下来,查看最佳的 API 负载测试平台以提高性能。

gRPC 是 Google 开发的远程过程调用 (RPC) 框架。

关于为什么这样命名,有一个有趣的旁注。远程过程调用是一种在远程计算机上执行函数或方法的方法,就好像它是本地函数一样。这是一个抽象,消除了处理 HTTP 调用和其他网络术语的麻烦。

gRPC 使微服务之间的通信和数据传输变得更加容易和更快。它在底层依赖于 HTTP/2 协议,但使开发人员可以轻松连接所有内容。

由于微服务可以多种语言存在,因此您必须编写程序以允许它们相互通信。

gRPC 支持多种语言,这使得它很容易。使用协议缓冲区作为接口定义语言来定义消息的结构。

测试 gRPC 应用程序

测试对于正在开发的任何复杂软件都至关重要,而不仅仅是 gRPC 应用程序。测试您的 gRPC 应用程序可确保您的微服务和其他服务能够可靠且高效地相互通信。

这确保了所有服务都可以毫无语言障碍地进行通信,即使它们是用不同的语言编写的。这是可能的,因为 gRPC 使用与语言无关的协议缓冲区。

测试您的应用程序还可以揭示错误和异常处理。除此之外,您还可以运行性能测试来查看服务在不同网络流量负载下的表现。

现在您已经了解了 gRPC,让我们看一下一些 gRPC 测试工具。

克雷亚

Kreya是一个 API 客户端,具有适用于 gRPC 和 REST API 的图形用户界面。其 gRPC 客户端支持请求流、一元调用、验证等。您还可以在 Kreya 本身内生成虚假数据来测试您的 API。

克雷亚仪表板
克雷亚仪表板

此外,请求及其配置存储在文件系统上,因此您可以使用 git 或其他版本控制系统同步您的项目。 Kreya 允许您通过编写脚本来定义测试,以便在逐个调用的基础上测试您的 API。

Kreya 为个人用户提供免费套餐。这包括功能齐全的 gRPC 客户端、可重用的身份验证配置、环境、模板等。

兆赫

ghz是一个用 Go 编写的开源 gRPC 基准测试和负载测试命令行实用程序,用于测试 API 并检索结果。 ghz 支持原始文件、预构建的原始集包或服务器反射。 Go 的模板变量允许您向请求添加自定义数据。

兆赫
兆赫

除了命令行实用程序之外,ghz 还提供对补充 Web 应用程序界面的访问,可用于查看、跟踪和保存测试结果。测试结果可以以多种文件格式查看,例如 CSV、JSON 和 HTML。截至撰写本文时,提供的 Web 界面仍处于测试阶段。

邮差

Postman是一个 API 开发平台,支持构建和测试几乎任何类型的 API,包括 gRPC。 Postman 允许您为单个请求、集合或集合中的文件夹创建测试。

邮差
邮差

在 Postman 中发出 gRPC 请求时,转到请求视图中的“脚本”选项卡,然后选择何时运行测试:在请求之前或在获取响应之后。您还可以使用代码片段更快地编写测试。

失眠

Insomnia是一个用于设计、测试和调试 API 的工具。支持 REST、GraphQL、WebSocket 和 gRPC 请求。在 Insomnia 中发出新请求时,您可以选择 gRPC 并输入 API 的 URL 端点。

失眠
失眠

您还需要添加一个.proto文件来定义消息。从一元请求到双向流,Insomnia 支持几乎所有请求类型,包括客户端和服务器流。

要使用 Insomnia 测试您的 API,您需要为 API 添加设计文档。然后,您可以在“测试”选项卡上创建测试套件。请注意,Insomnia 使用 Mocha 框架进行单元测试,使用 Chai 框架进行断言。

堆栈鹰

Stackhawk是一个API安全测试工具,也为gRPC服务提供解决方案。该工具可帮助您保护 API 端点。要使用 Stackhawk 扫描 gRPC 应用程序,您需要定义一个包含所需配置的stackhawk.yml文件

堆栈鹰
堆栈鹰

Stackhawk 提供免费套餐,在单个应用程序 CI/CD 管道中提供现代 DAST 集成自动化测试。但是,所有定价计划中都包含身份验证、自动化、见解、通知以及对所有 API 类型的支持等功能。

gRPCurl

gRPCurl是一个开源命令行实用程序,用于连接到支持 gRPC 的服务器。顾名思义,它被称为“gRPC 服务器的curl”。无法使用 cURL 向 gRPC 服务器发送请求的原因是 cURL 不支持协议缓冲区(二进制消息)。 cURL 仅适用于 JSON 字符串。

通过查询支持服务器反射的服务器、读取 proto 源文件或读取已编译的“protoset”文件(包含编码文件描述符 proto 的文件)来检查 gRPC 服务的架构即可。

尽管 gRPCurl 不是一个成熟的测试工具,但您可以使用命令行实用程序来执行基本查询和测试。

Smartbear的ReadyAPI

Smartbear的ReadyAPI支持gRPC API测试,但仅支持一元操作。要测试您的 gRPC 服务,您首先需要设置API 连接测试步骤。这允许您发送请求并从 gRPC 服务接收响应。

就绪API
就绪API

ReadyAPI 目前仅支持一元运算。也就是说,ReadyAPI 仅等待服务器的一个响应。

爱管闲事的老鼠

Nosymouse是一个包含 gRPC 测试器的工具,用于执行手动或自动功能、性能和安全测试。它提供并发虚拟用户、启动、验收标准、思考时间、测试数据、测试场景支持和多个加权用例等功能。

nosymouse 数据驱动测试
nosymouse 数据驱动测试

我们遵循数据驱动的测试方法,并始终支持单独的测试数据、变量、自动验证和实际用例。您可以使用不同的输入运行测试并使用接口验证输出。

我们提供 14 天免费试用来测试两个并发服务用户。

最后一句话

随着 gRPC 服务和工具的兴起,选择合适的 gRPC 测试工具可能很困难。选择正确的工具非常重要,因为它直接影响 API 的功能。需要考虑的一件重要事情是支持各种 gRPC 功能,例如服务器反射、流式传输等。选择测试工具时,请记住 gRPC 特定的功能。

接下来,查看最佳的 API 负载测试平台以提高性能。