1. 程式人生 > 其它 >Pytest---引數化

Pytest---引數化

軟體測試中,輸入相應值,檢查期望值,是常見測試方法。
在自動化測試中,一個測試用例對應一個測試點,通常一組測試資料無法完全覆蓋測試範圍,所以,需要引數化來傳遞多組資料。
pytest的測試用例引數化使用如下裝飾器即可完成

使用pytest.mark.parametrize

import pytest

@pytest.mark.parametrize('a,b,c',[
                             (1, 2, 3),
                             (3, 4, 6),
                         ])
def test_answer(a, b,c):
    
assert a +b == c

使用ids自定義測試用例標題

import pytest

@pytest.mark.parametrize('a,b,c',[
                             (1, 2, 3),
                             (3, 4, 6),
                         ],ids=['1+2','3+4'])
def test_answer(a, b, c):
    assert a +b == c

多次使用Parametrize:

同一個測試用例還可以使用多個@pytest.mark,parametrize,多個parametrize的所有元素相互組合(類似於笛卡爾積),下例,使用了2個裝飾器分別提供兩個引數的列表,3*3=9種結合, 則產生9條測試用例

import pytest

@pytest.mark.parametrize('a',[1,2,3])
@pytest.mark.parametrize('b',[1,2,3])
def test_1(a,b):
    print(f'測試資料為a:{a},b:{b}')