本主题介绍如何配置并应用向 RESTful 服务发送消息的 REST 客户端工具。可以使用 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,则新工具的有效负载选项卡将被设置为表视图。
  • 如果旧工具使用表单模式并受到 WADL(设置了 WADL URL 并启用了约束)约束,则新工具将使用 WADL 模式并保留现有的 WADL URL。
  • 如果旧工具使用表单模式但不受 WADL(没有设置 WADL URL)约束,则新工具将使用不受约束的模式。不受约束的模式设置将根据旧表单视图中的设置来定义,除非 Base URL 被脚本化,或者查询被完全脚本化。

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

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

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

当执行具有不受支持的映射的旧工具时,该工具将会失败,并有一个概述映射问题的质量任务。

资源选项卡

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

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

参数可在路径和查询选项卡中配置,如Parameter Configuration中所述。

不受约束的配置

不受约束的模式(该模式在服务定义设置为时启用)允许指定 URL 作为字面量字符串,它可以是一个固定值、参数化值或脚本化值。此外,调用的方法也可以指定为固定值、参数化值或脚本化值。  更多详情 关于参数化值的详情,请参阅使用数据源值、变量和提取值进行工具参数化关于脚本化值的更多,请参阅扩展和脚本基础

使用固定值,可以使用 ${var_name} 语法对数据源值进行访问。也可以使用指定的环境变量。有关环境的详情,请参阅  配置虚拟化环境如果 URL 使用环境变量,则解析的 URL 字段将显示它们如何解析为实际 URL。

然而,如果环境变量被屏蔽,解析的 URL 字段将不显示实际值 。

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

RAML 配置

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

  • RAML URL:特定的 RAML URL,或引用 RAML URL 的变量。此处输入的值将用于填充 Base URL 和操作控件。
  • URL:访问服务的完整 URL 预览;它由 Base URL、操作和路径/查询选项卡中输入的值构成。注意,该字段显示完整构造的 URL,但不解析变量。若要查看解析的变量,请参阅解析的 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 方法。用于路径/查询表和有效负载选项卡的表单输入视图将根据所选定操作和 HTTP 方法进行更新。



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

  • 关于脚本化值的更多,请参阅扩展和脚本基础

  • 使用固定值,可以使用 ${var_name} 语法对数据源值进行访问。也可以使用指定的环境变量。有关环境的详情,请参阅  配置虚拟化环境

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

OpenAPI/Swagger 配置

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

  • OpenAPI/Swagger URL:特定的 OpenAPI/Swagger URL 或引用 OpenAPI/Swagger URL 的变量。此处输入的值将用于填充 Base URL 和操作控件。
  • URL:访问服务的完整 URL 预览;它由 Base URL、操作和路径/查询选项卡中输入的值构成。注意,该字段显示完整构造的 URL,但不解析变量。若要查看解析的变量,请参阅解析的 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 方法。用于路径/查询表和有效负载选项卡的表单输入视图将根据所选定操作和 HTTP 方法进行更新。



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

  • 关于脚本化值的更多,请参阅扩展和脚本基础

  • 使用固定值,可以使用 ${var_name} 语法对数据源值进行访问。也可以使用指定的环境变量。有关环境的详情,请参阅  配置虚拟化环境

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

WADL 配置

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

  • WADL URL: 特定的 WADL URL,或引用 WADL URL 的变量。此处输入的值将用于填充 Base URL 和操作控件。
  • URL:访问服务的完整 URL 预览;它由 Base URL、操作和路径/查询选项卡中输入的值构成。注意,该字段显示完整构造的 URL,但不解析变量。若要查看解析的变量,请参阅解析的 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 方法。用于路径/查询表和有效负载选项卡的表单输入视图将根据所选定操作和 HTTP 方法进行更新。



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

  • 关于脚本化值的更多,请参阅扩展和脚本基础

  • 使用固定值,可以使用 ${var_name} 语法对数据源值进行访问。也可以使用指定的环境变量。有关环境的详情,请参阅  配置虚拟化环境

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

切换视图

如果将受约束的模式(服务定义设置为 RAMLOpenAPI/SwaggerWADL)切换为不受约束的模式(服务定义设置为),则将可以选择使用受约束视图中的值自动填充不受约束的视图。以下示例包含几个在切换模式后会自动填充的配置:

切换模式并确认使用服务定义中的值填充客户端配置的值。

客户端将在确认覆盖服务定义配置后进行更新:

参数配置

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

模板参数

路径选项卡允许为当前选择的操作配置模板参数。例如,路径“/parabank/services/bank/accounts/{accountId}”只有一个路径参数:"accountId"。在不受约束的模式中,参数可以被固定、参数化或者脚本化。

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

查询参数

查询选项卡允许为当前选择的操作配置 URL 查询参数。

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

您可以选择在查询参数中添加等号(=)并将参数值留空。只有当参数固定时,您才会在 URL 预览中看到等号;当参数被参数化或脚本化时,等号将在测试运行时添加。该选项默认禁用。

编码注意事项

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

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


矩阵参数

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


Payload 选项卡

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

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

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

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

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

“HTTP 选项”选项卡

HTTP 选项用于确定使用哪种协议(HTTP 1.0 或 1.1)发送请求,以及与协议(安全性、头部、缓存等)相关的各种选项。 

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

Virtualize

客户端工具的内部传输

通过使用 localhost127.0.0.1 或特殊主机名 host.virt.internal 链入响应器的客户端可将消息路由到本地服务器的虚拟资产中,而无需消耗 HTTP 连接。使用 localhost 127.0.0.1 时,指定的端口必须与 Virtualize 部署的端口一致;使用 host.virt.internal 时,则不使用该端口。例如,部署在 http://localhost:9080/myVirtualAsset 上的虚拟资产也可以通过一个使用 http://host.virt.internal/myVirtualAsset 的链式客户端访问。

Misc 选项卡

以下选项可以在 REST 客户端工具的 Misc 选项卡中使用:

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

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

  • No labels