Fixture 在自动化中的应用 - 数据共享
- 场景:
你与其他测试⼯程师合作⼀起开发时,公共的模块要在不同⽂件中,要在⼤家都访问到的地⽅。
- 解决:
使⽤ conftest.py 这个⽂件进⾏数据共享,并且他可以放在不同位置起着不同的范围共享作⽤。
- 前提:
- conftest ⽂件名是不能换的
- 放在项⽬下是全局的数据共享的地⽅
- 执⾏:
- 系统执⾏到参数 login 时先从本模块中查找是否有这个名字的变量什么的,
- 之后在 conftest.py 中找是否有。
- 步骤:
将登陆模块带@pytest.fixture 写在 conftest.py
举例:
conftest.py
import pytest
@pytest.fixture(scope="session") #session级别在执行pytest所有用例之前执行一次,即整个项目只执行一次
def login():
print("\nlogin.....\n")
token = 123
yield token #返回token值
print(f"\nlogout.....\n")
test_demo.py
conftest定义好后,可以在用例中使用,使用方法和fixture相同
import pytest
def test_search():
print("search")
def test_order(login): #在用例加上fixture的方法login,即可在测试前调用该方法。并不需要import操作
print("ordering")
print(f"token:{login}") #这时候使用fixture的方法来代表yield返回的值token
def test_cart(login):
print("shopping cart..")
class TestDemo:
def test_case_1(self,login):
print("test case 1")
def test_case_2(self,login):
print("test case 2")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。