本主题解释了如何配置并应用 REST 客户端工具,该工具向 RESTful 服务发送消息。可以使用 HTTP、GET、POST、PUT、DELETE、HEAD、OPTIONS、TRACE 或其他自定义方法。可以在 SOAtest 和 Virtualize 中使用 REST 客户端工具。 

本章包含:

REST 客户端迁徙(从 9.7.x 及更早版本)

REST 客户端工具在版本 9.8 中进行了重新设计,以方便配置过程并提供额外的灵活性。

当打开并保存相关以下文件时,版本 9.7.x 及更早版本中创建的 REST 客户端将自动更新为使用新格式。 .tst 或 .pvn

 两个皆为当前版本产品文件。 

自动化迁徙过程中,遗留输入模式中的设置被映射到新的输入模式。遗留的 REST 客户端具有表单、文字、脚本化输入模式。 

当前 REST 客户端具有约束的(OpenAPI/Swagger, RAML, WADL)和不受约束的服务定义模式。

迁徙表现如下所示:

  • 如果遗留工具使用的是文字模式,则新工具将使用不受约束的模式,并且 URL 字段将从现有文字设置填充。
  • 如果遗留工具使用的是脚本化模式,则新工具将使用不受约束的模式,并且 URL 字段将被设置为脚本化。将应用现有脚本。
  • 如果遗留工具使用表单输入作为有效负荷并将内容类型设置为 application/x-www-form-urlencoded 或 multipart/form-data,则新工具的有效负荷(Playload)选项卡将被设置为表视图。
  • 如果遗留工具使用表单模式并受到 WADL(设置了 WADL URL 并启用了约束)约束,则新工具将使用 WADL 模式并保留现有的 WADL URL。
  • 如果遗留工具使用表单模式但不受 WADL(没有设置 WADL URL)约束,则新工具将使用不受约束的模式。不受约束的模式设置将根据遗留表单视图中的设置来定义,除非 Base URL 被脚本化,或者 Query 被完全脚本化。

在以下情况中无法使用确切的映射:

  • 如果遗留工具没有受 WADL 约束并使用脚本化选项作为 Base URL,则使用不受约束模式并不会传输脚本化设置。
  • 如果遗留工具没有受 WADL 约束并使用脚本化选项作为表单输入模式中的 Query 选项卡,则使用不受约束模式并不会传输脚本化设置。
  • 如果不受 WADL 约束的遗留工具使用 WADL,并在任何参数中(path、query 或 payload)使用 Auto 设置,则将不会传输 Auto 设置。

当迁移具有这些不受支持的映射的工具时,将会把详细信息打印到控制台。

当执行具有不受支持的映射的遗留工具时,该工具将会失败,因为有一个映射问题的质量任务。

Resource 选项卡

Resource 选项卡中,指定资源为要发送的消息。默认服务定义模式(不受约束)允许指定访问服务的 URL 和查询。如果服务定义(OpenAPI/Swagger、RAML、WADL)可用,则可以将其更改为其中一个受约束的配置模式。

大多数可用控件将随服务定义字段设置的内容不同而有所变化:

参数可在 Path 和 Query 选项卡中配置,如 Parameter Configuration中所述。

不受约束的配置

不受约束的模式(该模式在 Service Definition 设置为 None时启用)允许指定 URL 作为文字字符串,它可以是一个固定值、参数化值或脚本化值。此外,调用的方法也可以指定为固定值、参数化值或脚本化值。  更多详情 

关于参数化值的更多详情,请查阅以下章节: 

关于脚本化值的更多详情,请查阅 扩展和脚本基础

使用固定值,可以使用 ${var_name} 语法对数据源值进行访问。也可以使用指定的环境变量。有关环境的更多详情,请查阅 在不同的环境中配置测试 或 配置虚拟化环境

如果 URL 使用环境变量,则 Resolved URL 字段将显示它们如何解析为实际 URL。

然而,如果环境变量被屏蔽,Resolved URL 字段将不显示实际值  (还请查阅 屏蔽变量值)。

参数可在 Path 和 Query 选项卡中配置,如 Parameter Configuration中所述。URL 中的任何变更将自动传播给 Path/Query 表。同时,URL 将自动更新将任何更改映射给 Path/Query 表。 

RAML 配置

