源碼商城:獲取
四大核心要素 Test Case(測試用例):一個測試用例是在unittest中執(zhí)行測試的最小單元妄痪。unittest提供了一個名稱為TestCase的基礎類哈雏,可以用來創(chuàng)建測試用例,一條case就是一條用例衫生。 Test Suite(測試套件):一個測試套件是多個測試或測試用例的集合裳瘪,是針對被測程序的對應的功能和模塊創(chuàng)建的一組測試,一個測試套件內(nèi)的測試用例將一起執(zhí)行罪针。 Test Runner(測試執(zhí)行器):測試執(zhí)行器負責測試執(zhí)行調(diào)度并且生成測試結(jié)果給用戶彭羹。測試執(zhí)行器可以使用圖形界面、文本界面或者特定的返回值來展示測試執(zhí)行結(jié)果泪酱。 Test Fixture(測試夾具):通過使用測試夾具派殷,可以定義在單個或多個測試執(zhí)行之前的準備工作和測試執(zhí)行之后的清理工作。 TestFixture測試夾具 setUp和tearDown的使用: 初始化操作:def setUp(self) -> 開始執(zhí)行 銷毀操作:def tearDown(self) -> 結(jié)束操作 說明:
以上兩個方法都繼承TestCase類 setUp方法中做每條用例開始執(zhí)行之前的操作墓阀,例如打開瀏覽器毡惜、登錄等; tearDown方法中做每條用例結(jié)束之后的操作斯撮,例如關閉瀏覽器经伙、退出登錄、清除日志句柄等勿锅; 以上兩種方法每次都在每條test用例前執(zhí)行帕膜。
setUpClass和tearDownClass的使用: 1、初始化操作:def setUpClass(self) -> 開始執(zhí)行
2粱甫、銷毀操作:def tearDownClass(self) -> 結(jié)束操作
說明:
區(qū)別于上面兩個方法的是setUpClass和tearDownClass方法在一個測試類中只執(zhí)行一次 使用這兩個方法必須加classmethod裝飾器
Test Case測試用例 使用:導入unittest包 -> 創(chuàng)建測試類繼承unittest.TestCase類
說明:
自動化測試中每條用例都是一個完成的流程 測試方法命名必須以test開頭泳叠,因為TestCase批量運行測試用例的時候搜索以test開頭的方法否則檢索不到測試用例
TestSuite測試套件 addTest方法使用: 實例化Suite類,suite = unittest.TestSuite() 添加用例茶宵,suite.addTest(ClassName(MethodName)) 說明:
一次只能添加一條用例危纫,添加多個需多次添加
addTests方法使用: suite.addTest([ClassName(MethodName),ClassName(MethodName)]) 說明:
該方法一次可以添加多個用例,傳入?yún)?shù)必須是列表
discover方法使用: 該方法遍歷指定目錄按條件過濾乌庶,返回測試套件 -case_dir:?這個是待執(zhí)行用例的目錄 -pattern:這個是匹配腳本名稱的規(guī)則种蝶,test*.py 意思是匹配 test 開頭的所有腳本 -top_level_dir:這個是頂層目錄的名稱,一般默認等于 None 就行了
以上方法生成的測試用例集合瞒大,需要配合TextTestRunner才能被執(zhí)行
TestRunner測試執(zhí)行器 使用:
實例化runner=unittest.TextTestRunner() 執(zhí)行run方法傳入測試套件螃征,runner.run(suites)
skip方法跳過測試 使用:
該方法是unittest框架中的裝飾器,使用方法@unittest.skip(參數(shù))
說明:
-skip方法直接跳過執(zhí)行 -skipUnless方法condition參數(shù)為False跳過 -skipIf方法condition參數(shù)為True跳過
unittest框架中的斷言 使用:
測試類下繼承了TestCase類透敌,直接調(diào)用
說明:
以equal為例盯滚,傳入兩個對比值踢械,msg拋出的錯誤信息