unittest單元測試框架不僅可以適用於單元測試,還可以適用web自動化測試用例的開發與執行,該測試框架可組織執行測試用例,並且提供了豐富的斷言方法,判斷測試用例是否通過,最終生成測試結果。今天筆者就總結下如何使用unittest單元測試框架來進行web自動化測試。
1.用import語句引入unittest模組
import unittest
2.測試類應繼承自testcase類
# 繼承自unittest.testcase類
class usertestcase(unittest.testcase):
def setup(self):
print("==teardown==")
self.name="aaa"
def teardown(self):
print("==teardown==")
3.setup()定義測試前的初始化步驟;teardown()定義測試後的清除步驟,在每個測試方法執行時都會被呼叫
所有類中的方法的入參均為self,定義方法的變數是self.《變數名》
定義測試用例(方法),以test開頭命名,否則不會被執行。因為unittest.main()方法會搜尋該模組下所有以test開頭的測試用例方法並自動執行它們
自己寫的py測試檔案不能用unittest.py命名,否則import unittest後會找不到testcase類
可以用unittest.testsuite()類表示乙個測試用例集,主要作用是:
1.用來確定測試用例的執行順序,執行流程測試,而非單元測試
2.使用testloader載入testcase到testsuite
3.verbosity引數可以控制執行結果的輸出,0是簡單報告,1是一般報告,2是詳細報告,預設為1
4.texttestrunner()文字測試用例執行器
5.可以用run()方法執行測試套件的測試用例,入參為suite測試套件
if __name__ == '__main__':
suite = unittest.testsuite()
suite.addtest(usertestcase("test01"))
suite.addtest(usertestcase("test02"))
suite.addtest(usertestcase("test03"))
suite.addtest(usertestcase("test04"))
runner = unittest.texttestrunner(verbosity=0)
runner.run(suite)
htmltestrunner是python標準庫的unittest模組的擴充套件,可以生成html的測試報告,但無法通過pip安裝。
注意點:py2和py3語法不一樣,導致htmltestrunner在py3不相容,解決方法是匯入py3版的htmltestrunner.py檔案。
import htmltestrunner
import time
if __name__ == '__main__':
suite = unittest.testsuite()
suite.addtest(usertestcase("test01"))
suite.addtest(usertestcase("test02"))
suite.addtest(usertestcase("test03"))
suite.addtest(usertestcase("test04"))
# 檔案以當前時間為字首,以便每次執行生成不同的報告檔案
file_prefix = time.strftime("%y-%m-%d %h_%m_%s", time.localtime())
# 如果檔案存在則覆蓋,不存在則建立
fp = open("./"+file_prefix+"_result.html", "wb")
# 使用htmltestrunner框架生成html格式的測試報告
htmltestrunner.htmltestrunner(stream=fp, title="小d課堂 測試報告", description=u'測試用例執**況')
runner.run(suite)
fp.close()
測試報告優化:為每乙個測試用例新增說明
def test01(self):
u'test01方法說明:首頁登入測試'
Python之unittest引數化
unittest如何做引數化呢?我們在寫case 的時候如果就是引數不同,我們只需要把引數都寫到乙個list裡面,然後迴圈去執行這個case即可。unittest中有乙個模組parameterized,可以幫我們迴圈,不需要自己寫迴圈,直接pip install parameterized安裝即可。...
python單元測試之unittest
現在單元測試也要慢慢作正規了。我有幾張阿里雲幸運券分享給你,用券購買或者公升級阿里雲相應產品會有特惠驚喜哦!把想要買的產品的幸運券都領走吧!快下手,馬上就要搶光了。參考以下貼子作了一次python,最終我可是要用django和mock的喲。note1 什麼是測試用例?答 測試用例是乙個完整的測試流程...
Python之單元測試unittest
unittest中最核心的四部分是 testcase,testsuite,testrunner,testfixture 1 乙個testcase的例項就是乙個測試用例。測試用例就是指乙個完整的測試流程,包括測試前準備環境的搭建 setup 執行測試 run 以及測試後環境的還原 teardown 單...