軟件測試 | unittest單元測試框架
Django默認使用Python的標準庫unittest編寫測試用例。
單元測試框架
關于單元測試,首先澄清兩點誤區(qū):
誤區(qū)1:不用單元測試框架一樣可以編寫單元測試,單元測試本質上就是通過一段代碼區(qū)測試另外一段代碼。
誤區(qū)2:單元測試框架不僅可以用于程序單元級別的測試,同樣可以用于UI自動化測試、接口自動化測試,以及移動APP自動化測試等。
想要解釋誤區(qū)2,必須要知道單元測試框架提供了什么功能。
提供用例編寫規(guī)范于執(zhí)行:當編寫的測試用例達到成百上千條時,首先要解決用例的規(guī)范化問題,每個人都有編寫代碼的習慣,單元測試框架提供了統(tǒng)一的用例編寫規(guī)范。
其次是用靈活的批量執(zhí)行問題,可以靈活地指定不同級別的測試,如針對一個測試方法(用例)、一個測試類、一個測試文件,或者一個測試目錄等不同級別的測試。
提供專業(yè)的比較方法:不管是功能測試,還是單元測試,在用例執(zhí)行到最后都需要將實際結果與預期結果進行比較,這個比較過程在單元測試中稱為“斷言”,從而判斷用例能否測試通過。所以,作為單元測試框架一般也會提供豐富的斷言方法。例如,斷言相等/不相等、包含/不包含、True/False等。
提供豐富的測試日志:提供測試用例的執(zhí)行日志也是單元測試框架必須具備的功能之一,當測試用例執(zhí)行失敗時拋出明確的失敗信息,當測試用例執(zhí)行完成后提供執(zhí)行結果信息。例如,統(tǒng)計失敗用例數、成功用例和執(zhí)行時間等。
從單元測試框架所提供的幾點功能來看,它可以幫助我們完成不同級別測試的自動化:
單元測試:unittest
HTTP接口自動化測試:unittest+Requests
Web UI自動化測試:unittest+Selenium
移動自動化測試:unittest+Appium
Requests是Python語言中用于實現HTTP接口調用的庫。Selenium用于實現Web頁面的各種操作,支持多種編程語言,其中包括Python語言。而Appium是一款當前非常流行的移動端測試工具,同樣支持Python語言。
搜索微信公眾號:TestingStudio霍格沃茲的干貨都很硬核