源碼商城:獲取
四大核心要素 Test Case(測(cè)試用例):一個(gè)測(cè)試用例是在unittest中執(zhí)行測(cè)試的最小單元。unittest提供了一個(gè)名稱(chēng)為T(mén)estCase的基礎(chǔ)類(lèi),可以用來(lái)創(chuàng)建測(cè)試用例,一條case就是一條用例。 Test Suite(測(cè)試套件):一個(gè)測(cè)試套件是多個(gè)測(cè)試或測(cè)試用例的集合,是針對(duì)被測(cè)程序的對(duì)應(yīng)的功能和模塊創(chuàng)建的一組測(cè)試,一個(gè)測(cè)試套件內(nèi)的測(cè)試用例將一起執(zhí)行。 Test Runner(測(cè)試執(zhí)行器):測(cè)試執(zhí)行器負(fù)責(zé)測(cè)試執(zhí)行調(diào)度并且生成測(cè)試結(jié)果給用戶(hù)。測(cè)試執(zhí)行器可以使用圖形界面、文本界面或者特定的返回值來(lái)展示測(cè)試執(zhí)行結(jié)果。 Test Fixture(測(cè)試夾具):通過(guò)使用測(cè)試夾具,可以定義在單個(gè)或多個(gè)測(cè)試執(zhí)行之前的準(zhǔn)備工作和測(cè)試執(zhí)行之后的清理工作。 TestFixture測(cè)試夾具 setUp和tearDown的使用: 初始化操作:def setUp(self) -> 開(kāi)始執(zhí)行 銷(xiāo)毀操作:def tearDown(self) -> 結(jié)束操作 說(shuō)明:
以上兩個(gè)方法都繼承TestCase類(lèi) setUp方法中做每條用例開(kāi)始執(zhí)行之前的操作,例如打開(kāi)瀏覽器、登錄等; tearDown方法中做每條用例結(jié)束之后的操作,例如關(guān)閉瀏覽器、退出登錄、清除日志句柄等; 以上兩種方法每次都在每條test用例前執(zhí)行。

setUpClass和tearDownClass的使用: 1、初始化操作:def setUpClass(self) -> 開(kāi)始執(zhí)行
2、銷(xiāo)毀操作:def tearDownClass(self) -> 結(jié)束操作
說(shuō)明:
區(qū)別于上面兩個(gè)方法的是setUpClass和tearDownClass方法在一個(gè)測(cè)試類(lèi)中只執(zhí)行一次 使用這兩個(gè)方法必須加classmethod裝飾器

Test Case測(cè)試用例 使用:導(dǎo)入unittest包 -> 創(chuàng)建測(cè)試類(lèi)繼承unittest.TestCase類(lèi)
說(shuō)明:
自動(dòng)化測(cè)試中每條用例都是一個(gè)完成的流程 測(cè)試方法命名必須以test開(kāi)頭,因?yàn)門(mén)estCase批量運(yùn)行測(cè)試用例的時(shí)候搜索以test開(kāi)頭的方法否則檢索不到測(cè)試用例

TestSuite測(cè)試套件 addTest方法使用: 實(shí)例化Suite類(lèi),suite = unittest.TestSuite() 添加用例,suite.addTest(ClassName(MethodName)) 說(shuō)明:
一次只能添加一條用例,添加多個(gè)需多次添加

addTests方法使用: suite.addTest([ClassName(MethodName),ClassName(MethodName)]) 說(shuō)明:
該方法一次可以添加多個(gè)用例,傳入?yún)?shù)必須是列表

discover方法使用: 該方法遍歷指定目錄按條件過(guò)濾,返回測(cè)試套件 -case_dir:?這個(gè)是待執(zhí)行用例的目錄 -pattern:這個(gè)是匹配腳本名稱(chēng)的規(guī)則,test*.py 意思是匹配 test 開(kāi)頭的所有腳本 -top_level_dir:這個(gè)是頂層目錄的名稱(chēng),一般默認(rèn)等于 None 就行了

以上方法生成的測(cè)試用例集合,需要配合TextTestRunner才能被執(zhí)行
TestRunner測(cè)試執(zhí)行器 使用:
實(shí)例化runner=unittest.TextTestRunner() 執(zhí)行run方法傳入測(cè)試套件,runner.run(suites)

skip方法跳過(guò)測(cè)試 使用:
該方法是unittest框架中的裝飾器,使用方法@unittest.skip(參數(shù))
說(shuō)明:
-skip方法直接跳過(guò)執(zhí)行 -skipUnless方法condition參數(shù)為False跳過(guò) -skipIf方法condition參數(shù)為T(mén)rue跳過(guò)

unittest框架中的斷言 使用:
測(cè)試類(lèi)下繼承了TestCase類(lèi),直接調(diào)用

說(shuō)明:
以equal為例,傳入兩個(gè)對(duì)比值,msg拋出的錯(cuò)誤信息
