zoukankan      html  css  js  c++  java
  • 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('✈✈✈✈测试类执行完毕✈✈✈✈!')
  • 相关阅读:
    asp.net core 3.1 入口:Program.cs中的Main函数
    vue手机发送验证码倒计时
    阿里云短信服务-短信发送验证码
    前端思维图
    正向代理和反向代理
    lombok+Logback统一异常和日志处理
    java统一结果返回(链式编程结果)
    SpringBoot简介和特点
    web如何测试?
    CSS字体样式属性
  • 原文地址:https://www.cnblogs.com/ClownAlin/p/12864361.html
Copyright © 2011-2022 走看看