[ddt01篇]十年測試老鳥幫您解析:ddt數據驅動實現自動化測試入門基礎應用
- 2020 年 4 月 11 日
- 筆記
一、什麼是DDT數據驅動框架
全稱:data driver test數據驅動測試框架,可以完美的應用於unittest框架實現數據驅動。ddt使用簡介:
1.測試數據為多個字典的list類型
2.測試類前加修飾@ddt.ddt
3.用例前加修飾@ddt.data() 或 @ddt.file_data()
4.運行後測試會自動載入成三個單獨的用例
注意:@data裝飾符可以把參數當成測試數據,參數可以是單個值、列表、元祖、字典,對於列表和元祖需要使用@unpack裝飾符把元祖和列表解析成多個參數。
二、ddt數據驅動框架的安裝和使用方式
1.安裝方式一:在dos窗口中使用命令:pip install ddt 安裝 (建議用這種)
驗證是否安裝成功:在dos命令中輸入python進入python環境,然後輸入import ddt,如果沒有報錯則說明安裝成功!如下圖所示:
2.安裝方式二:直接訪問:https://pypi.org/project/ddt/#files 下載ddt源碼(ddt-1.2.2.tar.gz )。下載後解壓,然後在dos命令中切換到setup.py所在目錄,執行python setup.py install 進行安裝。
3.把ddt導入項目中。
File->Settings->project:項目名->加號->輸入ddt->install package
4.ddt使用方式和常用模組
使用方式:
ddt是通過裝飾器的形式來調用的
ddt常用模組:
@ddt(申明當前類使用ddt框架),
@data(用於傳參),
@unpack(將參數解包,一般針對元組和列表),
@data_file(ddt讀取yaml/json文件)
三、@ddt,@data,@unpack的基本使用方法。
1.分別傳入單個數字、字元串、元組、列表、集合、字典做一個案例。如:
第一組案例:
@ddt(100) def testcase1(self,name): print(name) @ddt('諸葛') def testcase1(self,name): print(name) @ddt(('諸葛','司馬懿','韓信')) def testcase1(self,name): print(name) @ddt(['諸葛','司馬懿','韓信']) def testcase1(self,name): print(name) @ddt({'諸葛','魏國':'司馬懿','楚國':'韓信'}) def testcase1(self,name): print(name) @ddt({'蜀國':'諸葛','司馬懿','韓信'}) def testcase1(self,name): print(name)
第二組案例:使用@unpack對單個元組和列表解包。
#unpack解析單個元組 @data(('諸葛','司馬')) @unpack def test1_data(self,args1,args2): print(args1,args2) #unpack解析單個列表 @data(['諸葛','司馬']) @unpack def test2_data(self,args1,args2): print(args1,args2)
2.分別傳入多個數字、字元串、元組、列表、集合、字典做一個案例。如:
第一組案例:
程式碼可自己嘗試:注意:查看運行結果,用例運行了多次。
第二組案例:使用@unpack解包:多個元組和列表,如:
#data傳入多個元組,unpack對每個元組解析 @data(('諸葛','司馬'),('馬超','關羽')) @unpack def test1_data(self,args1,args2): print(args1,args2) #data傳入多個列表,unpack對每個列表解析 @data(['諸葛','司馬'],['馬超','關羽']) @unpack def test1_data(self,args1,args2): print(args1,args2)
注意:
(1) 如果傳入:[(‘諸葛’,’司馬’),(‘馬超’,’關羽’)],則@unpack解析後得到(‘諸葛’,’司馬’)和(‘馬超’,’關羽’),需要兩個參數接收,用例只執行一次,所以得出@unpack解析最外層的元祖或列表。
(2) 如果傳入的是字典列表(list of dict) 分解的參數名必須跟鍵名一致。
四、請繼續關注[ddt02篇]
[ddt02篇]十年測試老鳥幫您解析:ddt結合txt,excel,csv,mysql實現自動化測試數據驅動
如果你此文你也有同感,如果你覺得此文對你有幫助,如果你對軟體測試、介面測試、自動化測試、面試經驗交流感興趣歡迎加入軟體測試技術群:695458161,群里發放的免費資料都是筆者十多年測試生涯的精華。還有同行大神一起交流技術哦。
作者:諸葛
原創不易,歡迎轉載,但未經作者同意請保留此段聲明,並在文章頁面明顯位置給出原文鏈接。