pytest.mark.parametrize參數化

@pytest.mark.parametrize(argnames, argvalues)
argnames: 要參數化的變量,string (逗號分割),list,tuple
argvalues: 參數化的值,list, list[tuple]

 

1、使用String

@pytest.mark.parametrize( "a,b", [(10,20),(10,30)])
def test. param(self,a, b): 
    print(a+b)
@pytest.mark.parametrize("test_input,expected",[("3+5",8),("2+5",7),("7*5",30)])
def test_eval(test_input,expected):
    #eval 將字符串str當成有效的表達式來求值,並返回結果
    assert eval(test_input) == expected

    
2、使用list

@pytest.mark.parametrize(["a","b"], [(10,20),(10,30)])
 def test_ param(self,a, b): 
    print(a+b)

 
3、使用tuple
 

@pytest.mark.parametrize("a","b"), [(10,20),(10,30)])
 def test param(self,a, b):
    print(a+b)

 

4、方法參數化(方法名作爲參數)

test_user_data = ['home','jerry']
@pytest.fixture(scope="module")
def login_r(request):
    #這是接受並傳入的參數
    user = request.param
    print(f"\n 打開首頁準備登錄,登錄用戶:{user}")
    return user

# indirect=True,可以把傳過來的參數當做函數來執行
@pytest.mark.parametrize("login_r",test_user_data,indirect=True)
def test_login(login_r):
    a= login_r
    print(f"測試用例中login的返回值;{a}")
    assert a !=""

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章