接口测试 如何在 jmeter 中用正则或者 json 提取列表里所有数据

J · 2020年12月28日 · 最后由 J 回复于 2020年12月28日 · 3030 次阅读

下面是返回内容,我要拿 allTeacherIdList 里面的数据:
{
"code":0,
"message":"操作成功",
"data":{
"allTeacherIdList":[
1485,
1494,
]
},
"count":null,
"pager":null
}

1.我用 $.data.allTeacherIdList 匹配出来的数据是带中括号的
2.我用 $.data.allTeacherIdList[*] 在 JSONPath 在线 测试中能成功提取数据,但是在 Jmeter 上面却提取出的结果却只提取出一个数据
希望大佬们指点一下迷津,万分感谢

最佳回复


JSON 提取器,提取所有可以得到下面四个:
allTeacherIdListItem_1=1485
allTeacherIdListItem_2=1494
allTeacherIdListItem_ALL=1485,1494
allTeacherIdListItem_matchNr=2

不是很确定你到底希望取出的内容格式是如何的,根据你自己的 jsonpath: $.data.allTeacherIdList[*] 是可以取出 2 个结果的(你提供的 json,list 中多了一个逗号)

共收到 4 条回复 时间 点赞

试一下正则表达式"allTeacherIdList":[(.*?)]


JSON 提取器,提取所有可以得到下面四个:
allTeacherIdListItem_1=1485
allTeacherIdListItem_2=1494
allTeacherIdListItem_ALL=1485,1494
allTeacherIdListItem_matchNr=2

不是很确定你到底希望取出的内容格式是如何的,根据你自己的 jsonpath: $.data.allTeacherIdList[*] 是可以取出 2 个结果的(你提供的 json,list 中多了一个逗号)

J #3 · 2020年12月28日 Author
老琪头 回复

非常感谢大佬的指点,按照你的配置问题解决了。勾选了 compute concatenation var 就可以了😂 ,之前没勾选的时候,输入-1 直接匹配不到

505196778A 回复

这个试过了,不可以的。正则匹配的话 allTeacherIdList":[((\d*,)\d)] 这样才可以了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册