Python中unittest的數據驅動詳解

前言

在設計用例的時候,有些用例隻是參數數據的輸入不一樣,比如登錄這個功能,操作過程是一樣的.如果重復去寫操作過程會增加代碼量,對應這種多組數據的測試用例,可以用數據驅動設計模式,一組數據對應一個測試用例,用例自動加載生成.

一.ddt簡單介紹

1.ddt是什麼

ddt:data driver tests ,數據驅動測試,是一種單元測試框架

2.使用ddt\的好處

如"前言"所說

3.導入ddt模塊

ddt屬於第三方模塊,需要安裝,安裝方法:

  • 方法一:在cmd命令中輸入:pip install ddt
  • 方法二:pycharm中打開終端,輸入:pip install ddt

4.四種模式

ddt要與unittest單元測試框架一塊結合使用

  • @ddt:引入ddt模塊
  • @data:導入數據
  • @unpack:拆分數據     
  • @file_data:導入外部數據

二.ddt處理各種類型數據

註意:

  • 1.使用ddt模塊要在測試類前用@ddt進行修飾
  •  2.要導入測試數據需在測試用例(以test_開頭的方法)前用@data修飾
  •  3.若需對測試數據進行拆分需用@unpack修飾
  •  4.若需導入外部數據需用@file_data修飾

1.分析ddt工作原理

 代碼中@data(1,2,“jack”)傳入瞭三個元素,故ddt自動生成瞭3個測試用用例。分別打印傳入的數據

註意:

對於沒有使用ddt的測試用例來說,一個test_開頭的測試方法一次隻能生成一個測試用例,但是有瞭ddt之後,可以一次向測試方法中傳入多個測試數據,而生成測試用例的個數是根據@data中傳入的測試數據的元素而定的.

2.ddt測試元祖數據

2.1測試單組元素

2.2測試多組未分解元素

 2.3測試多組分解元素

 3.ddt測試列表數據

3.1多組列表拆分數據

3.2復雜列表(含字典)拆分數據

 4.ddt測試字典數據

4.1多組字典數據拆分

 5.ddt測試字典列表數據結合

 在實際應用中會存在數據比較多的情況,如果都直接把數據傳入@data中會顯得代碼非常冗雜,以包含多個字典的列表數據為例,可將包含多個字典的元素存放在一個列表變量中,在@data中傳入列表變量即可

 6.ddt測試讀取文件數據

數據格式必須為json,且必須為雙引號的鍵值對形式

到此這篇關於Python中unittest的數據驅動詳解的文章就介紹到這瞭,更多相關Python unittest 數據驅動內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: