Python pytest引數化(資料驅動ddt

2022-06-09 11:33:09 字數 1046 閱讀 3354

引數化,就是將測試資料提取出來,與邏輯分離,通過引數傳遞不同的測試資料來驅動用例執行,又稱為資料驅動測試(data-drive test,簡寫ddt)。

比如,有一組測試註冊的測試用例,它們的測試流程相同,只是輸入的測試資料不同,這種情況下,自動化測試就可以將資料與**分離,只編寫1個測試用例方法,以後增加測試用例或者修改測試用例,只需要修改資料,不需要修改測試邏輯。

pytest通過@pytest.mark.parametrize()即可實現引數化(測試函式中必須有引數

1、單個引數

@pytest.mark.parametrize()中接收2個引數,第1個引數用字串的形式標記要傳遞給測試函式的引數名稱,注意,名稱與測試函式中的引數名稱必須一致,第2個引數表示要傳遞的測試資料(通常以元祖或列表的形式)。

2、多個引數

多個引數,@pytest.mark.parametrize()中仍傳入2個引數,第1個引數用乙個字串標識要傳遞的引數名稱,字串用英文,分割,注意,名稱和數量必須和測試函式中的引數一致,第2個引數表示要傳遞的測試資料(通常以二維列表或原則表示)。

測試類引數化,在類上面加@pytest.mark.parametrize()裝飾器,實際上,也是對測試類中的方法進行引數化。可以傳入單個引數或多個引數,類中的所有測試方法中的引數名稱和個數(測試方法中必須使用引數),必須與@pytest.mark.parametrize()中標識的引數一致。

Python pytest測試框架基本用法(一)

一 框架介紹及安裝 pytest是python的一種單元測試框架,與python自帶的unittest測試框架類似,但是比unittest框架使用起來更簡潔,效率更高。安裝 pip install pytest 我這裡已經安裝成功了 二 框架使用流程 建立如下的原始碼檔案test one.py de...

python pytest測試框架介紹三

之前介紹了pytest以xunit形式來寫用例,下面來介紹pytest特有的方式來寫用例 如下 這裡使用的了pytest的特有的模式來寫用例,使用的方式是scope方式,scope支援多種,後面會介紹 這裡還使用了pytest的addfinalizer內建功能,具體可參見官網,用處是 在最後乙個測試...

Python Pytest框架(三)測試韌體 下

一 執行命令pytest fixture 可以列出當前所有可用的fixture,包括內建的 外掛程式中的 以及當前專案定義的。eg conftest.py和test 1.py在同一目錄下,要使用測試韌體login。conftest.py import pytest pytest.fixture de...