python之unittest框架入門

2021-09-22 01:24:31 字數 2253 閱讀 3334

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 單...