RAML 配置模式允许指定不同的 URL 参数,如下所示:

  • RAML URL:特定的 RAML URL,或引用 RAML URL 的变量。此处输入的值将用于填充 Base URL 和操作控件。
  • URL: 访问服务的完整 URL 预览;它由 Base URL、Operation 和 Path/Query 选项卡中输入的值构成。注意,该字段显示完整构造的 URL,但不解析变量。若要查看解析的变量,请查阅 Resolved URL 。 
  • 解析的 URL:解析的 RAML URL:如果正使用环境变量配置工具,则它将显示它们如何解析为实际 URL。例如,假设 HOST 和 PORT 都是环境变量, var_name 时数据源列,则 URL http://${HOST}:${PORT}/some/url/${var_name} 可能会导致解析的 URL http://localhost:8080/some/url/${var_name}
  • Base URL: 指定使用(HTTP 或 HTTPS)、主机、端口和路径的协议。
  • 操作:配置 RAML 定义后,可以从该框中选择一个操作和 HTTP 方法。用于 Path/Query 表和 Payload 选项卡的表单输入视图将根据所选定操作和 HTTP 方法进行更新。



可以设置 Base URL 字段,以使用受约束的(来自指定 RAML URL)或脚本化的输入。 

参数可在 Path 和 Query 选项卡中配置,如 Parameter Configuration中所述。URL 将自动更新将任何更改映射给 Path/Query 表。 

OpenAPI/Swagger 配置

OpenAPI/Swagger 配置模式允许指定不同的 URL 组件,如下所示:

  • OpenAPI/Swagger URL:特定的 OpenAPI/Swagger URL 或引用 OpenAPI/Swagger URL 的变量。此处输入的值将用于填充 Base URL 和操作控件。
  • URL: 访问服务的完整 URL 预览;它由 Base URL、Operation 和 Path/Query 选项卡中输入的值构成。注意,该字段显示完整构造的 URL,但不解析变量。若要查看解析的变量,请查阅 Resolved URL
  • 解析的 URL:解析的 OpenAPI/Swagger URL。如果正使用环境变量配置工具,则它将显示它们如何解析为实际 URL。例如,假设 HOST 和 PORT 都是环境变量, var_name 时数据源列,则 URL http://${HOST}:${PORT}/some/url/${var_name} 可能会导致解析的 URL http://localhost:8080/some/url/${var_name}
  • Base URL: 指定使用(HTTP 或 HTTPS)、主机、端口和路径的协议。
  • 操作:配置 OpenAPI/Swagger 定义后,可以从该框中选择一个操作和 HTTP 方法。用于 Path/Query 表和 Payload 选项卡的表单输入视图将根据所选定操作和 HTTP 方法进行更新。



可以设置 Base URL 字段,以使用受约束的(来自 OpenAPI/Swagger URL)、固定的(可调整的)或脚本化的输入。 

参数可在 Path 和 Query 选项卡中配置,如 Parameter Configuration中所述。URL 将自动更新将任何更改映射给 Path/Query 表。 

WADL 配置

WADL 配置模式允许指定不同的 URL 组件,如下所示: 

  • WADL URL: 特定的 WADL URL,或引用 WADL URL 的变量。此处输入的值将用于填充 Base URL 和操作控件。
  • URL: 访问服务的完整 URL 预览;它由 Base URL、Operation 和 Path/Query 选项卡中输入的值构成。注意,该字段显示完整构造的 URL,但不解析变量。若要查看解析的变量,请查阅 Resolved URL
  • 解析的 URL:解析的 WADLL URL:如果正使用环境变量配置工具,则它将显示它们如何解析为实际 URL。例如,假设 HOST 和 PORT 都是环境变量, var_name 时数据源列,则 URL http://${HOST}:${PORT}/some/url/${var_name} 可能会导致解析的 URL http://localhost:8080/some/url/${var_name}
  • Base URL: 指定使用(HTTP 或 HTTPS)、主机、端口和路径的协议。
  • 操作:配置 WADL 后,可以从该框中选择一个操作和 HTTP 方法。用于 Path/Query 表和 Payload 选项卡的表单输入视图将根据所选定操作和 HTTP 方法进行更新。



可以设置 Base URL 字段,以使用受约束的(来自 OpenAPI/Swagger URL)、固定的(可调整的)或脚本化的输入。 

参数可在 Path 和 Query 选项卡中配置,如 Parameter Configuration中所述。URL 将自动更新将任何更改映射给 Path/Query 表。 

切换视图

如果将受约束的模式(Service Definition 设置为 RAML, OpenAPI/Swagger, 或 WADL))切换为不受约束的模式(Service Definition 设置为 None),则将可以选择使用受约束视图中的值自动填充不受约束的视图。

例如,假定在 WADL 视图中有以下内容:



如果选择了从 WADL 视图填充不受约束的视图,则将得到以下内容:


参数配置

