jmeter (四):后置处理器 Json extractor
在用jmeter 提取请求返回的值,除了用到前面提到的正则表达式提取,我们还可以用到后置处理器 Json extractor 。
当json数据返回值为{"firstName": "Jiezai"}
,正则表达式为"firstName": "(.+?)"
,如果:(冒号左右边有空格时),其实也是json数据,然后正则表达式也需要跟着加,但是不管冒号左右边有没有空格,JSON Path Extractor表达式都为$..firstName
练习准备:
1.搜索安装插件 :JSON Extractor ,Dummy Sampler
2.使用Dummy Sampler 模拟数据
第一步:添加请求返回的JSON值,便于模拟
第二步:选中上面的Samper ,添加 JSON Extractor
第三步:在JSON Extractor 中填写表达式值
第四步:查看运行结果
对应的json 数据如下:
{"status":"110000","msg":"OK","data":[{"corpId":"1","id":"2299","baseResourceId":null,"isBaseUpdate":0,"title":"导游管理","titleLang":"{\"zh-TW\":\"導遊管理\",\"zh-CN\":\"导游管理\"}","parentId":"212","resourcePath":"[212,2299]","type":1,"path":"/guide","icon":null,"url":null,"apiUrl":null,"apiUrlParam":null,"resourceJson":null,"isHidden":0,"remark":null,"langCode":null,"bySort":9,"viewField":null,"viewCondition":null,"viewOrderBy":null,"viewStatisticsType":0,"viewStatistics":null,"viewPermissionType":null,"isComUpdate":null,"createBy":"0","createByName":null,"createTime":"2019-12-03T17:05:39.003+0000","updateBy":"0","updateByName":null,"updateTime":"2018-11-03T17:05:39.003+0000","isDel":0,"displayDataRange":null,"manageDataRange":null,"children":null,"roleIds":null,"employeeId":null,"employeeIds":null},{"corpId":"1","id":"2269","baseResourceId":null,"isBaseUpdate":0,"title":"购物店列表","titleLang":"{\"en-US\":\"shopping list\",\"zh-TW\":\"購物店列表\",\"fr-FR\":\"liste d'achats\",\"zh-CN\":\"购物店列表\"}","parentId":"212","resourcePath":"[212,2268,2269]","type":1,"path":"/list","icon":null,"url":null,"apiUrl":null,"apiUrlParam":null,"resourceJson":null,"isHidden":1,"remark":null,"langCode":null,"bySort":0,"viewField":null,"viewCondition":null,"viewOrderBy":null,"viewStatisticsType":0,"viewStatistics":null,"viewPermissionType":null,"isComUpdate":null,"createBy":"0","createByName":null,"createTime":"2018-11-03T17:04:45.531+0000","updateBy":"0","updateByName":null,"updateTime":"2018-11-03T17:04:45.531+0000","isDel":0,"displayDataRange":null,"manageDataRange":null,"children":null,"roleIds":null,"employeeId":null,"employeeIds":null}]}
变量 | 目标 | 表达式 | 提取的值 |
viewIds | 提取第1条记录的id | $.data[0].id | viewIds=2299 |
viewParentId | 提取第1条记录的parentId | $.data[0].parentId | viewParentId=212 |
resourceId | 提取title 等于导游管理的id | $..data[?(@.title=="导游管理")].id | resourceId=["2299"] resourceId_1=2299 |
createTime | 提取创建时间大于2019-11-03 的记录 | $..data[?(@.createTime>"2019-11-03")].createTime | createTime=["2019-12-03T17:05:39.003+0000"] createTime_1=2019-12-03T17:05:39.003+0000 |
在线json 解析器操作:
【补充】:后面发现 后置处理器中的 JSON Extractor 可以直接处理,
路径如下图:
在线json 解析器地址 :
jsonpath 学习手册:
https://goessner.net/articles/JsonPath/
其它参考文章:
https://blog.****.net/huazhongkejidaxuezpp/article/details/84728342