JSONPath Builder 是在创建 REST API 主动和性能监控工具以及 REST API 主动和性能应用程序监控 (APM) 组件时使用的辅助实用程序。该工具帮助用户选择他们想要监控的 JSON 元素,并为所选的 JSON 元素生成一个 JSONPath 查询。

JSONPath 查询可以采用两种样式书写,即括号表示法和点表示法,例如:

  • [‘name’]
  • $.name

本主题介绍 JSONPath Builder 工具的工作流和支持的语法。

REST API 性能监控工具中的 JSONPath Builder

当您从监控工具库添加新的 REST API 性能监控工具时, 添加 REST API 性能监控工具 窗口将打开。此窗口包含两个相关部分, REST API 和 JSONPATH ,它们在 JSONPath Builder 工具中使用。

提供 REST API 性能监控工具名称、描述和超时值,然后按照以下步骤使用 JSONPath Builder 工具:

  1. 指定要获取性能指标的 REST API URL 端点。
  2. (可选)使用 编辑自定义标头 按钮添加自定义标头。
  3. (可选)如果您需要禁止显示证书错误消息,请选择 忽略证书错误 。
  4. (可选)选择 使用匿名访问 绕过向端点发送 REST API 凭据。此选项仅在 REST API 端点不需要身份验证即可访问时有效。
  5. 单击 JSONPath Builder 按钮。如果 REST API URL 有效,则会打开 JSONPath Builder 窗口。在此窗口中,您可以选择要监控性能数据的数字字段。下图显示带有示例“儿童图书馆”数据的 JSONPath Builder 窗口:
  1. 单击 验证 以在端点上运行测试。如果性能监控工具可以从 JSONPATH 端点值中提取数字结果,则可以保存监控工具并将其添加到性能监控工具库中。下图是一个 JSONPath 示例,该示例向使用 JSONPath Builder 构建的性能监控工具返回一个有效的数值:

REST API 主动监控工具中的 JSONPath Builder

当您从监控工具库添加新的 REST API 活动监控工具时, 添加 REST API 主动监控工具 窗口将打开。此窗口包含两个相关部分: REST API 和 脱机条件 ,其中包括 JSONPath 查询 网格作为为监控工具添加脱机条件的方法。在选择放大镜按钮时, JSONPath 查询 网格会使用 JSONPath Builder。

在使用 REST API 主动监控工具时,您可以定义多个 JSONPath 查询来评估监控工具的脱机状态。此外,与性能监控工具不同,主动监控工具支持针对数字、布尔和字符串类型的变量验证脱机条件。

在 JSONPath Builder 中选择 JSON 元素后,JSONPath 查询网格会自动检测元素的类型,并将其输入到 JSONPath 查询网格的 类型 列中。

提供 REST API 主动监控工具名称、描述和超时值,然后按照以下步骤使用 JSONPath Builder 工具:

  1. 指定要获取性能指标的 REST API URL 端点。
  2. (可选)使用 编辑自定义标头 按钮添加自定义标头。
  3. (可选)如果您需要禁止显示证书错误消息,请选择 忽略证书错误 。
  4. (可选)选择 使用匿名访问 绕过向端点发送 REST API 凭据。此选项仅在 REST API 端点不需要身份验证即可访问时有效。
  5. 选择将监控工具报告为脱机的 HTTP 响应代码。
  6. 选择 + 按钮向 JSONPath 查询网格添加一行。该行默认为空。
  7. 在 JSONPath 查询网格中的空行内部双击,然后选择放大镜按钮以打开 JSONPath Builder。如果未选中 使用匿名访问 ,则会提示您输入 REST API 凭据 。JSONPath Builder 窗口打开。在此窗口中,您可以选择要监控脱机条件的数字、布尔值或字符串类型端点。下图显示有关图书馆书籍的示例 API 的脱机条件示例:
  8. 单击 保存 以将监控工具添加到主动监控工具库。

REST API 性能应用程序监控 (APM) 组件中的 JSONPath Builder

REST API 性能应用程序监控 (APM) 组件的工作方式与 REST API 性能监控工具类似,但增加了数值响应的警告和脱机阈值条件。REST API APM 组件可以附加到测试设备并进行验证。下图显示示例数字 API 端点以及警告和脱机阈值:

REST API 主动应用程序监控 (APM) 组件中的 JSONPath Builder

REST API 主动应用程序监控 (APM) 组件的工作方式与 REST API 主动监控工具类似,只是增加了一个测试设备,REST API 主动 APM 组件可以连接到该设备并验证监控工具。

高级 JSONPath 查询

如上所述,JSONPath 查询可以采用两种样式书写,即括号表示法和点表示法,例如:

  • [‘name’]
  • $.name

如果有一个 JSON 数组“books”,其中数组中的第一项名称为“The Cat in the Hat”,则可以通过输入以下任一 JSON 查询来访问该值:

  • [‘books’][0]['name']
  • $.books[0].name

除了支持使用 JSONPath Builder 为 JSON 元素生成 JSONPath 查询之外,您还可以编写高级查询以使用 JSONPath 查询中的过滤条件来验证 JSON 响应。过滤条件可用于执行使用比较运算符的操作。此外,“length”属性可用于返回 JSON 数组的长度。

这些属性可用于 JSONPath 查询过滤条件,以根据条件返回值并过滤掉不需要的值。

注: 如果捕获的对象长度为 1,则标记选择器将仅返回一个值。如果 JSONPath 查询返回多个值,则会引发解析错误。

下表列出支持的比较运算符:

比较运算符名称

比较运算符

示例(括号符号)

示例(点记法)

注释

等于

==

['books'][?(@.name == 'The Cat in the Hat')]['copies']

$.books[?(@.name == 'The Cat in the Hat')].copies

该查询返回库存中“The Cat in the Hat”的副本数。

不等于

!=

['books'][?(@.name != 'The Cat in the Hat')]['copies']

$.books[?(@.name != 'The Cat in the Hat')].copies

小于

<

['books'][?(@.copies < 3)]

$.books[?(@.copies < 3)]

例如,对于主动监控工具和主动 APM 组件,如果“The Cat in the Hat”包含少于 3 个副本,则脱机条件将是一个包含“The Cat in the Hat”的字符串。

小于或等于

<=

['books'][?(@.copies <= 3)]

$.books[?(@.copies <= 3)]

大于

>

['books'][?(@.copies > 1)]['bookId']

$.books[?(@.copies > 1)].bookId

例如,对于主动监控工具和主动 APM 组件,如果“The Cat in the Hat”包含 1 个以上的副本,则脱机条件可以是不包含 1(“The Cat in the Hat”的 bookId)的数字。

大于或等于

>=

['books'][?(@.copies > 1)]['bookId']

$.books[?(@.copies > 1)].bookId

长度

.length

['books'].length

$.books.length

返回 JSON 数组的长度。