#!/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 classmethod class HomePageTest(unittest.TestCase): @classmethod def 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() @classmethod def tearDownClass(cls): cls.driver.quit() def is_element_present(self,how,what): try:self.driver.find_element(by=how,value=what) except NoSuchElementException: return False return True if __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 HomePageTest search_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实例