使用 Restito 工具进行 REST 客户端测试
休息
REST(具象状态传输)是一种现代技术,可实现两个软件系统之间的通信。一种这样的系统称为REST客户端;另一个称为REST服务器。它是一种基于无状态通信协议(例如HTTP)的架构技术。它以XML、YAML和其他机器可读格式组织或构造数据。但是,主要使用JSON。REST基于面向对象的编程模型。
REST是数据驱动的,不像SOAP是功能驱动的。REST也称为RESTfulAPI或RESTfulWeb服务。REST服务的描述格式不遵循标准。可以使用WADL文件在SOAPUI中导入REST服务。ReadyAPI与OpenAPI、Swagger和RMAL格式兼容。基本的RESTHTTP请求包括:POST、GET、PUT和DELETE。
POST-添加新数据。
GET-读取或检索现有数据。
PUT-更新现有数据。
DELETE-删除现有数据。
REST提供了比SOAP更大的灵活性并且更易于使用。
REST相对于SOAP的优势
REST使用简单易懂的标准,例如Swagger和OpenAPI规范3.0。
REST的学习曲线更短。
效率更高,因为它使用较小的消息格式(如JSON),这与SOAP不同,SOAP对所有消息都使用XML。
它速度更快,并且不需要大量处理。
REST客户端
REST客户端是一种用于调用REST服务API的技术或工具,该API开放以与任何其他系统或服务提供者进行通信。例如,如果API需要从Google获取有关路线的实时交通数据,那么调用Google交通API的软件称为REST客户端。
休息服务器
RESTServer是一种API或方法,使系统能够开放以与另一个系统或服务提供商进行通信。例如,Google启用API来获取给定路线上的实时交通数据。Google的服务器必须启动并运行才能处理来自不同客户端对API的任何请求。
示例
考虑一个车辆预订应用程序,例如Uber,它需要车辆所在路线周围交通的实时信息。
REST客户端
客户端是司机登录的优步应用程序。它向GoogleMaps的RESTAPI发送请求以获取实时信息,例如HTTPGET请求。
休息服务器
谷歌是服务提供商。GoogleMaps的API为Uber应用程序的请求提供所需的信息。请注意,客户端和服务器是同等重要的REST通信。
雷斯蒂托
Restito是Mkotsur开发的应用程序或框架。这个轻量级应用程序有助于执行各种HTTP请求。它还可以用于测试RESTAPI以及搜索应用程序或网络中的问题。该工具的灵感来自Mockito,其功能与RestAssured的功能截然相反。
KarateDSL是用于API自动化测试、性能和负载测试的工具。它在Java上运行并使用ApacheHTTP来执行Http连接。DSL有自己的脚本语言;DSL-域特定语言;这很容易,可以被零编码经验的人使用。它具有一组预定义的脚本命令,用于与API交互时可能需要的操作。
Restito提供DSL-
模仿REST服务器的行为。
记录对服务器进行的HTTP调用。
验证发生的呼叫。
基本上,Restito有助于测试调用HTTP服务的应用程序。它建立一个StubServer实例,该实例可以根据定义的Stub响应应用程序发出的调用。存根使操作能够在请求条件时做出响应。
使用Restito测试REST客户端
REST客户端的测试大致分为以下4个主要步骤-
创建用于向服务器端点发送GET请求的HTTP客户端和方法。
启动一个Restito服务器,记录端点“getevents”收到的请求。
创建一个测试类来测试在步骤1中创建的客户端。调用HTTP客户端“sendGETRequest”方法以启动对“getevents”的GET请求。
使用Restito框架验证HTTPGET调用。
使用Restito进行REST客户端测试的优势
不需要开发实际的REST服务器来测试REST客户端。
它提供了强大的多样化服务和方法来模仿服务器的行为。例如,用于测试服务器响应404错误或503错误时的REST客户端行为。
Restito服务器可以在毫秒内建立,并且可以在所有测试执行后关闭。
它支持所有的HTTP方法内容,例如,压缩的、非压缩的、统一的等。
使用Restito进行RESTClient测试的缺点
必须调整REST客户端源以将“本地主机”作为服务器机器考虑在内。
如果使用常用端口,如8080或9443。在端口中打开服务器可能会发生冲突。
许多使用Restito进行REST客户端测试的支持者建议使用9092或9099等端口,但其他工具并不常用这些端口。
结论
REST——具象状态传输——是一种实现两个软件系统之间通信的现代技术。
REST客户端是一种工具/技术,用于启用开放的RESTAPI以与任何系统或服务提供商进行通信。
在开放的RestServerAPI中,可以与任何系统或服务提供商进行通信。
Restito是一个轻量级的框架应用程序,可以帮助执行任何类型的HTTP请求。
在本文中,我们仅讨论了REST客户端的自动化测试示例。
为了开发测试用例来测试REST客户端,我们不需要实际的REST服务器。
可以调整REST客户端源以将localhost视为服务器机器。