pytest引數化
阿新 • • 發佈:2018-11-05
pytest有三種傳參方式,我主要用到前兩種
pytest的引數化方式
-
pytest.fixture()方式進行引數化,fixture裝飾的函式可以作為引數傳入其他函式
-
pytest.mark.parametrize()方式進行引數化
-
conftest.py 檔案中存放參數化函式,可作用於模組內的所有測試用例
本章主要講第二種方式:@pytest.mark.parametrize('引數名',list) 進行引數化
1. 傳一個引數 @pytest.mark.parametrize('引數名',list) 進行引數化
2. 傳兩個引數@pytest.mark.parametrize('引數名1,引數名2',[(引數1_data[0], 引數2_data[0]),(引數1_data[1], 引數2_data[1])]) 進行引數化, 傳三個或更多引數也是這樣傳。list的每個元素都是一個元組,元組裡的每個元素和按引數順序一一對應
從網上找了個例子,講的很清楚,在這裡借用下:
pytest.mark.parametrize()方式進行引數化
-
採用標記函式引數化,傳入單個引數,pytest.mark.parametrize("引數名",lists)
mark.png
-
採用標記函式傳入多個引數,如pytest.mark.parametrize("para1, para2", [(p1_data_0, p2_data_0), (p1_data_1, p2_data_1),...]
-
測試用例中傳入2個引數,year和期望結果,使輸入資料與預期結果對應,構造了2組會失敗的資料,在執行結果中,可以看到失敗原因:
image.png