本主题介绍 JSON 断言器工具,它允许你将断言放置在 JSON 消息中的不同元素上。此工具需要验证许可证。

本章包含:


迁移注意事项

在 9.7 版本中重新实现了 JSON 断言器工具。不支持以前版本实现:任何现有工具都将继续工作,但是你添加的所有新的 JSON 断言器都将使用新的实现。

本主题关注当前 JSON 断言器实现。有关已弃用 JSON 断言器的更多详情,请查阅 不建议使用的 JSON 断言器

了解 JSON 断言器

JSON 断言器用于增强 JSON 消息中数据的正确性。  它使你能够反省 JSON 消息中的各个元素,并检查它们是否符合预期。 

JSON 断言器可以链接到任何通信 JSON 消息的工具,它通常与消息传递客户机和 REST 客户机工具连接。

这个工具通常是从 JSON 消息的 Create/Update Regression Control 对话框中添加的(通过选择 Create Value Assertion 选项)。有关以这种形式添加 JSON 断言器的更多详情,请查阅 对单个响应元素的值进行验证



它还可通过 Add Output 向导添加,如 添加测试输出中所述。

配置 JSON 断言器

JSON 断言器由三个主要选项卡组成:

  • Summary: 此选项卡包含一个表,显示已配置的 JSON 断言的详细信息。
  • Configuration: 此选项卡用于创建和配置 JSON 断言。
  • Expected JSON: 指定预期的 JSON 响应,创建可以从中选择元素的模板。如果 JSON 断言器接收一个有效的 JSON 消息(比如,该消息来自流量或者附加的工具),则此面板将自动被填充。作为一种选择,可以将示例消息复制到 Literal 或 Tree 选项卡中。注意,默认情况下不会保存预期 JSON;如果要对它进行保存,请启用 Save Expected JSON 选项。

若要配置 JSON 断言器:

  1. 请单击 JSON 断言器配置选项卡中的 Add 按钮。



    将显示 Select Assertion 向导。



  2. 选择一个断言类型。下面是对可用断言类型的简要总结。
    • Value Assertions: 可以使用以下值断言:
      • Value Assertion: 强制执行特定元素的值。
      • Value Occurrence Assertion: 强制具有给定值的元素出现一定数量(例如,Xpath 选择器和所指定值字符串上的文档必须 n 个匹配项)。
      • Numeric Assertion: 强制元素的数值。
      • String Comparison Assertion: 执行给定元素的文本内容的值。
      • Regular Expression Assertion: 强制元素匹配正则表达式。
      • Expression Assertion: 执行由元素组成的表达式的值。
      • Custom Assertion: 通过编写自定义逻辑脚本来强制执行元素的值。
    • Structure Assertions: 可以使用以下结构断言:
      • Occurrence Assertion: 强制元素出现的次数。
      • Has Content Assertion: 强制元素具有文本内容(即,文本长度> 0)。
      • Has Children Assertion: 强制一个元素有一个或多个子元素。
      • Type Assertion: 强制元素的类型。
    • Compound Assertions: 可以使用以下组合断言:
      • AND Assertion: 将所有必须成功的多个断言分组。
      • OR Assertion: 在至少一个断言必须成功的地方对多个断言进行分组。
      • Conditional Assertion: 只有在满足条件时才强制执行断言(条件是以前定义的断言的组合)。
    • Difference Assertions:可以使用以下差异断言:
      • Numeric Difference Assertion: 对特定元素的值强制执行数值差异。断言元素的数值与用户指定的基值之间存在用户指定值的差异。例如,为了断言华氏度的值低于冰点 3 度,可以将基本值设置为 32,差值设置为 -3。
      • Date Difference Assertion: 对特定元素的值强制执行日期差异。
      • DateTime Difference Assertion: 对特定元素的值强制执行日期时间差异。
    • Range Assertions:可以使用以下差异断言:
      • Numeric Range Assertion: 强制元素的数值位于数值范围的包含范围内。
      • Date Range Assertion: 对特定元素的值强制使用日期范围。
      • Date Time Range Assertion: 对特定元素的值强制设置日期时间范围。
  3. 单击 下一步 按钮。将显示一个树视图。
  4. 从树视图中选择要检查此断言的元素,然后单击 Finish 按钮。



    注意,你可以在工具的 Expected JSON 选项卡(如上所述)中编辑此树的结构。

你可以通过单击 Configuration 选项卡中的 Add 按钮,添加附加的断言来应用于消息。

如果以后想指定附加选项(例如,如果想改变列用于存储值的名称,你想要的值保存到一个可写的数据源,或者你想要的值存储到现有的变量)。或者,如果你想修改引用的元素,则请点击 Configuration 选项卡底部的 Change Element 按钮。这将打开一个对话框,允许你图形化或手动编辑给定的元素。 

关于如何使用该对话框来配置其他选项的更多详情,请查阅 JSON 选择器参考

工具选项


在将提取的字符串与预期文本进行比较之前, Trim content 选项将删除提取字符串的开始和结束部分的任何空格。例如,如果提取了“bar”(忽略所有示例中的引号;它们被用来显示空格),它会变成“bar”;如果没有启用 Trim content 选项,这将匹配“bar”(并且无法匹配“bar”)。

视频教程 

在本视频中,你将学习如何在 JSON 响应中为值添加目标断言。

  • No labels