5 断言
1 断言
# 断言 def do_assert(resp, name, check_str, resp_str): if resp.status_code == 200: if check_str.lstrip('{').rstrip('}') in resp.text: print(name + ' 1 pass') result_dict['result'] = 'pass' # 记录执行结果 # 提取需要的响应字段 if resp_str != "" and resp_str != None: tmp_list = [] # 返回指定字段 result_list = get_target_value(resp_str, resp.json(), tmp_list) relate_dict[resp_str] = result_list[0] # 关联字段放入字典 print(relate_dict) else: print(name + ' 1 fail') result_dict['result'] = 'fail' print(resp.text) else: print(name + ' 200 fail') result_dict['result'] = 'fail' print(resp.text) result_dict['response'] = resp.text
2 提取 json 字符串
# 递归调用字典 def get_target_value(key, dic, tmp_list): """ :param key: 目标key值 :param dic: JSON数据 :param tmp_list: 用于存储获取的数据 :return: list """ if not isinstance(dic, dict) or not isinstance(tmp_list, list): # 对传入数据进行格式校验 return 'argv[1] not an dict or argv[-1] not an list ' if key in dic.keys(): tmp_list.append(dic[key]) # 传入数据存在则存入tmp_list else: for value in dic.values(): # 传入数据不符合则对其value值进行遍历 if isinstance(value, dict): get_target_value(key, value, tmp_list) # 传入数据的value值是字典,则直接调用自身 elif isinstance(value, (list, tuple)): _get_value(key, value, tmp_list) # 传入数据的value值是列表或者元组,则调用_get_value return tmp_list def _get_value(key, val, tmp_list): for val_ in val: if isinstance(val_, dict): get_target_value(key, val_, tmp_list) # 传入数据的value值是字典,则调用get_target_value elif isinstance(val_, (list, tuple)): _get_value(key, val_, tmp_list) # 传入数据的value值是列表或者元组,则调用自身
浙公网安备 33010602011771号