一、法2:通过文件保存中间变量实现接口关联(联系Day17的四五)-----接口关联封装
在什么情况下需要清空 extract.yaml?需要清空几次?
整个项目只需要清空一次。
二、为什么要这样封装?
原因:
1、能够看到中间变量,易于去判断前置接口返回的数据有没有问题
2、可以避免多个模块之间的接口关联报错的问题,可以避免跨模块之间传递中间变量出错的问题
三、YAML文件详解
简介:
yaml 也是一种数据格式,在接口自动化里面主要用于配置文件或编写测试用例。
数据组成:
字典 :键值对,key:(空格) value
(json 和字典的区别,json 是字符串,字典对象,json 和字典可以相互转换,json 就是字典的字符串的形式)
列表 :a,b,c
在 yaml 中可以通过一组`-`来表示列表
csrf_token:
- name: 百里
- age: 36
四、pytest数据驱动以及数据与代码的分离
数据驱动:
python
@pytest.mark.parametrize(args_name,args_value)
args_name:参数名,一般取名 caseinfo
args_value:列表或字典列表,并且列表中有几个值那么用例就会执行几次。
示例格式:
列表:a,b,c,字典:{},{},{},{}
考点一句话:parametrize 做 pytest 数据驱动,args_value 里面有多少组数据,测试函数就自动运行多少次。

五、生成Allure报告
- 下载 allure 报告并且配置 path 路径
`D:\allure-2.21.0\bin`
验证:
在 DOS 窗口和 Pycharm 窗口通过 `allure --version` 验证环境
- 生成临时 json 报告
python
addopts = -vs --alluredir=./temps --clean-alluredir
3、生成 allure 报告
if __name__ == '__main__':
pytest.main()
time.sleep(3)
os.system("allure generate ./temps -o ./reports --clean")
说明1. 先执行 pytest 运行用例,产出 temps 目录下的临时结果文件
-
`time.sleep(3)`:等待文件写入完成,防止文件未保存就开始生成报告
-
`allure generate ./temps -o ./reports --clean`:读取 temps 临时数据,生成 html 报告到 reports 文件夹,`--clean`清空旧报告
六、持续集成
安装 jenkins,启动
插件的安装和使用 各种配置:系统配置,工具配置
流水线 pipeline
实际工作中,你的 jenkins 在服务器。
七、遗留的问题
-
一个接口用例可能会有几十个,也在 yaml 文件里复制粘贴嘛?
-
接口关联
-
断言
-
allure 报告的美化
-
日志封装
-
业务流程的封装