SOAtest 和 Virtualize 可以使用 GraphQL 查询语言进行 HTTP 调用,让您可以在一次调用中从多个来源检索特定数据。本主题介绍如何配置和使用 GraphQL 客户端工具。

章节目录:

资源选项卡

资源选项卡中,您可以通过指定访问服务的 URL 和查询来指定要发送消息的资源。URL 以字面量字符串的形式指定,可以是固定值,也可以是脚本化值。此外,调用的方法也可以指定为固定值或脚本化值。 

有关脚本化值的详情,请参阅扩展和脚本基础

可以按照Parameter Configuration中的说明设置参数。对 URL 所做的更改会自动传入路径/查询表,就像对路径/查询表所做的更改会自动更新 URL 一样。 

参数配置

参数可在路径和查询选项卡中配置。

模板参数

可在路径选项卡中为所选操作配置模板参数。例如,“/parabank/services/bank/accounts/${accountId}”路径只有一个路径参数:"accountId"。参数可以是固定值或脚本化值。

查询参数

可在查询选项卡中为所选操作配置 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

查询选项卡

可在查询选项卡为将要发送的消息指定 GraphQL 查询。

在指定查询之前,请务必从内容-类型下拉列表中选择 GraphQL 服务支持的媒体类型。请求结构将在运行时根据这一选择进行转换。可选项为:

内容类型HTTP 方法请求结构
application/jsonPOST
HTTP 主体部分是一个 JSON 格式的对象:
{
  "query": "...",
  "operationName": "...",
   "variables": {
       "myVariable" : "..."
       }
}
application/graphql+jsonPOST与上述“application/json”相同。
application/graphqlPOSTHTTP 主体中发送的查询。查询字符串中发送的变量和操作名称。
application/x-www-form-urlencodedPOSTHTTP 主体中以 URL 编码字符串形式发送的查询、变量和操作名称。
N/AGET查询字符串中作为参数发送的查询、变量和操作名称。

之后,您可以从输入模式下拉列表中选择表单 GraphQL字面量脚本化,并选择文本文件选项。选择文本选项,您可在文本输入字段中手动添加脚本,选择文件选项,您可浏览外部脚本文件,该文件将在调用该工具时执行。

将有效负载从字面量转换为表单 GraphQL 时,可能会改变查询和字段选择的顺序。如需保留查询顺序,则应使用字面量模式。

操作名称字段中指定运行时要发送的操作名称。当查询包含多个操作时,这一步尤为重要。

变量表中添加查询中声明的任何变量。

“HTTP 选项”选项卡

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

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

SOAtest

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 的链式客户端访问。

其他选项卡

其他选项卡中包含以下选项:

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

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


  • No labels