Jmeter之json提取器实战(二)

  • 2019 年 12 月 15 日
  • 筆記

之前写过一篇文章【Jmeter篇】后置处理器之正则提取器、Json提取器 不是很完善,今天我们再来写一篇json提取器进行补充说明。

访问链家二手房列表接口sh.lianjia.com/api/newhouserecommend?type=1&query=https%3A%2F%2Fsh.lianjia.com%2Fershoufang%2F%3Futm_source%3Dbaidu%26utm_medium%3Dpinzhuan%26utm_term%3Dbiaoti%26utm_content%3Dbiaotimiaoshu%26utm_campaign%3Dsousuo%26ljref%3Dpc_sem_baidu_ppzq_x响应数据如下:

{      "errno": 0,      "uniq_id": "010A1A64033508FEC06E01AA304A9913",      "data": [          {              "outlet_center_tel": "",              "cover_pic": "https://image1.ljcdn.com/hdic-resblock/prod-88c98145-9d1a-4537-a104-0cc0f1f76793phptMcWGI",              "project_name": "zhxhgcbivyk",              "project_desc": "交通便利 标准写字楼",              "bizcircle_id": "613000314",              "show_price_confirm_time": "5天",              "discount_realpay": "0",              "special_tag": "",              "resblock_alias": "旭泾商务中心",              "price": "64000",              "checkin_start_date": null,              "id": "5020021484471818",              "min_frame_area": "0",              "decoration": "毛坯",              "carRatio": "1:",              "address_remark": "张杨路2389弄3号",              "allowance": "0",              "tags": [              ],              "permit_all_ready": "1",              "has_virtual_view": "0",              "property_address": "张杨路崮山路路口",              "build_id": "5020021484471818",              "process_status": "3",              "full_spell": "zhihuixuhuiguangchang",              "evaluate": [              ],              "status": "2",              "resblock_frame_area": "",              "total_area": "350,000",              "scheme": "lianjia://newhouse/detail?project_name=zhxhgcbivyk",              "address_desc": "张杨路2389弄3号",              "latitude": "31.247222",              "resblock_name": "置汇旭辉广场",              "build_name": "置汇旭辉广场",              "m_detail_url": "https://m.lianjia.com/sh/loupan/p_zhxhgcbivyk/",              "display_video_intro": "0",              "decorate_type": "2",              "house_type": "写字楼",              "avg_price_max": "0",              "total_price_max": "0",              "store_tel": "02133110033",              "prod": "1",              "address": "张杨路2389弄3号",              "store_addr": "张杨路2389弄",              "lowest_total_price": null,              "discount_value": "0",              "sale_status": "在售",              "show_price": "64000",              "pc_detail_url": "https://sh.fang.lianjia.com/loupan/p_zhxhgcbivyk/",              "price_confirm_time": "2019-11-25 17:26:15",              "discount_type": "0",              "sale_status_color": "53CC9A",              "max_frame_inside_area": "0",              "resblock_desc": "",              "total_price_min": "0",              "virescence_area": "21,794.00",              "overground_car_num": "0",              "project_tags": [              ],              "special_tags": [              ],              "rooms": "",              "open_time": "2018-06-16",              "pid": "612414",              "show_price_unit": "元/平",              "evaluate_status": "0",              "price_show_config": "1",              "view_url": "http://sh.fang.lianjia.com/loupan/p_zhxhgcbivyk/",              "underground_car_num": "0",              "build_type": "107500000006",              "strategy_info": {                  "fb_item_location": "0",                  "fb_query_id": "010A1A64033508FEC06E01AA304A9913_08a921c1e00b42e1a7f0f22cb2aea32a10.26.64.70",                  "fb_item_type": "xinfang_project_name",                  "fb_strategy_id": "10000250",                  "fb_response_ts": "1575195904",                  "fb_context_id": "{"req_source_type":"zhiying_pc"}",                  "fb_expo_id": "r15751959041236074463937839450",                  "fb_item_detail": "zhxhgcbivyk",                  "fb_ab_test_flag": "reco_rule-500012-default-default",                  "fb_service_id": "500012"              },              "longitude": "121.560934",              "cover_size_pic": "https://image1.ljcdn.com/hdic-resblock/prod-88c98145-9d1a-4537-a104-0cc0f1f76793phptMcWGI!m_fill,w_280,h_210,l_rorate_logo",              "cubage_rate": "2.60",              "min_frame_inside_area": "0",              "is_exclusive": "0",              "frame_rooms": [              ],              "site_area": "87,180",              "video_intro": [              ],              "city_id": "310000",              "is_cooperation": "0",              "frame_rooms_desc": null,              "building_count": "1",              "district_name": "浦东",              "city_name": "上海市",              "house_type_color": "59A5EB",              "max_frame_area": "0",              "allowance_comm": "",              "administrative_address": "张杨路2389弄3号",              "virescence_rate": "25.00",              "part_num": "50",              "discount_info": "[]",              "total_price": "0",              "show_price_desc": "均价",              "average_price": "64000",              "special": {                  "developer_special_comm": "",                  "developer_special": [                  ],                  "lianjia_special": [                  ],                  "lianjia_special_comm": ""              },              "bizcircle_name": "洋泾",              "house_amount": "140",              "district_id": "310115",              "house_type_value": "107500000006"          },          {              "outlet_center_tel": "",              "cover_pic": "https://image1.ljcdn.com/hdic-resblock/prod-03121e45-2a19-4c63-a48d-971608ddb202phpPTGy2g",              "project_name": "jaxcspbjbxj",              "project_desc": "闵行龙茗路,靠近宜山路站",              "bizcircle_id": "611900071",              "show_price_confirm_time": "4天",              "discount_realpay": "0",              "special_tag": "",              "resblock_alias": "龙茗路商铺",              "price": "60000",              "checkin_start_date": null,              "id": "5020035410098507",              "min_frame_area": "0",              "decoration": "毛坯",              "carRatio": "1:",              "address_remark": "龙茗路2229号",              "allowance": "0",              "tags": [              ],              "permit_all_ready": "0",              "has_virtual_view": "0",              "property_address": "",              "build_id": "5020035410098507",              "process_status": "3",              "full_spell": "jinganxinchengshangpu",              "evaluate": [              ],              "status": "2",              "resblock_frame_area": "",              "total_area": "150,000",              "scheme": "lianjia://newhouse/detail?project_name=jaxcspbjbxj",              "address_desc": "龙茗路2229号",              "latitude": "31.166744",              "resblock_name": "静安新城商铺",              "build_name": "静安新城商铺",              "m_detail_url": "https://m.lianjia.com/sh/loupan/p_jaxcspbjbxj/",              "display_video_intro": "0",              "decorate_type": "2",              "house_type": "商业",              "avg_price_max": "0",              "total_price_max": "0",              "store_tel": "02134316160",              "prod": "1",              "address": "龙茗路2229号",              "store_addr": "龙茗路2229号",              "lowest_total_price": null,              "discount_value": "0",              "sale_status": "在售",              "show_price": "60000",              "pc_detail_url": "https://sh.fang.lianjia.com/loupan/p_jaxcspbjbxj/",              "price_confirm_time": "2019-11-27 10:38:51",              "discount_type": "0",              "sale_status_color": "53CC9A",              "max_frame_inside_area": "0",              "resblock_desc": "",              "total_price_min": "860",              "virescence_area": "3,000.00",              "overground_car_num": "-1",              "project_tags": [              ],              "special_tags": [              ],              "rooms": "",              "open_time": "2018-09-30",              "pid": "616443",              "show_price_unit": "元/平",              "evaluate_status": "0",              "price_show_config": "1",              "view_url": "http://sh.fang.lianjia.com/loupan/p_jaxcspbjbxj/",              "underground_car_num": "-1",              "build_type": "107500000007",              "strategy_info": {                  "fb_item_location": "2",                  "fb_query_id": "010A1A64033508FEC06E01AA304A9913_08a921c1e00b42e1a7f0f22cb2aea32a10.26.64.70",                  "fb_item_type": "xinfang_project_name",                  "fb_strategy_id": "10000250",                  "fb_response_ts": "1575195904",                  "fb_context_id": "{"req_source_type":"zhiying_pc"}",                  "fb_expo_id": "r15751959041236074463937839452",                  "fb_item_detail": "jaxcspbjbxj",                  "fb_ab_test_flag": "reco_rule-500012-default-default",                  "fb_service_id": "500012"              },              "longitude": "121.390392",              "cover_size_pic": "https://image1.ljcdn.com/hdic-resblock/prod-03121e45-2a19-4c63-a48d-971608ddb202phpPTGy2g!m_fill,w_280,h_210,l_rorate_logo",              "cubage_rate": "0.70",              "min_frame_inside_area": "0",              "is_exclusive": "0",              "frame_rooms": [              ],              "site_area": "100,000",              "video_intro": [              ],              "city_id": "310000",              "is_cooperation": "0",              "frame_rooms_desc": null,              "building_count": "4",              "district_name": "闵行",              "city_name": "上海市",              "house_type_color": "B199FF",              "max_frame_area": "0",              "allowance_comm": "",              "administrative_address": "龙茗路2229号",              "virescence_rate": "3.00",              "part_num": "50",              "discount_info": "[]",              "total_price": "0",              "show_price_desc": "均价",              "average_price": "60000",              "special": {                  "developer_special_comm": "",                  "developer_special": [                  ],                  "lianjia_special": [                  ],                  "lianjia_special_comm": ""              },              "bizcircle_name": "静安新城",              "house_amount": "24",              "district_id": "310112",              "house_type_value": "107500000007"          },          {              "outlet_center_tel": "",              "cover_pic": "https://image1.ljcdn.com/newhouse-user-image/109cd41e737979eefce828368e1ddf58.png",              "project_name": "xcskysmybjoyh",              "project_desc": "佘山地铁站附近优质房源",              "bizcircle_id": "613000336",              "show_price_confirm_time": "2天",              "discount_realpay": "0",              "special_tag": "",              "resblock_alias": "塘和家园栀子锦苑,樾山明月",              "price": "55000",              "checkin_start_date": null,              "id": "5020020846797452",              "min_frame_area": "119",              "decoration": "毛坯",              "carRatio": "1:",              "address_remark": "洞塔路400弄",              "allowance": "0",              "tags": [                  "近主干道",                  "人车分流"              ],              "permit_all_ready": "1",              "has_virtual_view": "0",              "property_address": "洞塔路400弄, 洞坤路168弄",              "build_id": "5020020846797452",              "process_status": "3",              "full_spell": "xinchengshangkunyueshanmingyue",              "evaluate": [              ],              "status": "2",              "resblock_frame_area": "建面 119-176㎡",              "total_area": "630,000",              "scheme": "lianjia://newhouse/detail?project_name=xcskysmybjoyh",              "address_desc": "洞塔路400弄",              "latitude": "31.105377",              "resblock_name": "新城上坤樾山明月",              "build_name": "新城上坤樾山明月",              "m_detail_url": "https://m.lianjia.com/sh/loupan/p_xcskysmybjoyh/",              "display_video_intro": "0",              "decorate_type": "2",              "house_type": "别墅",              "avg_price_max": "0",              "total_price_max": "0",              "store_tel": "02158809888",              "prod": "1",              "address": "洞塔路400弄",              "store_addr": "嘉松南路3888弄",              "lowest_total_price": null,              "discount_value": "0",              "sale_status": "在售",              "show_price": "55000",              "pc_detail_url": "https://sh.fang.lianjia.com/loupan/p_xcskysmybjoyh/",              "price_confirm_time": "2019-11-29 11:29:03",              "discount_type": "0",              "sale_status_color": "53CC9A",              "max_frame_inside_area": "0",              "resblock_desc": "",              "total_price_min": "775",              "virescence_area": "1,142,860.00",              "overground_car_num": "596",              "project_tags": [                  {                      "color": "",                      "id": "43",                      "desc": "近主干道"                  },                  {                      "color": "",                      "id": "52",                      "desc": "人车分流"                  }              ],              "special_tags": [              ],              "rooms": "",              "open_time": "2019-03-25",              "pid": "625255",              "show_price_unit": "元/平",              "evaluate_status": "0",              "price_show_config": "1",              "view_url": "http://sh.fang.lianjia.com/loupan/p_xcskysmybjoyh/",              "underground_car_num": "0",              "build_type": "107500000004",              "strategy_info": {                  "fb_item_location": "4",                  "fb_query_id": "010A1A64033508FEC06E01AA304A9913_08a921c1e00b42e1a7f0f22cb2aea32a10.26.64.70",                  "fb_item_type": "xinfang_project_name",                  "fb_strategy_id": "10000250",                  "fb_response_ts": "1575195904",                  "fb_context_id": "{"req_source_type":"zhiying_pc"}",                  "fb_expo_id": "r15751959041236074463937839454",                  "fb_item_detail": "xcskysmybjoyh",                  "fb_ab_test_flag": "reco_rule-500012-default-default",                  "fb_service_id": "500012"              },              "longitude": "121.238554",              "cover_size_pic": "https://image1.ljcdn.com/newhouse-user-image/109cd41e737979eefce828368e1ddf58.png!m_fill,w_280,h_210,l_rorate_logo",              "cubage_rate": "0.85",              "min_frame_inside_area": "0",              "is_exclusive": "0",              "frame_rooms": [              ],              "site_area": "400,000",              "video_intro": [              ],              "city_id": "310000",              "is_cooperation": "0",              "frame_rooms_desc": "2/3居",              "building_count": "5",              "district_name": "松江",              "city_name": "上海市",              "house_type_color": "8FD24E",              "max_frame_area": "176",              "allowance_comm": "",              "administrative_address": "洞塔路400弄, 洞坤路168弄",              "virescence_rate": "35.00",              "part_num": "50",              "discount_info": "[]",              "total_price": "7750000",              "show_price_desc": "均价",              "average_price": "55000",              "special": {                  "developer_special_comm": "",                  "developer_special": [                  ],                  "lianjia_special": [                  ],                  "lianjia_special_comm": ""              },              "bizcircle_name": "泗泾",              "house_amount": "67",              "district_id": "310117",              "house_type_value": "107500000004"          }      ],      "error": "",      "request_id": "1912930100"  }

