#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/23 11:23 # @File : unittest_test2_2.py'''Testsuits測試套件''' import unittest from selenium import webdriver from selenium.common.exceptions import NoSuchElementException from selenium.webdriver.common.by import By#from __builtin__ import classmethodclass HomePageTest(unittest.TestCase):@classmethoddef setUpClass(cls):cls.driver = webdriver.Chrome()cls.driver.implicitly_wait(30)cls.driver.maximize_window()cls.driver.get('https://www.baidu.com/?tn=78000241_12_hao_pg')def test_search_field(self):self.assertTrue(self.is_element_present(By.NAME,'wd'))def test_vip_promo(self):vip_promo = self.driver.find_element_by_xpath('//*[@id="u1"]/a[1]')self.assertTrue(vip_promo.is_displayed())vip_promo.click()self.assertEqual(u'百度新聞——全球最大的中文新聞平臺',self.driver.title) #如果點擊的鏈接跳轉出來的頁面# 不是在當前頁面的話會報錯,因為self.driver表示的是當前頁面def test_login(self):login = self.driver.find_element_by_css_selector('#u1 > a.lb')login.click()login.next = self.driver.find_element_by_css_selector('#TANGRAM__PSP_10__qrcode > p.tang-pass-qrcode-title')self.assertEqual(u'請使用百度App掃碼登錄',login.next.text)login.close = self.driver.find_element_by_css_selector('#TANGRAM__PSP_4__closeBtn')login.close.click()@classmethoddef tearDownClass(cls):cls.driver.quit()def is_element_present(self,how,what):try:self.driver.find_element(by=how,value=what)except NoSuchElementException:return Falsereturn Trueif __name__=='__main__':unittest.main(verbosity=2)
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2018/11/28 10:42 # @File : unittest_test2_4.py''' 用TestSuite類來定義和執行測試套件,用TestLoader和TextTestRunner來創建和運行測試套件 把多個測試加到一個測試套件中 ''' import unittest from unittest_test2_1 import SearchTests from unittest_test2_2 import HomePageTestsearch_tests = unittest.TestLoader().loadTestsFromTestCase(SearchTests) home_page_tests = unittest.TestLoader().loadTestsFromTestCase(HomePageTest)#創建一個套件聯合search_tests,home_page_tests smoke_tests = unittest.TestSuite([search_tests,home_page_tests])#運行套件 unittest.TextTestRunner(verbosity=2).run(smoke_tests)
?
?
使用@classmethod和setUpClass()方法,tearDownClass()方法可以在類級別初始化數據,多個測試用例可以共享這些初始化數據,創建一個chrome實例