• python selenium unittest Fixture(setUp/tearDown)笔记


    Fixture用途:

      1.做测试前后的初始化设置,如测试数据准备,链接数据库,打开浏览器等这些操作都可以使用fixture来实现

      2.测试用例的前置条件可以使用fixture实现

     

    Fixture使用:

    import unittest
    
    def setUpModule():
        print(">>>>>>>>>>测试模块开始<<<<<<<<<<")
    
    def tearDownModule():
        print(">>>>>>>>>>测试模块开始<<<<<<<<<<")
    
    
    class MyTest(unittest.TestCase):
        @classmethod
        def setUpClass(cls) -> None:
            print('✈✈✈✈测试类开始执行✈✈✈✈!')
    
        def setUp(self) -> None:
            print('♥❤♥❤测试方法开始执行♥❤♥❤!')
    
        def tearDown(self) -> None:
            print('♥❤♥❤测试方法执行完毕♥❤♥❤!')
    
        @classmethod
        def tearDownClass(cls) -> None:
            print('✈✈✈✈测试类执行完毕✈✈✈✈!')
    
        def test_case1(self):
            print("test_case1")
    
        def test_case2(self):
            print("test_case2")
    
    if __name__ == '__main__':
        unittest.main()
    >>>>>>>>>>测试模块开始<<<<<<<<<<
    ✈✈✈✈测试类开始执行✈✈✈✈!
    ♥❤♥❤测试方法开始执行♥❤♥❤!
    test_case1
    ♥❤♥❤测试方法执行完毕♥❤♥❤!
    ♥❤♥❤测试方法开始执行♥❤♥❤!
    test_case2
    ♥❤♥❤测试方法执行完毕♥❤♥❤!
    ✈✈✈✈测试类执行完毕✈✈✈✈!
    >>>>>>>>>>测试模块开始<<<<<<<<<<在模块的开始于结束时被执行
    • setUpModule/tearDownModule:在整个模块的开始于结束时被执行
    • setUpClass/tearDownClass:在测试类的开始于结束时被执行
    • setUp/tearDown:在测试用例的开始于结束时被执行

      值得注意的是setUpClass/tearDownClass为类方法,需要通过@classmethod进行装饰。另外方法的参数为cls,cls与self并没有什么本质区别,都只表示方法的第一个参数

    封装:

    import unittest
    import warnings
    from common.base_page import BasePage
    from common.browser import Browser
    from common.config_utils import local_config
    from common.log_utils import logger
    
    
    class SeleniumBaseCase(unittest.TestCase):
        @classmethod
        def setUpClass(cls) -> None:
            logger.info('')
            logger.info('✈✈✈✈测试类开始执行✈✈✈✈!')
            warnings.simplefilter('ignore', ResourceWarning)
            cls.url = local_config.test_url
    
        def setUp(self) -> None:
            logger.info('♥❤♥❤测试方法开始执行♥❤♥❤!')
            self.base_page = BasePage(Browser().get_driver())
            self.base_page.set_driver() # 封装了代码的隐式等待与浏览器最大化
    
        def tearDown(self) -> None:
            logger.info('♥❤♥❤测试方法执行完毕♥❤♥❤!')
            self.base_page.quit_browser()
    
        @classmethod
        def tearDownClass(cls) -> None:
            logger.info('✈✈✈✈测试类执行完毕✈✈✈✈!')
  • 相关阅读:
    France '98
    【笔记】《通俗详细地讲解什么是P和NP问题》的概念记录
    130831组队赛-Regionals 2011, Asia
    Android 解屏幕锁与点亮屏幕
    Android 点亮屏幕
    利用FFT 计算生成离散解析信号
    hdu5246 超级赛亚ACMer
    用srvctl命令配置service
    MySQL优化之——权限管理
    JS 点击复制Copy插件--Zero Clipboard
  • 原文地址:https://www.cnblogs.com/ClownAlin/p/12864361.html
Copyright © 2020-2023  润新知