#!/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实例