Python中unittest的數(shù)據(jù)驅(qū)動(dòng)詳解
前言
在設(shè)計(jì)用例的時(shí)候,有些用例只是參數(shù)數(shù)據(jù)的輸入不一樣,比如登錄這個(gè)功能,操作過(guò)程是一樣的.如果重復(fù)去寫(xiě)操作過(guò)程會(huì)增加代碼量,對(duì)應(yīng)這種多組數(shù)據(jù)的測(cè)試用例,可以用數(shù)據(jù)驅(qū)動(dòng)設(shè)計(jì)模式,一組數(shù)據(jù)對(duì)應(yīng)一個(gè)測(cè)試用例,用例自動(dòng)加載生成.
一.ddt簡(jiǎn)單介紹
1.ddt是什么
ddt:data driver tests ,數(shù)據(jù)驅(qū)動(dòng)測(cè)試,是一種單元測(cè)試框架
2.使用ddt\的好處
如"前言"所說(shuō)
3.導(dǎo)入ddt模塊
ddt屬于第三方模塊,需要安裝,安裝方法:
- 方法一:在cmd命令中輸入:pip install ddt
- 方法二:pycharm中打開(kāi)終端,輸入:pip install ddt
4.四種模式
ddt要與unittest單元測(cè)試框架一塊結(jié)合使用
- @ddt:引入ddt模塊
- @data:導(dǎo)入數(shù)據(jù)
- @unpack:拆分?jǐn)?shù)據(jù)
- @file_data:導(dǎo)入外部數(shù)據(jù)
二.ddt處理各種類(lèi)型數(shù)據(jù)
注意:
- 1.使用ddt模塊要在測(cè)試類(lèi)前用@ddt進(jìn)行修飾
- 2.要導(dǎo)入測(cè)試數(shù)據(jù)需在測(cè)試用例(以test_開(kāi)頭的方法)前用@data修飾
- 3.若需對(duì)測(cè)試數(shù)據(jù)進(jìn)行拆分需用@unpack修飾
- 4.若需導(dǎo)入外部數(shù)據(jù)需用@file_data修飾
1.分析ddt工作原理
代碼中@data(1,2,“jack”)傳入了三個(gè)元素,故ddt自動(dòng)生成了3個(gè)測(cè)試用用例。分別打印傳入的數(shù)據(jù)
注意:
對(duì)于沒(méi)有使用ddt的測(cè)試用例來(lái)說(shuō),一個(gè)test_開(kāi)頭的測(cè)試方法一次只能生成一個(gè)測(cè)試用例,但是有了ddt之后,可以一次向測(cè)試方法中傳入多個(gè)測(cè)試數(shù)據(jù),而生成測(cè)試用例的個(gè)數(shù)是根據(jù)@data中傳入的測(cè)試數(shù)據(jù)的元素而定的.
2.ddt測(cè)試元祖數(shù)據(jù)
2.1測(cè)試單組元素
2.2測(cè)試多組未分解元素
2.3測(cè)試多組分解元素
3.ddt測(cè)試列表數(shù)據(jù)
3.1多組列表拆分?jǐn)?shù)據(jù)
3.2復(fù)雜列表(含字典)拆分?jǐn)?shù)據(jù)
4.ddt測(cè)試字典數(shù)據(jù)
4.1多組字典數(shù)據(jù)拆分
5.ddt測(cè)試字典列表數(shù)據(jù)結(jié)合
在實(shí)際應(yīng)用中會(huì)存在數(shù)據(jù)比較多的情況,如果都直接把數(shù)據(jù)傳入@data中會(huì)顯得代碼非常冗雜,以包含多個(gè)字典的列表數(shù)據(jù)為例,可將包含多個(gè)字典的元素存放在一個(gè)列表變量中,在@data中傳入列表變量即可
6.ddt測(cè)試讀取文件數(shù)據(jù)
數(shù)據(jù)格式必須為json,且必須為雙引號(hào)的鍵值對(duì)形式
到此這篇關(guān)于Python中unittest的數(shù)據(jù)驅(qū)動(dòng)詳解的文章就介紹到這了,更多相關(guān)Python unittest 數(shù)據(jù)驅(qū)動(dòng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 添加用戶(hù)設(shè)置密碼并發(fā)郵件給root用戶(hù)
這篇文章主要介紹了python 添加用戶(hù)設(shè)置密碼并發(fā)郵件給root用戶(hù)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07Django url,從一個(gè)頁(yè)面調(diào)到另個(gè)頁(yè)面的方法
今天小編就為大家分享一篇Django url,從一個(gè)頁(yè)面調(diào)到另個(gè)頁(yè)面的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08Python利用Beautiful Soup模塊搜索內(nèi)容詳解
這篇文章主要給大家介紹了python中 Beautiful Soup 模塊的搜索方法函數(shù)。 方法不同類(lèi)型的過(guò)濾參數(shù)能夠進(jìn)行不同的過(guò)濾,得到想要的結(jié)果。文中介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-03-03Python實(shí)現(xiàn)列表刪除重復(fù)元素的三種常用方法分析
這篇文章主要介紹了Python實(shí)現(xiàn)列表刪除重復(fù)元素的三種常用方法,結(jié)合實(shí)例形式對(duì)比分析了Python針對(duì)列表元素的遍歷、判斷、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下2017-11-11Python的代理類(lèi)實(shí)現(xiàn),控制訪問(wèn)和修改屬性的權(quán)限你都了解嗎
這篇文章主要為大家詳細(xì)介紹了Python的代理類(lèi)實(shí)現(xiàn),控制訪問(wèn)和修改屬性的權(quán)限,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03