一、conftest.py
是pytest的“本地插件库”,其中包含hook函数和fixture,可以理解成一个专门存放fixture的配置文件。hook函数可以将自定义逻辑引入pytest,用于改善pytest的执行流程。
fixture 则是一些用于测试前后执行配置及销毁逻辑的外壳函数,可以传递测试中用到的资源。
1、使用规则
- conftest.py文件名字是固定的,不可以做任何修改;
- 文件和用例文件在同一个目录,那么conftest.py 作用于整个目录;
- conftest.py文件所在目录必须存在__init__.py文件;
- conftest.py文件不能被其他文件导入;
- 所有同目录测试文件运行前都会执行conftest.py文件,相当于一个前置文件;
2、需结合fixture来使用
conftest 文件实际应用需要结合 fixture 来使用,fixture 中参数scope 也适用conftest 中fixture 的特性。
- conftest中fixture的scope参数为session,那么所有的测试文件执行前执行一次;
- scope参数为module,每一个测试文件执行前都会执行一次conftest文件中的fixture;
- conftest中fixture的scope参数为class,测试文件中的测试类执行前都会执行一次conftest中的fixture;
- conftest中fixture的scope参数为function,测试用例执行前都会执行一次conftest中的fixture;
二、pytest.ini 全局配置文件
1、文件作用
通过全局的配置文件运行测试用例,这种方式才是在实际企业自动化中的应用方式。
pytest.ini 文件是Pytest的主配置文件,可以改变pytest的运行方式,pytest.ini 文件的名字是固定的,不能改动。
此文件可以改变pytest测试框架默认的行为(查找执行测试用例的行为),pytest会读取pytest.ini 文件中配置信息,按指定的方式去运行测试用例。
2、注意事项
- 存放位置:一般放在项目的根目录(即当前项目的顶级文件夹下);
- 编码格式:必须是ANSI编码格式;
- 配置pytest.ini 文件后,不管是主函数模式运行用例,还是命令行模式运行用例,都会去读取pytest.ini 配置文件中的内容。
- cmd命令行中执行pytest -h 命令,可以查看pytest.ini 的设置选项。
3、编写
[pytest] # 命令行的参数,用空格分隔 addopts = -s --alluredir report # 测试用例的路径 testpaths = ./scripts # 模块名的规则 python_files = test*.py # 类名的规则 python_classes = Test* # 方法名的规则 python_functions = test*