pytest入门conftest.py的应用

一、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文件

pytest入门conftest.py的应用_第1张图片

然后我们把fixture相关代码剪切到conftest.py文件中

pytest入门conftest.py的应用_第2张图片

把红框中的代码剪切到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

你可能感兴趣的:(自动化测试,python)