Python接口自動化-unittest框架及原理


一、unittest 框架講解

unittest是Python單元測試框架

二、需要掌握unittest四個概念

Testcase(測試用例):一個測試用例是一個獨立的單元測試,它檢查對特定輸入集的特定響應。unittest提供了一個基類(TestCase),能夠用他去創建新的測試用例。包括測試前准備環境的搭建(setUp),執行測試代碼 (run),以及測試后環境的還原(tearDown)。元測試(unit test)的本質也就在這里,一個測試用例是一個完整的測試單元,通過運行這個測試單元,可以對某一個問題進行驗證。

Test suite(測試套件):將單一的測試用例或者是一整個測試套件,集合到一起

Test runner(測試運行器): 執行測試用例,run會執行testsuite/testcase中run的方法

TestLoader(測試加載器):加載testcase到testloader,從文件各個地方尋找testcase,創建testcase的實例,然后add到testsuite中,再返回一個testsuite實例

Test fixture(測試夾具):夾在case入口與出口而已,即執行目標之前執行setup,執行目標之后執行teardown

三、unittest測試原理

1、定義一個要被測試的類,該測試類需要Test開頭且必須繼承unittest.TestCase才能成為一個測試類,才可以被unittest執行

2、定義類中的測試方法時,方法必須要test_開頭,只有這樣才會告訴執行器哪些方法是可執行的,也只有test_開頭的才會被執行

3、執行 unittest.main() ,該函數會負責運行測試,它會實例化所有TestCase的子類,並運行其中所有以test打頭的方法。

四、Testcase示例

 1 import unittest
 2 from login import login_check
 3 #定義一個要被測試的類,該測試類需要Test開頭且必須繼承unittest.TestCase才能成為一個測試類,才可以被unittest執行
 4 class LoginTestCase(unittest.TestCase):
 5     #測試夾具
 6     def setUp(self):
 7         print('測試開始了')
 8     def tearDown(self):
 9         print('測試結束了')
10     #定義類中的測試方法時,方法必須要test_開頭,只有這樣才會告訴執行器哪些方法是可執行的,也只有test_開頭的才會被執行
11     def test_login(self):
12         #預期結果
13         excepted = {'code': '0000', 'massage': '賬戶密碼正確,登陸成功'}
14         #傳入參數
15         data = ('python18','123456')
16         #調用被測函數,傳入參數(需要解包),獲取實際結果
17         res= login_check(*data)
18         try:
19             self.assertEqual(excepted, res)  # 通過實例對象(self)來調用assertEqual()方法
20         except AssertionError as e:
21             print("該測試用例測試未通過")  # 可通過異常捕獲來獲取
22             raise e  # 此處需要使用raise主動拋出異常
23         else:
24             pass
25         print("該測試用例測試通過")
26 if __name__ == '__main__':
27     unittest.main()
View Code

五、Test suite示例

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM