RequestsUtil写入接口关联值
1、流程
1、编写yaml测试数据,使用extract关键字表示该用例需要将响应接口的某字段提取出来,写入到extract.yaml文件中。如下
extract:cover_url: $.data # jsonpath方式从响应结果中提取数据message: "message":"(.*?)" # 正则表达式
2、yaml测试数据例子
extract:
cover_url: $.data
-feature: 相册管理story: 上传接口title: 上传图片request:method: posturl: /api/admin/photos/albums/coverfiles: 'C:\\Users\\mingyuewu\\Pictures\\130.jpg'headers:Accept-Encoding: gzip, deflateUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36extract:cover_url: $.datavalidate: success
3、编写方法处理测试数据中extract关联值
def write_extract(self,casedata,response):''':param casedata:pytest.mark.parametrize()读取到的测试数据 作用: 如果测试数据yaml文件中有extract关键字,则从response中提取关联值,写入extract文件:return 无返回值'''casedata = dict(casedata)if "extract" in casedata.keys():#print(casedata["extract"])print('-----------------#####写入关联值####-----------------')for key,value in casedata["extract"].items():extract={}#正则表达式提取if '(.+?)' in value or '(.*?)' in value:extract[key] = re.search(value,response.text)ConfigYamlUtil.write_extract_yaml(extract)print(extract)# json提取else:extract[key] = jsonpath.jsonpath(response.json(),value)[0]ConfigYamlUtil().write_extract_yaml(extract)print(extract)else:pass