測試用例 - test case:乙個完整的測試過程,特點的輸入得到特定的輸出,並對輸出進行校驗
測試裝置 - test fixture:測試部件,測試執行前的環境準備部件,測試執行部件,測試完成後的環境清理部件
測試套件 - test suite:測試用例集
測試執行 - test runner : 測試執行,並生成各種格式的報告
1)testcase類:所有的測試類都必要要繼承testcase類,然後才具備執行能力
2)testloader類:
3)testsuite類
4)main()方法:用來執行所有的以test開頭的測試用例,例如:test01、test_div01
5)run()方法:用來執行測試用例
1) unittest 執行方式------沒有報告
2) 普通執行方式------有測試報告
測試執行前的環境準備部件—setup
測試執行後的環境清理部件—teardown
每條測試用例執行前都會執行setup,每條測試用例執行後都會執行teardown(針對測試類裡的每條測試用例)
測試執行前的環境準備部件—setupclass
測試執行後的環境清理部件—teardownclass
所有測試用例執行前去執行setupclass,所有測試用例執行後都會執行teardownclass(針對測試類)
注意:他是類方法,必須要用裝飾器 @classmethod 去修飾
unittest裝飾器和斷言
1)相等斷言
引數1 == 引數2,否則丟擲引數3:msg
self.assertequal(ex,actual,"斷言失敗")
2)真假斷言(布林斷言)
真假斷言,引數1:表示式 結果為true/false 引數2:msg
self.asserttrue(actual == ex,"actual != ex")
3)包含斷言
包含斷言,引數1是否在引數2裡(引數2包含引數1)
self.assertin("a","ab","a在ab中")
4)位址斷言
a = 2
b = 2
self.assertis(a,b,"msg")
5)例項斷言
判斷cal是否是caculator的物件
self.assertisinstance(cal,caculator,"msg")
6)異常捕獲
with self.assertraises(zerodivisionerror):
actual = cal.div(10,0)
裝飾器:不改變源**(函式本身),卻能新增一種新的功能
用 @ 修飾
skip — 跳過
跳過, 引數:跳過的原因
@unittest.skip("強制跳過")
滿足條件跳過,不滿足則不跳過, 引數1:條件 引數2:原因
@unittest.skipif(1<2,"滿足條件跳過")
不滿足條件,則跳過, 引數1:條件 引數2:原因
@unittest.skipunless(3<2,"不滿足跳過")
expectfailure — 期待失敗
@unittest.expectedfailure
testloader(測試載入器)/testsuite(測試套件)
loader = unittest.testloader()
testloader 4種方法:
根據類名載入測試用例,返回乙個測試用例集
suite = loader.loadtestsfromtestcase(teststudent)
根據模組名稱載入測試用例
suite01 = loader.loadtestsfrommodule(test02)
根據路徑名稱來載入測試用例,引數是string,路徑名稱=包名.模組名.類名.方法
suite02 = loader.loadtestsfromname("day01.test02.testcaculator.test_div02")
多個路徑
suite03 = loader.loadtestsfromnames(["day01.test02.testcaculator.test_div02","day01.test02.testcaculator.test_div03"])
testsuite 2種方法:addtest / addtests
suite = unittest.testsuite()
suite.addtests([suite01,suite03])
runner.run(suite)
html報告
with open("report.html","w",encoding="utf8") as f:
runner = htmltestrunner(f,verbosity=1,title="測試報告",description="關於此次報告的描述")
runner.run(suite)
指令碼的執行方式:
unittest.main() 執行全部
texttestrunner().run() 需要用測試套件來組織測試用例並執行,文字報告
htmltestrunner().run() 需要用測試套件來組織測試用例並執行,h5報告
python -m unittest 指令碼.py 命令列執行
UnitTest測試框架
unittest是目前應用都相對較高的測試框架之一,主要用於管理測試用例,最初是應用於單元測試,現在可以進行ui 介面自動化測試。它是python內建的乙個測試框架。unittest包含四大元件 1.匯入環境 import unittest2.unittest有基本語法規則 a.繼承自unittes...
單元測試 unittest
單元測試框架 unittest pytest uniittest unittest是python內建的單元測試框架,具有編寫用例,組織用例,執行用例,輸出測試報告等自動化框架的條件。unittest中的5個重要概念 test fixture,testcase,testsuite,testloder,...
單元測試測試之unittest
首先我們先理解單元測試是誰做的 開發 然後我們測試會寫 之後,我們也可以自己做單元測試 那麼單元測試是做什麼?對某個功能去測試 單元測試測試什麼?類裡面的方法 單元測試怎麼測?建立物件 呼叫方法 傳參 通過傳遞多組資料來測試不同的情況 單元測試的框架有 unittest 和 pytest 學會了un...