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值被迭代使用了多次
