#!/usr/bin/env python # -*- coding: utf-8 -*- """ @desc:學習unittest的用法 注意setUp/setUpClass,tearDown/tearDownClass的區別 ① setUp():每個測試函數運行前運行 ② tearDown():每個測試函數運行完后執行 ③ setUpClass():必須使用@classmethod 裝飾器,所有test運行前運行一次 ④ tearDownClass():必須使用@classmethod裝飾器,所有test運行完后運行一次unittest還有一些不常用的裝飾器: @unittest.skip(reason):無條件跳過測試,reason描述為什么跳過測試 @unittest.skipif(conditition,reason):condititon為true時跳過測試 @unittest.skipunless(condition,reason):condition不是true時跳過測試 @unittest.expectedFailure:如果test失敗了,這個test不計入失敗的case數目 """ import unittest import time from selenium import webdriverclass SearchTest(unittest.TestCase):@classmethoddef setUpClass(cls):cls.driver = webdriver.Firefox()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("unittest")self.search_btn.click()time.sleep(2)title = self.driver.titleself.assertEqual(title, u"unittest_百度搜索")@classmethoddef tearDownClass(cls):# close the browser window cls.driver.quit()if __name__ == '__main__':unittest.main(verbosity=3)
?