本主题解释了如何配置并应用 REST 客户端工具,该工具向 RESTful 服务发送消息。可以使用 HTTP、GET、POST、PUT、DELETE、HEAD、OPTIONS、TRACE 或其他自定义方法。可以在 SOAtest 和 Virtualize 中使用 REST 客户端工具。
本章包含:
REST 客户端迁徙(从 9.7.x 及更早版本)
REST 客户端工具在版本 9.8 中进行了重新设计,以方便配置过程并提供额外的灵活性。
当打开并保存相关以下文件时,版本 9.7.x 及更早版本中创建的 REST 客户端将自动更新为使用新格式。 .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)可用,则可以将其更改为其中一个受约束的配置模式。
大多数可用控件将随服务定义字段设置的内容不同而有所变化:
- None:如 Unconstrained Configuration中所述。
- OpenAPI/Swagger: 如 OpenAPI/Swagger Configuration中所述。
- RAML: 如 RAML Configuration中所述。
- WADL: 如 WADL Configuration中所述。
参数可在 Path 和 Query 选项卡中配置,如 Parameter Configuration中所述。
不受约束的配置
不受约束的模式(该模式在 Service Definition 设置为 None时启用)允许指定 URL 作为文字字符串,它可以是一个固定值、参数化值或脚本化值。此外,调用的方法也可以指定为固定值、参数化值或脚本化值。 更多详情 关于参数化值的更多详情,请查阅 Parameterizing Tools with Data Source Values, Variables, and Extracted Values。关于脚本化值的更多详情,请查阅 扩展和脚本基础。
使用固定值,可以使用 ${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
时数据源列,则 URLhttp://${HOST}:${PORT}/some/url/${var_name}
可能会导致解析的 URLhttp://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
时数据源列,则 URLhttp://${HOST}:${PORT}/some/url/${var_name}
可能会导致解析的 URLhttp://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
时数据源列,则 URLhttp://${HOST}:${PORT}/some/url/${var_name}
可能会导致解析的 URLhttp://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 Format 和 Content-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 下拉列表中选择合适的协议,然后配置其属性,以下部分将对此作出说明:
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 ,然后输出消息选择编码。默认使用在最接近父测试套件中配置的编码 。也可以在 Parasoft 首选项 Misc 设置中全局指定该选项。(请查阅 其他首选项设置 )。