python unittest框架裝飾器
阿新 • • 發佈:2017-06-07
import pytho 一次 chrom code element case .com lee
要說單元測試和UI自動化之間的是什麽樣的一個關系,說說我個人的一些心得體會吧,我並沒有太多的這方面經驗,由於工作本身就用的少,還有就是功能測試點點對於我這種比較懶惰的人來說,比單元測試復雜...思考單元測試的處理邏輯和UI的對應關系,根據分層自動化的測試思想, UI>>接口>>最底層就是單元,對於單元級別的自動化測試, 是白盒測試範疇, 用一段代碼去測試一段代碼, 而我們則是需要利用單元測試框架的一些組織驅動單元來編寫我們的自動化測試腳本, 而unittest是python自帶的單元測試框架,我們不必深究,我們只是利用unittest封裝好的一部分規則方法,去填充你的腳本
# coding: utf-8 ‘‘‘ @author : hx @desc : 重點學習unittest的用法 註意setUp/setUpClass, tearDown/tearDownClass 的區別 1.setUp:每個測試函數運行前運行 2.tearDown:每個測試函數運行完後執行 3.setUpClass:[email protected],所有test運行前運行一次 4.tearDownClass:[email protected],所有test運行後運行一次 unittest 還有一些不常用的裝飾器: @unittest.skip(reason):無條件跳過測試,reason描述為什麽跳過測試 @unittest.skipif(condititon,reason):condititon為true時跳過測試 @unittest.skipunless(condition, reason):condition 不是true時跳過測試 @unittest.expectedFailure:如果test失敗了,這個test不計入失敗的case數目‘‘‘ import unittest import time from selenium import webdriver class SearchTest(unittest.TestCase): @classmethod def setUpClass(cls): cls.driver = webdriver.Chrome() cls.driver.implicitly_wait(30) cls.driver.maximize_window() cls.base_url = ‘http://www.baidu.com/‘ cls.driver.get(cls.base_url) cls.search_text = cls.driver.find_element_by_id(‘kw‘) cls.search_btn = cls.driver.find_element_by_id(‘su‘) def test_search_btn_displayed(self): self.assertTrue(self.search_btn.is_displayed()) self.assertTrue(self.search_btn.is_enabled()) def test_search_text_maxlength(self): max_length = self.search_text.get_attribute(‘maxlength‘) self.assertEqual(‘255‘, max_length) def test_search(self): self.search_text.clear() self.search_text.send_keys(‘博客園‘) self.search_btn.click() time.sleep(4) title = self.driver.title self.assertEqual(title, u‘博客園_百度搜索‘) @classmethod def tearDownClass(cls): cls.driver.quit() if __name__ == ‘__main__‘: unittest.main(verbosity = 3)
python unittest框架裝飾器