JSON提取器

JSON提取器是专门用来对返回的响应结果是application/json格式的报文进行提取

响应:

jsonPath的父亲 java jsonpath取值_JSON


jsonPath的父亲 java jsonpath取值_json_02

添加路径:

jsonPath的父亲 java jsonpath取值_取值_03


JSON提取器,变量应用范围,默认选择Main sample only即可

jsonPath的父亲 java jsonpath取值_json_04


变量路径的语法规则可以参考下面的:JSON PATH语法如下列表,具体语法使用规则,还需要大家多多尝试,可以在察看结果树中切换成JSON Path Tester模式进行测试。怎么写JSON PATH,只有写出正确的JSON PATH,才能获取到我们需要的变量值,默认我们jmeter的察看结果树显示的结果是Text文本格式,这样我们就不能快速的看出变量的层级,所以需要把查看结果树的显示格式改成JSON Path Tester,该查看结果树还支持直接对结果进行调试

jsonPath的父亲 java jsonpath取值_json_05


假如想获取第一个list里面的id

jsonPath的父亲 java jsonpath取值_JSON_06


表达式:$…list[0].list[0].id

实际工作中,可能返回的查询结果经常会变化,这时候如果在写死数组索引的位置,比如上面给大家介绍的,写成jsonPath的父亲 java jsonpath取值_取值_07…list[?(@.carTypeName==“小面包”)].id,该json path可以通过一个变量定位到自己所在的数组的索引,然后在去取需要的id,比如carTypeName这个值是唯一值,就可以通过该值取到需要的值,语法如下$…然后后面跟数组名称,本文为list,然后跟[?(@.carTypeName==“小面包”)],其中carTypeName是序列中的一个唯一值,可以根据需要修改,“小面包"是carTypeName实际为什么值就填什么,最后在加”."后面跟你需要取的字段名如id,pah都行,只要在这个数组中存在

一步步调试

jsonPath的父亲 java jsonpath取值_jmeter_08


jsonPath的父亲 java jsonpath取值_取值_09

这样就算以后排序了也可得到固定的值。

jsonPath的父亲 java jsonpath取值_jsonPath的父亲 java_10

JSON PATH语法如下列表

jsonPath的父亲 java jsonpath取值_jsonPath的父亲 java_11

JSON怎么通过一个提取器提取多个变量,多个变量时则每个变量用“;”间隔开,正则表达式、匹配序列、默认值也一样,需要用“;”隔开,下面先介绍当正则表达式取固定的序列的时候,填写的规则如下图

jsonPath的父亲 java jsonpath取值_json_12

当表达式取任意序列时(匹配所有符合的值),填写规则如下图

jsonPath的父亲 java jsonpath取值_json_13

返回结果为application/json格式的都用json path取值,不用正则

正则表达式,具体语法使用规则参考https://www.runoob.com/regexp/regexp-syntax.html

json表达式里面可以用jmete的变量的,如下:

jsonPath的父亲 java jsonpath取值_json_14