#test_param.py
import pytest
class TestParam:
'''
pytest參數化
1. 在測試用例上加註解@pytest.mark.parametrize("loginame,password",[(值1,值2),(值1,值2)])
2. fixture傳參。
1)在測試用例上加註解@pytest.mark.parametrize("login_data",data2,indirect=True)
login_data 是fixture函數
@pytest.fixture()
def login_data(request):
return request.param
測試用例取數據時用字典的方式取
2)測試用例不用寫註解,定義fixture函數時,fixture註解中傳入參數 @pytest.fixture(params=data3)
'''
data = [("aaa","e10adc3949ba59abbe56e057f20f883e"),("aaaa","bbb")]
@pytest.mark.parametrize("loginame,password",data)
@pytest.mark.skip
def test_login(self,loginame,password):
print("用戶名密碼",loginame,1,password)
print("kkk")
@pytest.fixture()
def login_data(request):
return request.param
data2 = [{"loginame":"aaa","password":"e10adc3949ba59abbe56e057f20f883e"}
,{"loginame":"","password":"1"}]
@pytest.mark.parametrize("login_data",data2,indirect=True)
@pytest.mark.skip
def test_login2(self,login_data):
print(login_data,type(login_data))
print("用戶名密碼", login_data.get("loginame"), 1, login_data.get("password"))
data3 = [{"loginame": "aaa", "password": "e10adc3949ba59abbe56e057f20f883e"}
, {"loginame": "", "password": "1"}]
@pytest.fixture(params=data3)
def login_data3(self,request):
print(request)
return request.param
def test_login3(self,login_data3):
print(login_data3)
pass