我们测试中,肯定需要,打开一个页面,然后测试这个页面的多个用例,才关闭这个页面,去测试其他页面,在unittest是有相关测试固件方法去支持这种行为。请看下面
# coding=utf-8 import time import unittest from framework.browser_engine import BrowserEngine from pageobjects.baidu_homepage import HomePage class BaiduSearch(unittest.TestCase): @classmethod def setUpClass(cls): """ 测试固件的setUp()的代码,主要是测试的前提准备工作 :return: """ browse = BrowserEngine(cls) cls.driver = browse.open_browser(cls) @classmethod def tearDownClass(cls): """ 测试结束后的操作,这里基本上都是关闭浏览器 :return: """ cls.driver.quit() def test_baidu_search(self): """ 这里一定要test开头,把测试逻辑代码封装到一个test开头的方法里。 :return: """ homepage = HomePage(self.driver) homepage.type_search('selenium') # 调用页面对象中的方法 homepage.send_submit_btn() # 调用页面对象类中的点击搜索按钮方法 time.sleep(2) homepage.get_windows_img() # 调用基类截图方法 try: assert 'selenium' in homepage.get_page_title() # 调用页面对象继承基类中的获取页面标题方法 print ('Test Pass.') except Exception as e: print ('Test Fail.', format(e)) def test_search2(self): homepage = HomePage(self.driver) homepage.type_search('python') # 调用页面对象中的方法 homepage.send_submit_btn() # 调用页面对象类中的点击搜索按钮方法 time.sleep(2) homepage.get_windows_img() # 调用基类截图方法 if __name__ == '__main__': unittest.main()
运行一下,是不是,只需要打开和关闭浏览器一次,就执行了2个搜索用例?以后,项目中基本采用这种方法来执行同一个功能不同测试用例的编写。