美文网首页
(十一)fixture 传参

(十一)fixture 传参

作者: Sandra_liu | 来源:发表于2021-07-31 17:37 被阅读0次

1、普通传参
公共测试用例:conftest.py

@pytest.fixture()
def user():
    print("step 1 : 输入用户名")
    print(type(user))
    a = "sandra"
    return a

测试用例:test_*.py

def test_user(user):
    print("step 2")
    print(type(user))
    assert  user == "sandra"

测试结果:


image.png

2、request传参(一)
公共测试用例:conftest.py

@pytest.fixture(scope="class")
def username():
    print("step 1")
    print(type(username))
    a = "sandra"
    return a

测试用例:test_*.py

data = ["linda1","linda2","linda3"]
@pytest.mark.parametrize("usernames",data,indirect=True)
def test_usernames(usernames):
    print("step 2")
    print(type(usernames))
    assert  usernames == "linda1"

测试结果:


image.png

3、request传参(二)
公共测试用例:conftest.py

@pytest.fixture(scope="class",params=["linda1","linda2","linda3"])
def usernames(request):
    print("step 1")
    print(type(usernames))
    return request.param

测试用例:test_*.py

def test_usernames(usernames):
    print("step 2")
    print(type(usernames))
    assert  usernames == "linda1"
    # pytest.assume(usernames == "linda2")

4、request传参(三)
公共测试用例:conftest.py

@pytest.fixture(scope="class",params=[{"user_name":"zhangsan","password":"111111"},{"user_name":"lisi","password":"a123456"},{"user_name":"sandra","password":"666666"}])
def users(request):
    r = request.param
    print("step 1")
    print(type(users))
    return  r["user_name"],r["password"]

测试用例:test_*.py

def test_users(users):
    print("step 2")
    print(type(users))
    print(users)
    assert users[0] == "zhangsan"
    assert users[1] == "111111"

测试结果:


image.png

5、request传参(四)
公共测试用例:conftest.py

@pytest.fixture(scope="class",params=[{"user_name":"zhangsan","password":"111111"},{"user_name":"lisi","password":"a123456"},{"user_name":"sandra","password":"666666"}])
def users_2(request):
    r = request.param
    print("step 1")
    print(type(users_2))
    print(r)
    return r

测试用例:test_*.py

def test_users_2(users_2):
    print("step 2")
    print(type(users_2))
    print(users_2)
    assert users_2 == {"user_name":"zhangsan","password":"111111"}

测试结果:


image.png

6、request传参(五)
公共测试用例:conftest.py

@pytest.fixture(scope="class")
def users_multply_username(request):
    p = request.param
    print("step 1")
    print(type(users_multply_username))
    print(p)
    return p

@pytest.fixture(scope="class")
def users_multply_password(request):
    q = request.param
    print("step 1")
    print(type(users_multply_password))
    print(q)
    return q

测试用例:test_*.py

usernames = ["zhangsan","lisi","wangwu"]
passwords = ["111111","a123456","666666"]
@pytest.mark.parametrize("users_multply_username",usernames,indirect=True)
@pytest.mark.parametrize("users_multply_password",passwords,indirect=True)
def test_users_multply(users_multply_username,users_multply_password):
    print("step 2")
    print(type(users_multply_username))
    print(type(users_multply_password))
    assert users_multply_username == "wangwu"
    assert users_multply_password == "111111"

测试结果:


image.png

相关文章

网友评论

      本文标题:(十一)fixture 传参

      本文链接:https://www.haomeiwen.com/subject/knbtvltx.html