一、fixture结合contest.py文件使用
1、conftest.py用于存放fixture的配置文件。名称是固定的。
2、在conftest.py文件里面所有方法在调用时都不需要导包
3、conftest.py文件可以有多个,且多个conftest.py文件里的多个fixture可以被一个用例调用。(即在不同的用例package中也可以建conftest.py文件实现调用,而根目录下就是所有用例都可以调用的)
4、conftest.py与运行的用例要在同一个pakage下,并且有__init__.py文件
二、conftest.py使用场景
接口需要公用的配置信息、测试用例、token等等
三、conftest.py使用范围
作用于同一目录下的所有测试用例
四、conftest.py 的scope范围
@pytest.fixture(scope=“session”,autouse=True)
在该目录下的所有的测试用例只会执行一次
@pytest.fixture(scope=“module”,autouse=True)
在该目录下的每个py文件会执行一次
@pytest.fixture(scope=“class”,autouse=True)
在该目录下的每个类会执行一次
@pytest.fixture(scope=“function”,autouse=True)
在该目录下的每个测试函数会执行一次
六、在根目录下新建conftest.py文件
然后我们把fixture相关代码剪切到conftest.py文件中
把红框中的代码剪切到contest.py中。
然后执行,发现还是可以跑通。在conftest.py文件中可以写多个fixture装饰器方法。在其他文件调用时不需要导包即可实现调用。
七、优先级问题
fixture的session优先级最高
fixture的class级别高于setup_class,也就是先执行fixture的scope="class"代码
fixture的function级别高于setup,即先执行fixture的scope="function"代码
八、pytest的执行过程
1、查询根目录下的conftest.py文件 2、查询根目录下的pytest.ini文件,找到测试用例的配置 3、查询目录下的conftest.py文件 4、查询用例中是否有setup、teardown、setup_class、teardown_class 5、根据pytest.ini配置的测试用例执行规则去执行测试用例
原文链接:
https://cloud.tencent.com/developer/article/1945956
https://www.csdn.net/tags/MtTaMg0sNzEzMzYyLWJsb2cO0O0O.html