平时我们用jsonpath提取某个值,用的都是$.key1.key2.key3这样用一个点加节点名称,一步一步往下找,直到找到为止,对吗?

有没有觉得,这样的写法很死,很古板,万一有一天,key2的名称变了,这个路径是不是就不能用了,就错误了。今天我们分享给大家一个好的方法用$..key3

一、提取data里面多个project_name值,可以看出方法二更灵活方便,所以推荐使用方法二

方法一:$.data[0:].project_name提取到所有值

Result[0]=zhxhgcbivyk

Result[1]=zxgcbjbjx

Result[2]=jaxcspbjbxj

Result[3]=xyyzxbkjgf

Result[4]=xcskysmybjoyh

方法二:$..project_name提取到所有值

Result[0]=zhxhgcbivyk

Result[1]=zxgcbjbjx

Result[2]=jaxcspbjbxj

Result[3]=xyyzxbkjgf

Result[4]=xcskysmybjoyh

二、提取data里面最后1个project_name值

$.data[-1:].project_name

Result[0]=xcskysmybjoyh

三、提取data里所有值

$..*

四、提取多个值,单值使用和多值迭代

单值使用:

1、提取多个project_name值,单值使用

2、Debug Sampler显示提取出来的多个值

project=zhxhgcbivyk

project_name_1=zhxhgcbivyk

project_name_2=zxgcbjbjx

project_name_3=jaxcspbjbxj

project_name_4=xyyzxbkjgf

project_name_5=xcskysmybjoyh

project_name_matchNr=5

3、接口使用提取出来的某个值,不能直接用提取器里面变量${project_name},而应该是如果用第1个值${project_name_1}

多值迭代:

需搭配ForEach控制器循环迭代所有值

1、提取多个project_name值

2、Debug Sampler显示提取到的多个值

3、配置ForEach控制器,迭代多次

4、配置传入值采样器,采样器放置ForEach控制器下

5、project_name值被迭代使用了多次