在所有模式中(受约束的和不受约束的),参数都可以在 Path 和 Query 选项卡中进行配置。

模板参数

Paths 选项卡允许为当前选择的操作配置模板参数。例如,路径“/parabank/services/bank/accounts/{accountId}”只有一个路径参数:"accountId"。 

在不受约束的模式中,参数可以被固定、参数化或者脚本化。



在受约束的模式中,参数设置为固定、参数化、自动生成或者脚本化。


查询参数

Query 选项卡允许为当前选择的操作配置 URL 查询参数。可以添加固定的、参数化的或脚本化的值。

在不受约束的模式中,参数可以被固定、参数化或者脚本化。


在受约束的模式中,参数设置为固定、参数化、自动生成或者脚本化。 

编码注意事项

URL 查询参数根据 "application/x-www-form-urlencoded" 内容类型进行格式化:空白字符用 '+'代替。非阿拉伯数字替换为百分号,后面跟着两个表示字符代码的十六进制数字。Name 和 value 用 '=’ 隔开,name-value 对用 '&'隔开。 

如果希望使用不同的格式,则查询参数也可以直接在工具端点 URL(而不是查询参数部分中)末尾指定。例如,以下内容也可以指定为 http://host:8080/path?a=1&b=2&c=3


矩阵参数

矩阵参数可以通过直接将它们追加到资源 URL 最后一个路径段末尾进行配置。例如,以下参数也可以指定为 http://host:8080/path;jsessionid=12345


Payload 选项卡

如果正使用某个方法发送数据(如。PUT、POST、DELETE),则 Payload 选项卡允许为将发送的消息指定有效负荷。 

指定有效负荷本身之前,请确保选择合适的有效负荷格式和媒体类型(在 Payload FormatContent-Type 框中)。如果 Resource 选项卡中的服务定义被设置为 RAML、OpenAPI/Swagger 或 WADL,则有效负荷格式和内容类型将受到该 URL 和所选定资源的约束。



这两个设置控制 Content-Type HTTP 数据头并确定可用的输入模式。例如,表单 JSON 视图将值可适用于 JSON 媒体类型;而表单 XML 视图只适用于 XML 媒体类型。如果媒体类型为 "application/x-www-form-urlencoded” 并且服务定义为当前选择的操作定义表现形式参数,则表单输入视图将可用于配置参数。这类似于 Path 和 Query 选项卡上使用的表单输入。  

指定有效负荷之后,可以从 Input Mode 下拉列表中选择输入模式。REST 客户端工具将与其他客户端工具共享 Input Mode 选项。有关共享选项的更多详情,请查阅 输入模式

关于与模式相关的 XML 或 JSON,根据定义和编辑中的值自动填充的可用表单视图将受到限制,以确保该消息遵循指定模式。例如,你将无法对树节点进行插入、删除、重命名、复制或粘贴操作。 

HTTP Options 选项卡

HTTP 选项允许确定使用哪个协议(HTTP 1.0 或 1.1)发送请求,以及与协议(安全、数据头、cookie等)相关的各种选项。 

Transport 下拉列表中选择合适的协议,然后配置其属性,以下部分将对此作出说明:

SOAtest

Virtualize

Misc 选项卡

以下选项可以在 REST 客户端工具的 Success Criteria 选项卡中使用。

  • 有效的 HTTP 响应码:允许自定义工具行为,以便它成功地处理了 2xx 范围之外的 HTTP 响应码。将单个代码和/或代码范围指定为逗号分隔的列表。例如,如果使用 "302, 500-599",则将接受 302 码或 5xx 范围内的任何码。  如果正在使用参数化值,则请保证数据源中的值使用与之相同的格式(如, "302, 500-599")。
  • 超时时间(以毫秒为单位):指定 FTP、telnet 或 HTTP 请求“超时后应该延迟的长度(以毫秒为单位)。Default 设置对应于首选项面板的超时设置。Custom 设置允许输入超时时间。可以输入一个负超时值,表示指定无限的超时。

    • 因超时导致测试失败:如果希望工具在指定超时时间内完成任务,则选择该选项。
    • 只在发生超时时才通过测试:如果发生指定的超时(如,测试在指定的时间内没有完成执行),请选择此选项让工具通过。
  • Outgoing Message Encoding: 从下拉菜单中选择 Custom ,然后输出消息选择编码。默认使用在最接近父测试套件中配置的编码 (请查阅 Specifying Client Options)。也可以在 Parasoft 首选项 Misc 设置中全局指定该选项。(请查阅 其他首选项设置 )。

相关教程

以下教程演示如何使用这个工具:

  • No labels