自動化測試框架(單元測試框架unittest+數據驅動框架ddt+測試報告【beatifulreport+HtmlTestRunner+郵件發送報告+爬蟲】)(一)

很久沒更了,人是有惰性的,不找理由。上文中提到我設計的自動化測試框架,這篇文章就詳細講講我的框架中使用到的python自帶的單元測試框架和數據驅動框架。在testcase模塊中,主要是按模塊放不同的系統的接口測試腳本。在寫接口測試腳本的時候,需要使用到python自帶的單元測試框架unittest,它可組織執行測試用例,提供豐富的斷言方法,且和開源的報告組件合用可生產自動化測試報告,測試報告在下面的文章中再詳細描述。

在寫測試腳本的時候,python一般都會用到unittest單元測試框架。在py文件中直接import unittest便可以使用這個庫。在寫測試類時候需要繼承unittest.TestCase 如測試一個create接口寫法:class test_Create(unittest.TestCase)。詳細描述下經常用到的。1 unittest.main():使用她可以方便的將一個單元測試模塊變爲可直接運行的測試腳本.

unittest.TestSuite():unittest框架的TestSuite()類是用來創建測試套件的。

unittest.skip():裝飾器,當跳過該測試方法。通常需要調試或者需要選擇性跑某些用例時可以使用到。

setUp():setUp()方法用於測試用例執行前的初始化工作,每條測試方法開始前都會執行。

tearDown():tearDown()方法用於測試用例執行之後的善後工作,每條測試方法執行後都會執行。

6 setUpClass(cls):這個必須要加上裝飾器@classmethod,每執行一個測試類前會執行一次。通常獲取token的時候可以用到這個。

7 tearDownClass(cls):這個必須要加上裝飾器@classmethod,每執行一個測試類後會執行一次。

8 assert*():一些斷言方法:在執行測試用例的過程中,最終用例是否執行通過,是通過判斷測試得到的實際結果和預期結果是否相等決定的。

assertEqual(a,b,[msg='測試失敗時打印的信息']):斷言a和b是否相等,相等則測試用例通過。

assertNotEqual(a,b,[msg='測試失敗時打印的信息']):斷言a和b是否相等,不相等則測試用例通過。

assertTrue(x,[msg='測試失敗時打印的信息']):斷言x是否True,是True則測試用例通過。

assertFalse(x,[msg='測試失敗時打印的信息']):斷言x是否False,是False則測試用例通過。

assertIs(a,b,[msg='測試失敗時打印的信息']):斷言a是否是b,是則測試用例通過。

assertNotIs(a,b,[msg='測試失敗時打印的信息']):斷言a是否是b,不是則測試用例通過。

assertIsNone(x,[msg='測試失敗時打印的信息']):斷言x是否None,是None則測試用例通過。

assertIsNotNone(x,[msg='測試失敗時打印的信息']):斷言x是否None,不是None則測試用例通過。

assertIn(a,b,[msg='測試失敗時打印的信息']):斷言a是否在b中,在b中則測試用例通過。

assertNotIn(a,b,[msg='測試失敗時打印的信息']):斷言a是否在b中,不在b中則測試用例通過。

assertIsInstance(a,b,[msg='測試失敗時打印的信息']):斷言a是是b的一個實例,是則測試用例通過。

assertNotIsInstance(a,b,[msg='測試失敗時打印的信息']):斷言a是是b的一個實例,不是則測試用例通過。

通常對一個接口寫測試腳本,會用到以上的unittest庫裏的函數。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章