本主题提供有关在以下产品 JSON 断言器 和 JSON 数据库 和工具中选择 JSON 元素的信息SOAtest 和 Virtualize。
本章包含:
对于使用 JSON 和选择节点,SOAtest 和 Virtualize 在“底层”构造一个 XML DOM,以便使用 Xpath 进行节点选择。XML 结构与 JSON 结构非常匹配。除下列情况外,所有名称及值均相同:
档的根节点在 Xpath 中称为 root
,但在 JSON 文档中是对象或数组引用。它以 {}
或 []
的形式出现在SOAtest 和 Virtualize JSON 树。
数组项在 Xpath 中称为 item
,但在 JSON 文档中未命名(由于是数组元素)。它们以 [0]
、 [1]
等的形式出现在SOAtest 和 Virtualize JSON 树。
包含 XML 元素名称中非法字符的 JSON 名称将被转换为创建合法的 XML 元素名称,以便在 XPaths 中使用。SOAtest 和 Virtualize JSON 树将在 JSON 文档中显示原始名称。
当选择 JSON 树节点时,SOAtest 和 Virtualize 还要创建一个对应的 XPath。
如果需要手动构造 Xpath,并且不确定 XPath 中使用什么节点名,我们建议使用 JSON 树来选择节点。这将生成 XPath,然后可以查看和修改它以满足您的特定需求。
单击时打开的对话框中有以下选项 Change Element (针对 JSON 断言器)或 Modify (针对 JSON 数据库)。
[1]
更改为 [2]
。编辑 XPath 文本之后,单击 Evaluate XPath 按钮来验证 Xpath 格式。XPath/Parent
将输出 <parent>VALUE</parent>
。您可以配置 Index to extract。默认值为 1
。在元素出现多次的情况下,此控件控制提取哪个元素。XPath/Parent
将输出 VALUE
。可以配置 Text Content,提取所选元素的文本内容,或者配置 All Child Nodes,提取所选定元素的所有子节点。${My Value}
。Writable data source column:告诉SOAtest 和 Virtualize 将值存储在可写数据源列中。(请查阅 Configuring a Writable Data Source 以获得更多详情)。这允许存储数组形式的值。然后,其他工具可以遍历存储值。
Variable: 此选项允许将值保存在指定的变量中,以便可以跨当前测试、响应程序或操作套件重用该值。变量必须已经被添加到当前套件中,如 Defining Variables for SOAtest 和/或 Defining Variables in Virtualize。以这种方式设置的任何值都将覆盖套件属性面板中指定的任何局部变量值。
对于数据头,可以配置数据头名称和上述列出的数据源列选项。
可以参数化 Xpaths 以引用测试或响应程序套件变量、环境变量和数据源值。引用变量的语法为 ${myVariableName}
。引用数据库值和数据源值的语法为:${myColumnName}
。
例如,如果 ${XPath Key}
是数据源列名,则可以使用以下内容:
/*[local-name(.)="bookstore" and namespace-uri(.)=""]/*[local-name(.)="book" and namespace-uri(.)=""][child::node()[local-name(.)="title" and text()="${XPath Key}"]]]