unittest單元測試框架不僅可以適用于單元測試,還可以適用WEB自動化測試用例的開發與執行,該測試框架可組織執行測試用例,并且提供了豐富的斷言方法,判斷測試用例是否通過,最終生成測試結果。有關python和unittest的基礎知識部分就不細說了,大家可自行百度進行深入了解哦,以下是整個unittest四個比較重要的概念。
test fixture
test case
test suite
test runner
test fixture:簡單來說就是做一些測試過程中需要準備的東西,比如創建臨時的數據庫、文件和目錄等,其中 setUp() 和 setDown() 是最常用的方法。
test case:用戶自定義的測試case的基類,調用run()方法,會依次調用setUP方法、執行用例的方法、tearDown()方法。
test suite:測試用例集合,可以通過addTest()方法手動增加Test Case,也可通過TestLoader自動添加Test Case,TestLoader在添加用例時,會沒有順序。
test runner:運行測試用例的驅動類,可以執行TestCase,也可執行TestSuite。執行后TestCase和Testsuite會自動管理TestResult。
下面貼上簡單unittest的示例代碼:
import unittest
import HTMLTestRunner
import time
class TestCases(unittest.TestCase):
def setUp(self):
print("每一條case執行之前都會執行這個方法")
def tearDown(self):
print("每一條case執行之后都會執行這個方法\n")
def test_testcase1(self):
print("這是一條測試用例case1")
a = "hello"
try:
self.assertTrue(a.isalpha())
print("測試通過")
except Exception as e:
print("出錯啦,錯誤結果是%s" % e)
print("failed")
raise e
def test_testcase2(self):
print("這是一條測試用例case2")
b = "123"
try:
self.assertTrue(b.isalpha())
print("測試通過")
except Exception as e:
print("出錯啦,錯誤結果是%s" % e)
print("failed")
raise e
def test_testcase3(self):
print("這是一條測試用例case3")
c = " "
try:
self.assertTrue(c.isalpha())
print("測試通過")
except Exception as e:
print("出錯啦,錯誤結果是%s" % e)
print("failed")
raise e
'''
if __name__ == "__main__":
unittest.main()
寫上這段代碼可以在命令行直接運行model.py,而且用例全部執行
'''
"""
加載測試用例,方法不僅這種,還有利用loader的方法
loader = unittest.TestLoader()
suite.addTest(loader.loadTestsFromTestCase(TestCases))
or
suite.addTest(loader.loadTestsFromModule(model))
"""
suite = unittest.TestSuite()
# suite.addTest("test_testcase2") # 這里我寫錯了,要加上模塊
suite.addTest(TestCases('test_testcase3'))
"""
指定測試報告的路徑并且定義報告名稱格式
"""
report_dir = "../Test report"
now = time.strftime("%Y-%m-%d %H-%M-%S")
reportname = report_dir + "/" + now + " Test report.html"
"""
運行用例并生成測試報告
"""
with open(reportname, "wb+") as file:
runner = HTMLTestRunner.HTMLTestRunner(file, 2, title="Model test report",
description="Hello testers! This is the description of Model test"
"report")
runner.run(suite)
unittest模塊小結:
關于這個模塊,以前自己學習這個模塊的時候,就不是很懂,這兩天總算是略有收獲。我在做示例時候有了新的發現:不能把斷言放到try語句中并且是可以被except的異常類包含的,否則就不能通過斷言來設置測試用例的結果。
睿江云官網鏈接:http://www.eflycloud.com/#register?salesID=6DGNUTUAV
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
