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


REST

REST(表述性状态转移)是一种现代技术,用于实现两个软件系统之间的通信。其中一个系统称为 REST 客户端;另一个称为 REST 服务器。它是一种基于无状态通信协议(如 HTTP)的架构技术。它使用 XML、YAML 和其他机器可读格式组织或结构化数据。但是,JSON 最常用。REST 基于面向对象的编程模型。

与基于函数的 SOAP 不同,REST 是数据驱动的。REST 也被称为 RESTful API 或 RESTful Web 服务。REST 服务的描述格式没有遵循标准。可以使用 WADL 文件在 SOAPUI 中导入 REST 服务。ReadyAPI 与 OpenAPI、Swagger 和 RMAL 格式兼容。基本的 REST HTTP 请求包括:POST、GET、PUT 和 DELETE。

  • POST − 添加新数据。

  • GET − 读取或检索现有数据。

  • PUT − 更新现有数据。

  • DELETE − 删除现有数据。

REST 比 SOAP 提供更大的灵活性,并且更容易使用。

REST 相比 SOAP 的优势

  • REST 使用简单易懂的标准,例如 Swagger 和 OpenAPI 规范 3.0。

  • REST 的学习曲线更短。

  • 更高效,因为它使用更小的消息格式(如 JSON),而 SOAP 对所有消息都使用 XML。

  • 它更快,不需要大量的处理。

REST 客户端

REST 客户端是一种技术或工具,用于调用 REST 服务 API,该 API 向任何其他系统或服务提供商开放通信。例如,如果 API 预期从 Google 获取有关路线的实时交通数据,则调用 Google 交通 API 的软件称为 REST 客户端。

REST 服务器

REST 服务器是一个 API 或一种方法,用于使系统能够向另一个系统或服务提供商开放通信。例如,Google 提供了一个 API 来获取给定路线的实时交通数据。Google 的服务器必须启动并运行才能响应来自不同客户端的任何 API 请求。

示例

考虑一个车辆预订应用程序,例如 Uber,它需要车辆所在路线周围的实时交通信息。

REST 客户端

客户端是司机登录的 Uber 应用程序。它向 Google 地图的 REST API 发送请求以获取实时信息,例如 HTTP GET 请求。

REST 服务器

Google 是服务提供商。Google 地图的 API 向 Uber 应用的请求提供所需的信息。请注意,客户端和服务器在 REST 通信中同样重要。

Restito

Restito 是 Mkotsur 开发的一个应用程序或框架。这个轻量级应用程序有助于执行各种 HTTP 请求。它还可以用于测试 REST API 以及搜索应用程序或网络中的问题。此工具的灵感来自 Mockito,其功能与 Rest Assured 完全相反。

Karate DSL 是一种用于 API 自动化测试、性能和负载测试的工具。它运行在 Java 上,并使用 Apache HTTP 执行 Http 连接。DSL 有自己的脚本语言;DSL - 领域特定语言;简单易用,即使没有编程经验的人也可以使用。它有一套预定义的脚本命令,用于在与 API 交互时可能需要的操作。

Restito 提供了一个 DSL −

  • 模拟 REST 服务器行为。

  • 记录对服务器发出的 HTTP 调用。

  • 验证发生的调用。

基本上,Restito 有助于测试向 HTTP 服务发出调用的应用程序。它建立一个 StubServer 实例,该实例可以根据定义的 Stub 响应应用程序发出的调用。Stub 允许在请求条件时响应操作。

使用 Restito 测试 REST 客户端

REST 客户端的测试大致分为以下四个主要步骤:

  • 创建一个 HTTP 客户端和用于向服务器端点发送 GET 请求的方法。

  • 启动 Restito 服务器,记录“getevents”端点接收到的请求。

  • 创建一个测试类来测试步骤 1 中创建的客户端。调用 HTTP 客户端“sendGETRequest”方法以启动对“getevents”的 GET 请求。

  • 使用 Restito 框架验证 HTTP GET 调用。

使用 Restito 进行 REST 客户端测试的优势

  • 无需开发实际的 REST 服务器即可测试 REST 客户端。

  • 它提供强大的各种服务和方法来模拟服务器的行为。例如,测试服务器响应 404 错误或 503 错误时 REST 客户端的行为。

  • Restito 服务器可以在几毫秒内建立,并且可以在执行所有测试后关闭。

  • 它支持所有 HTTP 方法内容,例如压缩、非压缩、统一等。

使用 Restito 进行 REST 客户端测试的缺点

  • 必须调整 REST 客户端源代码以将“localhost”作为服务器主机。

  • 如果使用 8080 或 9443 等常用端口,则在端口上打开服务器可能会发生冲突。

  • 许多使用 Restito 进行 REST 客户端测试的支持者建议使用 9092 或 9099 等端口,但其他工具通常不使用这些端口。

结论

  • REST - 表述性状态转移 - 是一种现代技术,用于实现两个软件系统之间的通信。

  • REST 客户端是一种工具/技术,用于启用 REST API,该 API 向任何系统或服务提供商开放通信。

  • 在 RestServer API 中,它向任何系统或服务提供商开放通信。

  • Restito 是一个轻量级的应用程序框架,有助于执行任何类型的 HTTP 请求。

  • 在本文中,我们讨论了仅 REST 客户端自动化测试的示例。

  • 为了开发测试用例来测试 REST 客户端,我们不需要实际的 REST 服务器。

  • 可以调整 REST 客户端源代码以将 localhost 作为服务器主机。

更新于:2021年9月23日

浏览量:187

启动您的职业生涯

完成课程获得认证

开始
广告
© . All rights reserved.