1、uintest 能幹什麼web
unittest單元測試框架不只能夠適用於單元測試,還能夠適用WEB自動化測試用例的開發與執行,該測試框架可組織執行測試用例,而且提供了豐富的斷言方法,判斷測試用例是否經過,最終生成測試結果數據庫
2、 使用方法瀏覽器
一、屬性參數:框架
unittest.TestCase 全部測試類 必須繼承的基本類 less
class Lean (unittest.TestCase):
unittest.main() 將一個單元測試模塊 變爲可運行的測試腳本 , main() 方法經過 TestLoader類搜索模塊中 ,以test開頭的測試方法並自動執行,默認順序 爲0-9 A-Z a-z單元測試
unittest.TestSuite 用來建立測試套件測試
unitest.Text.Tesxt.Runner() 經過 其run 方法 來執行 TestSuite 所組裝的測試用例 入參爲 TestSuite的測試套件 (運行方法1)ui
unittest.Default.TestLoader() 經過其discover()方法 自動根據測試目錄下 test*py 的測試文件 (運行方法2)spa
discover = unittest.default.TestLoader.discover(test_dir, pattern = 'tets*.py')
unittest.skip() 裝飾器,當運行用例時,有些用例可能不想執行等,可用裝飾器暫時屏蔽該條測試用例。一種常見的用法就是好比說想調試某一個測試用例,想先屏蔽其餘用例就能夠用裝飾器屏蔽。調試
@unittest.skip(reason): skip(reason)裝飾器:無條件跳過裝飾的測試,並說明跳過測試的緣由。
@unittest.skip("無條件跳過此用例")
def test_02(self):
@unittest.skipIf(reason): skipIf(condition,reason)裝飾器:條件爲真時,跳過裝飾的測試,並說明跳過測試的緣由。
@unittest.skipUnless(reason): skipUnless(condition,reason)裝飾器:條件爲假時,跳過裝飾的測試,並說明跳過測試的緣由。
@unittest.expectedFailure(): expectedFailure()測試標記爲失敗。
二、unitest.TestCase() 的 屬性方法
setUp () 初始化: 測試用例執行前的初始化工做。如測試用例中須要訪問數據庫,能夠在setUp中創建數據庫鏈接並進行初始化。如測試用例須要登陸web,能夠先實例化瀏覽器。
tearDown() 方法 與 setUp()對應: 用於測試用例執行以後的善後工做。如關閉數據庫鏈接。關閉瀏覽器
accresst *() 斷言 :
|
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的一個實例,不是則測試用例經過。
三、 testSuite() 類的屬性:
addTest() : 將測試用例添加的到 testSuite() 中 :
suite = unittest.TestSuite() suite.addTest(test_BaiduTest.BaiduTest('test_baidu'))
4. TextTextRunner() 類的屬性:
runnner(runner =#import unittest
#coding:utf-8import unittestclass Test_baidu(unittest.TestCase): def setUp(self): #初始化 ,在用於測試用例執行前,例如鏈接數據庫 return self def test_case1(self): #測試用例 以 test 開頭 print('hhh') @unittest.skip('跳過') def test_case2(self): return self def test_case3(self): return self def tearDown(self): #在測試用例最後執行 ,例如關閉數據庫 return self def method(self): #request print('func')if __name__ == '__main__': # 方法一 # unittest.main() #方法二 # suit = unittest.TestSuite() # suit.addTest(Test_baidu('test_case1')) # runner = unittest.TextTestRunner() # runner.run(suit) #方法三 # test_dir = './../../' # print(test_dir) # discover = unittest.defaultTestLoader.discover(test_dir,pattern='test_*.py') # runner = unittest.TextTestRunner() # runner.run(discover)