Jmeter后置处理器之Json提取器

 
用法说明
 
  此提取器用于提取请求返回结果中的某个值或者某一组值,用法比正则表达式要简单,标准写法为$.key,其中key为返回结果map中的一个键,如果是多层则继续用.key进行即可,如果遇到key的value值为一个List,则使用.key[n],其中n为list中元素的编号,如下使用实例来说明下如何使用;
 

  而json提取器语法用分号隔开,应当与参数名称一一对应;
  匹配编号一样的需要用分号隔开,与参数名称一一对应;
  默认值同样用分号隔开,与参数名称一一对应;
 
  Json提取器语法说明
    完整的语法说明请见https://github.com/json-path/JsonPath
  调试方法:
    在View Result Tree中选择JSON Path Tester,即可展开如下图的右侧内容,输入表达式即可拿来测试书写的Json提取器表达式是否能正常工作:
    

  示例:

    请求URL:https://fe-api.zhaopin.com/c/i/sou?pageSize=60&cityId=765&workExperience=-1&education=-1&companyType=-1&employmentType=-1&jobWelfareTag=-1&kw=%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95&kt=3

    返回的数据格式:

{
    "recordsFiltered": 8,
    "data": [
        {
            "thisYear": 0,
            "hfyljg": "广州市养老机构",
            "updateDate": null,
            "ysq2": null,
            "con": null,
            "ysq3": null,
            "dpid": null,
            "ztpf": "A(优秀)",
            "createdate": null,
            "delFlag": "0",
            "hfrq": "2019-11-26 00:00:00",
            "hfgcyxzl": "",
            "createby": null,
            "updatedate": null,
            "updateBy": null,
            "ysq": null,
            "id": "7695969a08c34ff18ee847437c295377",
            "hfjlr": "市领导",
            "isdel": null,
            "createDate": null,
            "createtime": null,
            "message": null,
            "fwtd": "A(优秀)",
            "hfgcsm": "test",
            "createBy": null,
            "fwzl": "A(优秀)",
            "hflr": "test",
            "updateby": null,
            "rzlrmyd": "A(优秀)",
            "qtsmbz": "",
            "qcode": null,
            "remarks": null
        },
        {
            "thisYear": 0,
            "hfyljg": "广州市养老机构",
            "updateDate": null,
            "ysq2": null,
            "con": null,
            "ysq3": null,
            "dpid": null,
            "ztpf": "A(优秀)",
            "createdate": null,
            "delFlag": "0",
            "hfrq": "2019-11-26 00:00:00",
            "hfgcyxzl": "",
            "createby": null,
            "updatedate": null,
            "updateBy": null,
            "ysq": null,
            "id": "7ef39120839641509a448022d8d19f1d",
            "hfjlr": "市领导",
            "isdel": null,
            "createDate": null,
            "createtime": null,
            "message": null,
            "fwtd": "A(优秀)",
            "hfgcsm": "test",
            "createBy": null,
            "fwzl": "A(优秀)",
            "hflr": "test",
            "updateby": null,
            "rzlrmyd": "A(优秀)",
            "qtsmbz": "",
            "qcode": null,
            "remarks": null
        },
        {
            "thisYear": 0,
            "hfyljg": "增城区中新镇福和敬老院",
            "updateDate": null,
            "ysq2": null,
            "con": null,
            "ysq3": null,
            "dpid": null,
            "ztpf": "C(一般)",
            "createdate": null,
            "delFlag": "0",
            "hfrq": "2019-12-10 00:00:00",
            "hfgcyxzl": "4c698efd8744f5d4319bfc5d7a5d36c1",
            "createby": null,
            "updatedate": null,
            "updateBy": null,
            "ysq": null,
            "id": "b0b9fcd09b01495a82f21cddd02dd2d0",
            "hfjlr": "市领导",
            "isdel": null,
            "createDate": null,
            "createtime": null,
            "message": null,
            "fwtd": "B(良好)",
            "hfgcsm": "我很好",
            "createBy": null,
            "fwzl": "B(良好)",
            "hflr": "国家战士",
            "updateby": null,
            "rzlrmyd": "B(良好)",
            "qtsmbz": "没问题",
            "qcode": null,
            "remarks": null
        },
        {
            "thisYear": 0,
            "hfyljg": "增城区中新镇福和敬老院",
            "updateDate": null,
            "ysq2": null,
            "con": null,
            "ysq3": null,
            "dpid": null,
            "ztpf": "C(一般)",
            "createdate": null,
            "delFlag": "0",
            "hfrq": "2019-12-10 00:00:00",
            "hfgcyxzl": "4c698efd8744f5d4319bfc5d7a5d36c1",
            "createby": null,
            "updatedate": null,
            "updateBy": null,
            "ysq": null,
            "id": "2576d5940acb48e1a55ddb56fd28e34f",
            "hfjlr": "市领导",
            "isdel": null,
            "createDate": null,
            "createtime": null,
            "message": null,
            "fwtd": "B(良好)",
            "hfgcsm": "我很好",
            "createBy": null,
            "fwzl": "B(良好)",
            "hflr": "国家战士",
            "updateby": null,
            "rzlrmyd": "B(良好)",
            "qtsmbz": "没问题",
            "qcode": null,
            "remarks": null
        },
        {
            "thisYear": 0,
            "hfyljg": "增城区中新镇福和敬老院",
            "updateDate": null,
            "ysq2": null,
            "con": null,
            "ysq3": null,
            "dpid": null,
            "ztpf": "C(一般)",
            "createdate": null,
            "delFlag": "0",
            "hfrq": "2019-12-10 00:00:00",
            "hfgcyxzl": "4c698efd8744f5d4319bfc5d7a5d36c1",
            "createby": null,
            "updatedate": null,
            "updateBy": null,
            "ysq": null,
            "id": "a9aafaa9c64a419c8eabae370f0dae31",
            "hfjlr": "市领导",
            "isdel": null,
            "createDate": null,
            "createtime": null,
            "message": null,
            "fwtd": "B(良好)",
            "hfgcsm": "我很好",
            "createBy": null,
            "fwzl": "B(良好)",
            "hflr": "国家战士",
            "updateby": null,
            "rzlrmyd": "B(良好)",
            "qtsmbz": "没问题",
            "qcode": null,
            "remarks": null
        },
        {
            "thisYear": 0,
            "hfyljg": "增城区中新镇福和敬老院",
            "updateDate": null,
            "ysq2": null,
            "con": null,
            "ysq3": null,
            "dpid": null,
            "ztpf": "C(一般)",
            "createdate": null,
            "delFlag": "0",
            "hfrq": "2019-12-10 00:00:00",
            "hfgcyxzl": "4c698efd8744f5d4319bfc5d7a5d36c1",
            "createby": null,
            "updatedate": null,
            "updateBy": null,
            "ysq": null,
            "id": "b64df74269cd4805a70fdd0b0b4a8cf9",
            "hfjlr": "市领导",
            "isdel": null,
            "createDate": null,
            "createtime": null,
            "message": null,
            "fwtd": "B(良好)",
            "hfgcsm": "我很好",
            "createBy": null,
            "fwzl": "B(良好)",
            "hflr": "国家战士",
            "updateby": null,
            "rzlrmyd": "B(良好)",
            "qtsmbz": "没问题",
            "qcode": null,
            "remarks": null
        },
        {
            "thisYear": 0,
            "hfyljg": "中二机构",
            "updateDate": null,
            "ysq2": null,
            "con": null,
            "ysq3": null,
            "dpid": null,
            "ztpf": "C(一般)",
            "createdate": null,
            "delFlag": "0",
            "hfrq": "2019-08-04 00:00:00",
            "hfgcyxzl": "",
            "createby": null,
            "updatedate": null,
            "updateBy": null,
            "ysq": null,
            "id": "c22175d30d7141248054a6a5db3618e3",
            "hfjlr": "白云区经办",
            "isdel": null,
            "createDate": null,
            "createtime": null,
            "message": null,
            "fwtd": "C(一般)",
            "hfgcsm": "一般",
            "createBy": null,
            "fwzl": "C(一般)",
            "hflr": "刘贤",
            "updateby": null,
            "rzlrmyd": "C(一般)",
            "qtsmbz": "",
            "qcode": null,
            "remarks": null
        },
        {
            "thisYear": 0,
            "hfyljg": "中四机构",
            "updateDate": null,
            "ysq2": null,
            "con": null,
            "ysq3": null,
            "dpid": null,
            "ztpf": "A(优秀)",
            "createdate": null,
            "delFlag": "0",
            "hfrq": "2019-08-02 00:00:00",
            "hfgcyxzl": "",
            "createby": null,
            "updatedate": null,
            "updateBy": null,
            "ysq": null,
            "id": "23598ee7b0a140b49a84e96e8b63345d",
            "hfjlr": "白云区经办",
            "isdel": null,
            "createDate": null,
            "createtime": null,
            "message": null,
            "fwtd": "A(优秀)",
            "hfgcsm": "老人对机构评价不错",
            "createBy": null,
            "fwzl": "B(良好)",
            "hflr": "黄佩",
            "updateby": null,
            "rzlrmyd": "B(良好)",
            "qtsmbz": "",
            "qcode": null,
            "remarks": null
        }
    ],
    "draw": 0,
    "recordsTotal": 8
}

现在我们来提取职位的positionURL字段:

1、在查看结果树中通过JSON Path Tester来调试json path

 

2、添加JSON提取器,设置正确的参数,获取第一个positionURL

 输出结果:

 

3、获取所有的positionURL

 输出结果:

 

4、把所有的positionURL放到一个字段中

 输出结果:

 

5、一次性提取多个字段,比如我们要提取第一个职位的jobName;salary;positionURL三个字段

 输出结果:

 

Json Path表达式:

JsonPath

描述

$

根节点

@

当前节点

.or[]

子节点

..

选择所有符合条件的节点

*

所有节点

[]

迭代器标示,如数组下标

[,]

支持迭代器中做多选

[start:end:step]

数组切片运算符

?()

支持过滤操作

()

支持表达式计算

posted @ 2020-08-03 10:15  DeyouKong  阅读(368)  评论(0编辑  收藏  举报