- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > 編程語(yǔ)言 >
- Python中怎么實(shí)現自動(dòng)化測試
Python中怎么實(shí)現自動(dòng)化測試,針對這個(gè)問(wèn)題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
1、為什么需要自動(dòng)化測試?
相信大家都遇到過(guò)這樣的問(wèn)題,你需要一遍一遍地在你的軟件中輸入命令,來(lái)測試軟件的功能是否正常,這個(gè)過(guò)程是很枯燥無(wú)味的。如果能寫(xiě)一小段代碼用來(lái)測試你的代碼該有多好??!因此我們就不得不需要用到自動(dòng)化測試。試想一下,無(wú)論你對程序做了什么修改,或者添加了什么新東西,你只要“跑一下你的自動(dòng)化測試”,而這些測試能確認程序依然能正確運行。這些自動(dòng)測試不會(huì )抓到所有的 bug,但可以讓你無(wú)需重復輸入命令運行你的代碼,從而為你節約很多時(shí)間。
2、用Python編寫(xiě)測試用例
下面以一段非常簡(jiǎn)單的代碼為例,用Python寫(xiě)一個(gè)簡(jiǎn)單的測試,這個(gè)測試將建立在一個(gè)項目骨架上面。首先從你的項目骨架創(chuàng )建一個(gè)叫做 ex47 的項目。下面是你要采取的步驟:
第一步:復制 skeleton 到 ex47
第二步:將所有的 NAME 重命名為 ex47
第三步:修改所有文件中 NAME 為 ex47
第四步:最后刪除所有的 *.pyc 文件
接下來(lái)創(chuàng )建一個(gè)簡(jiǎn)單的 ex47/game.py 文件,里邊放一些用來(lái)被測試的代碼。我們現在放一個(gè)小class進(jìn)去,用來(lái)作為我們的測試對象:
準備好了這個(gè)文件,接下來(lái)把測試骨架改成這樣子:
這個(gè)文件導入了你在 ex47.game 創(chuàng )建的 Room 這個(gè)類(lèi),接下來(lái)我們要做的就是測試它。于是我們看到一系列的以 test_ 開(kāi)頭的測試函數,它們就是所謂的“測試用例(test case)”,每一個(gè)測試用例里面都有一小段代碼,它們會(huì )創(chuàng )建一個(gè)或者一些房間,然后去確認房間的功能和你期望的是否一樣。它測試了基本的房間功能,然后測試了路徑,最后測試了整個(gè)地圖。
這里最重要的函數是 assert_equal ,它保證了你設置的變量,以及你在 Room 里設置的路徑和你的期望相符。如果你得到錯誤的結果的話(huà), nosetests 將會(huì )打印出一個(gè)錯誤信息,這樣你就可以找到出錯的地方并且修正過(guò)來(lái)。
3、測試指導
在寫(xiě)測試代碼時(shí),你可以照著(zhù)下面這些不是很?chē)栏竦闹笇?lái)做:
(1)測試腳本要放到 tests/ 目錄下,并且命名為 BLAH_tests.py ,否則 nosetests 就不會(huì )執行你的測試腳本了。這樣做還有一個(gè)好處就是防止測試代碼和別的代碼互相混掉。
(2)為你的每一個(gè)模組寫(xiě)一個(gè)測試。
(3)測試用例(函數)保持簡(jiǎn)短,但如果看上去不怎么整潔也沒(méi)關(guān)系,測試用例一般都有點(diǎn)亂。
(4)就算測試用例有些亂,也要試著(zhù)讓他們保持整潔,把里邊重復的代碼刪掉。創(chuàng )建一些輔助函數來(lái)避免重復的代碼。當你下次在改完代碼需要改測試的時(shí)候,你會(huì )感謝我這一條建議的。重復的代碼會(huì )讓修改測試變得很難操作。
(5)最后一條是別太把測試當做一回事。有時(shí)候,更好的方法是把代碼和測試全部刪掉,然后重新設計代碼。
4、顯示結果
$ nosetests
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站