天天看點

Python unittest+DDT實作的資料驅動測試

資料驅動測試:

避免編寫重複代碼

資料與測試腳本分離

通過使用資料驅動測試,來驗證多組資料測試場景

通常來說,多用于單元測試和接口測試

Data-Driven Tests(DDT)即資料驅動測試,可以實作不同資料運作同一個測試用例。ddt本質其實就是裝飾器,一組資料一個場景。

ddt子產品包含了一個類的裝飾器ddt和三個個方法的裝飾器:

data:包含多個你想要傳給測試用例的參數,可以為清單、元組、字典等;

file_data:會從json或yaml中加載資料;

unpack:分割元素,如以下示例:

@data([a,d],[c,d])

如果沒有@unpack,那麼[a,b]當成一個參數傳入用例運作

如果有@unpack,那麼[a,b]被分解開,按照用例中的兩個參數傳遞

傳遞整體清單,字典、元組

嵌套清單、元組、字典的整體傳遞方式

unpack 依次傳遞元組

輸出結果:

依次傳遞字典

依次傳遞清單

ddt支援從檔案中加載資料,@file_data()裝飾器會從json或yaml中加載資料。隻有以“.yml” 和 “.yaml” 結尾的檔案被加載為Yaml檔案。所有其他格式檔案都作為json檔案加載,比如txt。

傳遞json資料

test.json檔案

Python unittest+DDT實作的資料驅動測試
Python unittest+DDT實作的資料驅動測試

View Code

傳遞多層json檔案

Python unittest+DDT實作的資料驅動測試
Python unittest+DDT實作的資料驅動測試

View

傳遞yml資料

yml 需要安裝yml(pip install PyYAML)

test.yml

Python unittest+DDT實作的資料驅動測試