默认目标是从响应结果中提取参数(access_token)
为什么要提取:为了框架的通用性
要提取谁
提取token或者code
怎么提取
思路:
第一步:
1、在excel中增加字段extract_data,用来存放需要提取的key和提取表达式
2、获取到extract_data,转成python对象
3、遍历extract_data的key,value,拿value(提取表达式)去响应结果中去获取数据
4、拿到数据之后,key作为全局变量的key,value(提取表达式)拿到的数据做为value,设置为全局属性
import json
from jsonpath import jsonpath
from tools.handle_attribute import HandleAttribute
class HandleExtract:
def handle_extract(self, extract_data: str, response: dict):
if extract_data:
# 将excel中的extract_data转换成python对象
extract_data = extract_data if isinstance(extract_data, dict) else json.loads(extract_data)
# 遍历extract_data的key 和value
for key, value in extract_data.items():
#使用jsonpath从response取value的值
val = jsonpath(response, value)[0]
#拿到value 使用setattr内置函数变成全局属性
setattr(HandleAttribute, key, val)
else:
print("excel中extract_data为空,不需要提取全局变量")
创建handle_attribute.py,放在common里
2.创建的handle_attribute.py文件,再定义一个类,可以为空,作为保存变量的类
class HandleAttribute:
pass