1. 程式人生 > 其它 >pytest引數pytest.mark.parametrize

pytest引數pytest.mark.parametrize

parametrize

支援元組,列表

支援列表巢狀列表,列表巢狀元組,列表巢狀字典

支援類和函式的引數化

1、單個變數

    @pytest.mark.parametrize('user', ("zhangsan", "lisi"))
    def test_01(self,user):
        print(user)

2、單個變數引數為列表

    datatest04=['zhangsan','lisi']
    @pytest.mark.parametrize('user', datatest04)
    def test_04(self,user):
        print(user)

 

3、單個變數引數為元組

    datatest08=("zhangsan","lisi")
    @pytest.mark.parametrize("data", datatest08)
    def test_08(self,data):
        print(data)

  

4、多個變數

    @pytest.mark.parametrize('user,password',[("zhangsan","111111"),("lisi","222222")])
    def test_02(self,user,password):
        print(user,password)

5、多個變數組成列表巢狀元組

    data =[("zhangsan","111111111"),("lisi","2222222")]
    @pytest.mark.parametrize('user,password',data)
    def test_03(self,user,password):
        print(user,password)

 

6、多個變數組成列表巢狀列表

    data =[["zhangsan","111111111"],["lisi","2222222"]]
    @pytest.mark.parametrize('user,password',data)
    def test_05(self,user,password):
        print(user,password)

7、針對類引數化--不知道應用場景

@pytest.mark.parametrize('user,password',[("zhangsan","111111"),("lisi","222222")])
class Testdemo1(object):
    def test_01(self,user,password):
        print(user,password)

    def test_02(self,user,password):
        print(user,password)

  

8、組合函式-笛卡爾集

    data1 =["zhangsan","lisi"]
    data2 = ["1111111", "2222222"]
    @ pytest.mark.parametrize('user', data1)
    @pytest.mark.parametrize('password',data2)
    def test_06(self,user,password):
        print(user,password)

  

錯誤寫法

    data1 =["zhangsan","111111111"]
    data2 = ["lisi", "2222222"]
    @ pytest.mark.parametrize('user,password', data1)
    @pytest.mark.parametrize('user,password',data2)
    def test_06(self,user,password):
        print(user,password)

 9、列表巢狀字典

    datatest07 = [{"user":"zhangsan", "password":"111111111"},{"user":"lisi","password":"222222"}]
    @pytest.mark.parametrize("data", datatest07)
    def test_07(self,data):
        print(data)
        print(data["user"],data["password"])

 

錯誤寫法

    datatest07 = [{"user":"zhangsan", "password":"111111111"},{"user":"lisi","password":"222222"}]
    @pytest.mark.parametrize("user,password", datatest07)
    def test_07(self,data):
        print(data)
        print(data["user"],data["password"])

  

 

上班求生存,下班求發展