pytest_fixture-----conftest共享数据及不同层次共享
场景:你与其他测试工程师合作一起开发时,公共的模块要在不同文件中,要
在大家都访问到的地方。
-
解决:使用conftest.py 这个文件进行数据共享,并且他可以放在不同位置起 着不同的范围共享作用。
-
前提:conftest文件名是不能换的,放在项目下是全局的数据共享的地方,全 局的配置和前期工作都可以写在这里,放在某个包下,就是这个包数据共享的 地方。
-
执行:系统执行到参数login时先从本文件中查找是否有这个名字的变量什么 的,之后在conftest.py中找是否有。
-
步骤:将登陆模块带@pytest.fixture写在conftest.py
conftest.py下面的代码:
import pytest
@pytest.fixture()
def login():
print("\n输入用户名密码登陆! configtest")
pytest_fixture下面的代码:
def test_cart(login):
print('用例1,登陆后执行添加购物车功能操作')
def test_search():
print('用例2,不登陆查询功能操作')
def test_pay(login):
print('用例3,登陆后执行支付功能操作')
执行结果:
ytest_fixture.py::test_cart
输入用户名密码登陆! configtest
PASSED [ 33%]用例1,登陆后执行添加购物车功能操作
pytest_fixture.py::test_search PASSED [ 66%]用例2,不登陆查询功能操作
pytest_fixture.py::test_pay
输入用户名密码登陆! configtest
PASSED [100%]用例3,登陆后执行支付功能操作