我们在用 jmeter 做接口测试的时候,有的时候会遇到一些复杂的 json 响应。比如多层 list 嵌套时的取值
Jmeter 接口自动化交流扣扣群:704807680

一个简单的例子:

$..Name:列出所有省份

$..Province[0].Name 提取 Province 中第一个 list 中的 Name

Jmeter 接口自动化交流扣扣群:704807680
$..[?(@.Name=='Beijing')] 筛选出省份名为 Beijing 的所有 list 数据

$.Province[:2].population 筛选前两条数据

注意:.Province[:2].population 是筛选出前两条数据;.Province[2].population 是排除前两条数据;$.Province[-2].population 是排除后两条数据,千万别弄混了哦~

下面列举一个复杂的例子:


这是一个多层嵌套的 jsonlist,需要提取所有 cabinInfos 列表下,patFlag=Y 时的 cabin,standardPrice 和 finallyPrice。是不是听起来就很复杂?如果按照传统的正则表达式提取,那么 很难满足这里的需求了。因此就需要用到 jsonpath 表达式。
Jmeter 接口自动化交流扣扣群:704807680

$..[?(@.patFlag=="Y")].["cabin","standardPrice","finallyPrice"]

Jmeter 接口自动化交流扣扣群:704807680


↙↙↙阅读原文可查看相关链接,并与作者交流