📜  软件测试——使用 Restito 工具进行 REST 客户端测试

📅  最后修改于: 2022-05-13 01:56:16.148000             🧑  作者: Mango

软件测试——使用 Restito 工具进行 REST 客户端测试

REST (Representational State Transfer) 是当前允许两个软件系统进行通信的方法。 REST Client 是这些系统之一,而 REST Server 是另一个。这是一种使用 HTTP 等无状态通信协议的设计技术。它使用 XML、YAML 和其他机器可读的形式来组织和排列数据。然而,JSON 是最常用的格式。面向对象的编程模型是 REST 的基础。

与功能驱动的 SOAP 不同,REST 是数据驱动的。 RESTful API 或 RESTful Web 服务是 REST 的其他名称。 REST 服务描述不遵循通用格式。 WADL 文件可用于将 REST 服务导入 SOAPUI。 ReadyAPI 都支持 OpenAPI、Swagger 和 RMAL 格式。 POST、GET、PUT 和 DELETE 是最常见的 REST HTTP 请求。

  • POST将新数据添加到数据库中。
  • GET读取或检索已经存在的东西。
  • PUT是一种更新现有数据的方法。
  • 删除删除任何现有信息。

REST 比 SOAP 更灵活,也更容易使用。

与 SOAP 相比,REST 具有许多优势

  • REST 使用 Swagger 和 OpenAPI Specification 3.0 等标准,这些标准简单易懂。
  • REST 的学习曲线更短。
  • 与对所有消息都使用 XML 的 SOAP 相比,它更有效,因为它使用更小的消息格式(例如 JSON)。
  • 它耗时较少,并且不需要大量处理。

REST 客户端和 REST 服务器

REST 客户端是一种用于调用 REST 服务 API 的方法或工具,它允许任何系统或服务提供者与其进行通信。例如,如果需要 API 从 Google 获取路线的实时交通数据,则调用 Google 交通 API 的程序称为 REST 客户端。

REST 服务器是一种允许系统与另一个系统或服务提供者进行通信的技术或 API。例如,谷歌提供了一个 API,允许用户获取特定路线的实时交通数据。 Google 的服务器必须启动并运行才能响应来自各种客户端的 API 请求。

例子

考虑一个像优步这样的车辆预订应用程序,它需要车辆行驶路线的实时交通信息。

休息客户端:客户端是司机当前登录的优步应用程序。它查询谷歌地图的 REST API 以获得实时数据,例如 HTTP GET 请求。

REST 服务器:服务提供商是 Google。 Google Maps API 使用必要的信息响应 Uber 应用程序的请求。值得注意的是,对于 REST 通信,客户端和服务器同样重要。

恢复

Mkotsur 创建了 Restito,这是一个应用程序或框架。这个小型应用程序有助于执行各种类型的 HTTP 请求。它还可用于测试 REST API 并查找应用程序或网络中的问题。该实用程序基于 Mockito,并具有与 Rest Assured 截然相反的功能。

Karate DSL 是用于评估 API 自动化、性能和负载的工具。它是用Java编写的,并使用 Apache HTTP 执行 HTTP 连接。 DSL 有自己的脚本语言 DSL(Domain Specific Language),它使用简单,可以被从未编码过的人使用。它带有预定义的脚本命令集合,用于在使用 API 时进行常见操作。 Restito 提供 DSL。 − 模仿 REST 服务器的行为。跟踪对服务器发出的 HTTP 请求。有人打电话确认发生了什么。

Restito 提供 DSL:

  • 模仿 REST 服务器的行为。
  • 跟踪对服务器发出的 HTTP 请求。
  • 有人打电话确认发生了什么。

Restito 是一个帮助测试发出 HTTP 请求的应用程序的工具。它创建一个 StubServer 对象,该对象可以使用已定义的 Stub 回复应用程序发出的调用。当请求条件时,存根允许操作做出反应。

Restito 用于测试 REST 客户端:

以下是 REST Client 测试过程中的四个主要步骤:

  • 要向服务器端点提交 GET 请求,请创建一个 HTTP 客户端和一个方法。
  • 启动 Restito 服务器并记录发送到“getevents”API 的请求。
  • 创建一个测试类,将您在步骤 1 中创建的客户端进行测试。要向“getevents”资源发起 GET 请求,请使用 HTTP 客户端的“sendGETRequest”方法。
  • 使用 Restito 框架,验证 HTTP GET 调用。

使用 Restito 测试 REST 客户端的好处:

  • 无需创建真正的 REST 服务器即可测试 REST 客户端。
  • 它为模拟服务器行为提供了广泛的服务和方法。例如,查看当服务器回答 404 或 503 错误时 REST 客户端如何反应。
  • 可以在几毫秒内设置 Restito 服务器,并在所有测试完成后关闭。
  • 支持所有HTTP方法内容,如压缩、非压缩、统一等。

在 REST 客户端测试方面,Restito 有许多缺点:

  • 必须修改 REST 客户端源以将“localhost”作为服务器计算机考虑在内。
  • 如果使用经常使用的端口,例如 8080 或 9443。在端口中启动服务器可能会引起争议。
  • 许多 Restito REST 客户端测试的倡导者建议使用 9092 或 9099 等端口,尽管其他工具并未广泛使用这些端口。

结论

  • REST (Representational State Transfer) 是当前允许两个软件系统进行通信的方法。
  • REST 客户端是一种工具/技术,它允许任何系统或服务提供商与 REST API 进行通信。
  • 任何系统或服务提供者都可以与 RestServer API 进行通信。
  • Restito 是一个框架和轻量级程序,可帮助执行任何形式的 HTTP 请求。
  • 我们不需要真正的 REST 服务器来为 REST 客户端创建测试用例。
  • 仅将本文中描述的 REST 客户端作为自动化测试的示例。