接口自动化测试:
yaml是测试用例(yaml文件中可以有变量或函数)(ui自动化中excel作为测试用例,也可以有变量或函数) $变量,${func(agrs)}

common/api.py 核心TestAPI,控制整个业务流程
两个类方法:
1、find_case(cls,path:Path) 寻找yaml测试用例,并将yaml文件转化成case对象(用到dataclass库,可以校验yaml文件不能有多余的字段) (一个对象就是一个信息包)
遍历生成器:list(path.global(yaml_dir))
利用反射:setattr(cls,yaml_name,fun_body),为类动态的增加测试用例(yaml_name一定test开头)
2、 def func(cls,case): #闭包函数(注意,闭包函数中内函数不能修改外函数的局部变量即参数)
@pytest.mark.parametrize("case", case_list, ids=case_title_list)
def func_body(): #用例通用函数
1、发送请求(发送请求前要热加载)
resp = session.request(**case.request) -------》封装了requests方法,增加了日志,和支持baseurl 用session发送请求,可以自动关联cookie
2、从响应中提取依赖,保存到依赖yaml文件 extract.yaml
exchange.extract(resp, var_name,*extract_list)------------->提取依赖保存到yaml的方法写到了Exchage的类里
3、断言(断言前要热加载)
handered_case.assert_all()--------->断言的方法写到了Case类里
return func_body
参数化如何做的?
yaml:

利用@pytest.mark.parametrize("case", case_list, ids=case_title_list)
通过yaml的parametrize字段,得到case_list(case对象的列表)
一个有变量的yaml文件,注入不同的数据,就得到不同的yaml文件,不同的yaml文件实例化不同的case对象
data = YamlFile(path)#字典 自动读取yaml文件
case = CaseInfo(**data)#自动验证yaml格式 yaml文件转case对象
依赖如何做的?(对于参数化的业务流程,正例写在最后面,方便下个接口获取上一个接口提供的依赖)
yaml设计:


resp的属性,表达式,第几个值
resp.cookies,
断言如何做的?
鉴权如何做的?