zoukankan      html  css  js  c++  java
  • 【selenium学习中级篇 -24】Unittest框架

    文章太长不看版:

    setUp(): 每个测试case运行之前运行
    tearDown(): 每个测试case运行完之后执行
    setUpClass(): 必须使用 @classmethod装饰器, 所有case运行之前只运行一次
    tearDownClass(): 必须使用 @classmethod装饰器, 所有case运行完之后只运行一次

    详情版:

    前面我们创建了一个测试用例,但真正的项目中,不可能只有一个测试用例,也不太可能只有一个测试页面,所以为了后续演示方便,我们新增加两条用例和一个测试页面test_baidu_01.py

     test_baidu.py

    from Base import *
    from PageObjects import *
    from Flow import *
    import unittest
    import time
    
    
    class TestBaiDuSearch(unittest.TestCase):
    
        def test_baidu(self):
            browser = BrowserEngine()  # 实例化browser类
            self.driver = browser.open_browser()
            self.baidu_flow = BaiduFlow(self.driver)  # 实例化流程类,要传入driver
            self.baidu_flow.open_baidu()  # 打开页面
            result = self.baidu_flow.baidu_know_search("selenium")  # 获取测试结果
            time.sleep(3)
            # 对比实际结果和预期结果
            self.assertEqual(result, "http://zhidao.baidu.com/question/147041701.html?fr=iks&word=selenium&ie=gbk")
    
        '''
        点击好123按钮,并判断打开的页面URL是否正确
        '''
        def test_baidu_hao123(self):
            browser = BrowserEngine()  # 实例化browser类
            self.driver = browser.open_browser()
            self.baidu_flow = BaiduFlow(self.driver)  # 实例化流程类,要传入driver
            self.baidu_flow.open_baidu()  # 打开页面
            self.baidu_flow.click_baidu_hao123()
            self.baidu_flow.switch_handle()
            hao_url = self.baidu_flow.get_page_url()
            self.assertEqual(hao_url,"https://www.hao123.com/")

    test_baidu_01.py

    from Base import *
    from Flow import *
    import unittest
    
    
    class TestBaiDuButton(unittest.TestCase):
    
        '''
        点击“更多”按钮,并判断打开的页面URL是否正确
        '''
        def test_baidu_more(self):
            browser = BrowserEngine()  # 实例化browser类
            self.driver = browser.open_browser()
            self.baidu_flow = BaiduFlow(self.driver)  # 实例化流程类,要传入driver
            self.baidu_flow.open_baidu()  # 打开页面
            self.baidu_flow.click_baidu_more()
            self.baidu_flow.switch_handle()
            more_url = self.baidu_flow.get_page_url()
            self.assertEqual(more_url,"https://www.baidu.com/more/")

    其中需要补充的基础函数自行补充了

    这里面我们可以发现,在每个测试用例的方法中,都有去实例化driver,都有去实例化页面等,就略先复杂。所以,我们引入Unittest测试框架里面的setUp与setUpClass来做一些用例之前的初始化工作

    以 test_baidu.py为例

    from Base import *
    from PageObjects import *
    from Flow import *
    import unittest
    import time
    
    
    class TestBaiDuSearch(unittest.TestCase):
    # setUp(): 每个测试case运行之前运行 # tearDown(): 每个测试case运行完之后执行 # setUpClass(): 必须使用 @ classmethod装饰器, 所有case运行之前只运行一次 # tearDownClass(): 必须使用 @ classmethod装饰器, 所有case运行完之后只运行一次
       # 测试运行前的初始化 @classmethod
    def setUpClass(cls): browser = BrowserEngine() cls.driver = browser.open_browser() cls.baidu_flow = BaiduFlow(cls.driver)
    # 测试运行完后退出浏览器 @classmethod
    def tearDownClass(cls): cls.driver.quit() def test_baidu(self): self.baidu_flow.open_baidu() result = self.baidu_flow.baidu_know_search("selenium") # 获取测试结果 time.sleep(3) # 对比实际结果和预期结果 self.assertEqual(result, "http://zhidao.baidu.com/question/147041701.html?fr=iks&word=selenium&ie=gbk") ''' 点击好123按钮,并判断打开的页面URL是否正确 ''' def test_baidu_hao123(self): self.baidu_flow.open_baidu() self.baidu_flow.click_baidu_hao123() self.baidu_flow.switch_handle() hao_url = self.baidu_flow.get_page_url() self.assertEqual(hao_url,"https://www.hao123.com/")

    使用 setUp与setUpClass,tearDown和tearDownClass来完成用例运行前的初始化工作,比如driver的初始化,页面的实例化等,以及最后的浏览器退出等

    本例中使用setUpClass,tearDownClass,则分别会在所有case运行前后各执行一遍。

    setUp(): 每个测试case运行之前运行
    tearDown(): 每个测试case运行完之后执行
    setUpClass(): 必须使用 @ classmethod装饰器, 所有case运行之前只运行一次
    tearDownClass(): 必须使用 @ classmethod装饰器, 所有case运行完之后只运行一次
  • 相关阅读:
    apache+mysql+php+phpmyadmin搭建
    Redis学习笔记(1)Redis安装和启动
    Zlib 引用中出现的问题
    约数
    AC自动机
    当我们说“一切皆对象”时,我们到底在说什么
    Google翻译,3个步骤灭绝人类
    Linux下Gcc生成和使用静态库和动态库详解(转)
    Java基础&笔试题
    SQL基础&笔试题
  • 原文地址:https://www.cnblogs.com/ronyjay/p/12987414.html
Copyright © 2011-2022 走看看