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/json | POST | HTTP 主体部分是一个 JSON 格式的对象: { "query": "...", "operationName": "...", "variables": { "myVariable" : "..." } } |
application/graphql+json | POST | 与上述“application/json”相同。 |
application/graphql | POST | HTTP 主体中发送的查询。查询字符串中发送的变量和操作名称。 |
application/x-www-form-urlencoded | POST | HTTP 主体中以 URL 编码字符串形式发送的查询、变量和操作名称。 |
N/A | GET | 查询字符串中作为参数发送的查询、变量和操作名称。 |
之后,您可以从输入模式下拉列表中选择表单 GraphQL、字面量或脚本化,并选择文本或文件选项。选择文本选项,您可在文本输入字段中手动添加脚本,选择文件选项,您可浏览外部脚本文件,该文件将在调用该工具时执行。
将有效负载从字面量转换为表单 GraphQL 时,可能会改变查询和字段选择的顺序。如需保留查询顺序,则应使用字面量模式。
在操作名称字段中指定运行时要发送的操作名称。当查询包含多个操作时,这一步尤为重要。
在变量表中添加查询中声明的任何变量。
“HTTP 选项”选项卡
HTTP 选项用于确定使用哪种协议(HTTP 1.0 或 1.1)发送请求,以及与协议(安全性、头部、缓存等)相关的各种选项。
从传输下拉列表中选择合适的协议,然后配置其属性,以下部分将对此作出说明:
SOAtest
Virtualize
客户端工具的内部传输
通过使用 localhost、127.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 设置中全局指定该选项。(请参阅其他首选项设置 )。