自己怎么做VIP視頻解網(wǎng)站汕頭網(wǎng)站建設(shè)技術(shù)外包
前言
網(wǎng)盜概念相同的測試腳本使用不同的測試數(shù)據(jù)來執(zhí)行,測試數(shù)據(jù)和測試行為完全分離, 這樣的測試腳本設(shè)計模式稱為數(shù)據(jù)驅(qū)動。(網(wǎng)盜結(jié)束)當(dāng)我們測試某個網(wǎng)站的登錄功能時,我們往往會使用不同的用戶名和密碼來驗證登錄模塊對系統(tǒng)的影響,那么如果我們每一條數(shù)據(jù)都編寫一條測試用例,這無疑是增加了代碼量,代碼重復(fù),且顯得那么臃腫(誰不喜歡身材好的呢?你懂的),這時候我們可以使用不同數(shù)據(jù)驅(qū)動代碼執(zhí)行相同的用例測試不同的場景
實施數(shù)據(jù)驅(qū)動步驟
我們再來說說實施數(shù)據(jù)驅(qū)動測試的步驟:
1.創(chuàng)建/準備測試數(shù)據(jù)
2.封裝讀取數(shù)據(jù)的方法,保留測試腳本調(diào)用的接口/屬性(我們需要傳遞給腳本什么參數(shù))
3.編寫自動化測試腳本
4.腳本中調(diào)用封裝好的處理數(shù)據(jù)文件的模塊并引入測試數(shù)據(jù)
5.執(zhí)行測試腳本并分析測試結(jié)果
?數(shù)據(jù)驅(qū)動測試環(huán)境準備
1.安裝python3.x開發(fā)環(huán)境(能看到此文章的應(yīng)該都有這個環(huán)境,沒有的自行百度吧)
2.安裝數(shù)據(jù)驅(qū)動模塊ddt
安裝方式1:cmd下執(zhí)行命令 pip install ddt
安裝方式2:Links for ddt 下載 并解壓任意目錄,cmd 運行命令python setup.py install
3.驗證安裝 pycharm 新建python文件并輸入 import ddt 運行無報錯信息既表示安裝成功或者cmd 命令依次輸入python回車 import ddt回車 無保存信息表示安裝成功
4.unittest框架和ddt進行數(shù)據(jù)驅(qū)動
測試步驟
1.訪問地址:https://mail.sohu.com/fe/#/login
2.輸入用戶名和密碼
3.點擊登錄按鈕
4.判斷是否登錄成功
數(shù)據(jù)存儲
數(shù)據(jù)存在當(dāng)前腳本中
數(shù)據(jù)準備
我們要實現(xiàn)的是用戶登錄的操作,所以用戶名和密碼是必須有的,期望結(jié)果可以有也可以沒有。數(shù)據(jù)類型看源代碼!
實例代碼
?簡單數(shù)據(jù)驅(qū)動測試.py
源碼分析
1.@ddt來裝飾測試類(ddt數(shù)據(jù)驅(qū)動的規(guī)范寫法,記住就ok)
2.@data(*value)裝飾測試用例(也是一種規(guī)范,這邊又涉及到裝飾器,不懂的可以百度或者看我之前的文章又介紹,這邊不再贅述,一句話兩句話也說不清楚)記住:*value作用是打散數(shù)據(jù),比如上面代碼是用一個大列表存儲兩個小列表存放數(shù)據(jù)的,那么*value會得到兩個小列表,每個小列表是一組測試數(shù)據(jù)
3.@unpack 解析*value數(shù)據(jù),會把兩個小列表里面的每一個數(shù)據(jù)取出來分別傳遞給我們測試用例的形參
方式1缺點
存儲大量數(shù)據(jù)時,需查看源代碼,不利于腳本的維護
json文件讀取測試數(shù)據(jù)進行數(shù)據(jù)驅(qū)動測試
數(shù)據(jù)準備
新建一個json文件(也可以是txt文件),將我們需要的兩組測試數(shù)據(jù)以列表的形式寫到j(luò)son文件中,每組數(shù)據(jù)的每一項參數(shù)用相同的符號分割開(方便腳本讀取數(shù)據(jù))
實例代碼
?test_data.json
?使用數(shù)據(jù)文件驅(qū)動測試.py
源碼分析
1.相對上個實例,這里使用了@file_data(文件路徑), 參數(shù)必須是一個文件,這里是一個json文件, 數(shù)據(jù)可以是一個列表,也可以是一個字典
-
# 列表形式
-
[
-
"*******@sohu.com||xiaochao11520||https://mail.sohu.com/fe/#/homepage",
-
"*******@sohu.com||xiaochao11520||https://mail.sohu.com/fe/#/homepage"
-
]
2.測試用例接收的是一個字符串,需要對字符串進行處理,把用戶名,密碼,期望值解析出來
?方式2優(yōu)缺點
測試數(shù)據(jù)存在文件中,方便管理修改,添加數(shù)據(jù),易于維護,缺點呢?emmm個人認為這種方式最好!
從xml讀取數(shù)據(jù)進行數(shù)據(jù)驅(qū)動測試
數(shù)據(jù)準備
新建一個xml格式的文件,按照xml格式的語法需求,填寫數(shù)據(jù)(xml文檔我也不是很懂,簡單的顯示個文字啥的還可以^-^!)
xmlData.xml
實例代碼
doXML.py
?從xml文件讀取數(shù)據(jù)驅(qū)動測試.py
源碼分析
1.xml文檔編寫(深入了解需百度)有點像html,但又有不同,xml中的節(jié)點可以是任意名稱,每個節(jié)點同樣是成雙出現(xiàn)
2.增加了doXML.py文檔,用來解析xml文件,方便腳本獲取數(shù)據(jù)(注釋寫的很詳細,不懂的化可以慢慢調(diào)試,哪里不懂print哪里)
3.測試腳本和上面的實例大致相同(不懂的加我qq直接問)
方式3優(yōu)缺點
優(yōu)點是做到了數(shù)據(jù)與測試的分離,方便數(shù)據(jù)維護,缺點也比較明顯,需要對xml文檔有一定的了
總結(jié)
上面的數(shù)據(jù)驅(qū)動測試步驟是我自己總結(jié)的,看了上面的實例對于步驟應(yīng)該還算合理,下面是我在網(wǎng)上找到的數(shù)據(jù)驅(qū)動測試步驟(感覺比較官方!大家可以參考)
1.編寫測試腳本, 腳本需要支持從程序?qū)ο?#xff0c; 文件,或者數(shù)據(jù)庫讀入數(shù)據(jù)。(個人觀點:如果腳本先編寫完,測試數(shù)據(jù)還未準備,后期還要做修改)
2.將測試腳本使用的測試數(shù)據(jù)存入程序?qū)ο?#xff0c;文件,或者數(shù)據(jù)庫等外部介質(zhì)中。(個人觀點:這個階段實為準備數(shù)據(jù)的階段,也就是我們數(shù)據(jù)要存在哪里,理應(yīng)放在第一步)
3.運行腳本過程中,循環(huán)調(diào)用存儲在外部介質(zhì)中的測試數(shù)據(jù)。(個人觀點:這里要考慮我們?nèi)绾巫x取,使用數(shù)據(jù))
4.驗證所有的測試結(jié)果是否符合預(yù)期結(jié)果
?
總結(jié):
感謝每一個認真閱讀我文章的人!!!
作為一位過來人也是希望大家少走一些彎路,如果你不想再體驗一次學(xué)習(xí)時找不到資料,沒人解答問題,堅持幾天便放棄的感受的話,在這里我給大家分享一些自動化測試的學(xué)習(xí)資源,希望能給你前進的路上帶來幫助。
-
文檔獲取方式:
-
加入我的軟件測試交流群:680748947免費獲取~(同行大佬一起學(xué)術(shù)交流,每晚都有大佬直播分享技術(shù)知識點)
這份文檔,對于想從事【軟件測試】的朋友來說應(yīng)該是最全面最完整的備戰(zhàn)倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!
以上均可以分享,只需要你搜索vx公眾號:程序員雨果,即可免費領(lǐng)取