JSONPath 查询和 JSONPath Builder

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

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

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

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

当您从监控工具库添加新的 REST API 性能监控工具时,添加 REST API 性能监控工具窗口将打开。此窗口包含两个相关部分, REST APIJSONPATH ,它们在 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 窗口:

jsonpath_builder

  1. 单击验证以在端点上运行测试。如果性能监控工具可以从 JSONPATH 端点值中提取数字结果,则可以保存监控工具并将其添加到性能监控工具库中。下图是一个 JSONPath 示例,该示例向使用 JSONPath Builder 构建的性能监控工具返回一个有效的数值:

REST_API_Perf_Monitor_jsonpath

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 的脱机条件示例:
    REST_API_Active_Monitor_jsonpath
  8. 单击保存以将监控工具添加到主动监控工具库。

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

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

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

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

高级 JSONPath 查询

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

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

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

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

Note:如果捕获的对象长度为 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 数组的长度。