Time will tell.
一个用例可以传多个fixture
参数,如果fixture
之间用依赖关系,也可以互相调用。
1、使用多个fixture
如果用例需要用到多个fixture
的返回数据,fixture
也可以return
一个元组、list 或字典,然后从里面取出对应数据。
# test_fixture4.py
import pytest
@pytest.fixture()
def user():
print("获取用户名")
a = "yoyo"
b = "123456"
return (a, b)
def test_1(user):
u = user[0]
p = user[1]
print("测试账号:%s, 密码:%s" % (u, p))
assert u == "yoyo"
if __name__ == "__main__":
pytest.main(["-s", "test_fixture4.py"])
当然也可以分开定义成多个fixture
,然后test_
用例传多个fixture
参数。
# test_fixture5.py
import pytest
@pytest.fixture()
def user():
print("获取用户名")
a = "yoyo"
return a
@pytest.fixture()
def psw():
print("获取密码")
b = "123456"
return b
def test_1(user, psw):
'''传多个fixture'''
print("测试账号:%s, 密码:%s" % (user, psw))
assert user == "yoyo"
if __name__ == "__main__":
pytest.main(["-s", "test_fixture5.py"])
2、fixture的互相调用
fixture
与fixture
直接也能互相调用的。
import pytest
@pytest.fixture()
def first():
print("获取用户名")
a = "yoyo"
return a
@pytest.fixture()
def sencond(first):
'''psw调用user fixture'''
a = first
b = "123456"
return (a, b)
def test_1(sencond):
'''用例传fixture'''
print("测试账号:%s, 密码:%s" % (sencond[0], sencond[1]))
assert sencond[0] == "yoyo"
if __name__ == "__main__":
pytest.main(["-s", "test_fixture6.py"])
好啦,以上内容就到这里,如果你对Python自动化软件测试、实例练习题、面试题感兴趣可以加入我们一起学习175317069。有各项学习资源,更有行业深潜多年的技术人分析讲解。
最后希望看到这里的你终会成为一名极具竞争力的高级测试工程师。
欢迎【点赞】、【评论】、【关注】~
Time will tell.(时间会证明一切)
网友评论