利用UnitTest實現參數化需要用到ddt:
DDT又叫數據驅動(Data-Driven Design),在Python ddt作為一個裝飾器存在,用來實現數據的參數化,這樣就可以將代碼和測試數據分開,將代碼進行封裝,提高復用性。測試數據在本地文件或數據庫進行維護。
通常情況下,data中的數據按照一個參數傳遞給測試用例,如果data中含有多個數據,以元組,列表,字典等數據,需要自行在腳本中對數據進行分解或者使用unpack分解數據
使用方法:使用時在測試類上聲明@ddt裝飾符,在測試方法上使用@data裝飾符;@data裝飾符可以將參數當做測試數據傳入到測試方法中
第一步、封裝方法讀取Excel表數據。
第二步、准備測試數據
以Excel表為准將接口寫進表格
第三步、封裝用例
引入ddt下面的所有方法,@ddt需要放在測試類前面進行裝飾,然后下面開始創建測試用例,將獲取的Excel數據放進@ddt下面的@data()方法里面,參數可以是元組,列表,字典等數據。@data()裝飾符會把里面的數據分別拆分成單個元組,列表或者字典的形式進行發送參數,但是在它只適用於單個接口。
注意:在unittest框架中一個test文件會當作一條用例因此不適用於多個接口同時寫在一個test測試文件下面執行。例如:將多個接口放在一個test方法下面進行@data()參數化執行,實際都是執行成功,但是在unittest輸出的信息和測試報告則只會顯示執行了一條用例,因為unittest以test進行區分。因此多個接口需要進行參數化時需要分別進行定義test方法,然后分別用@data()的形式傳遞參數,這樣就能實現多個接口的參數化互不干擾。
測試接口一:
測試接口二: