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('✈✈✈✈测试类执行完毕✈✈✈✈!')
  • 相关阅读:
    网站备份list
    vnc checklist
    appnode iptables 规则后面覆盖前面的
    Appnode + Discuz checklist
    解决WORD文档无法显示链接的图像问题
    应用容器Application container
    要研究的内容
    转 Flex MXML编译成AS类
    Flex文件结构
    int a
  • 原文地址:https://www.cnblogs.com/ClownAlin/p/12864361.html
Copyright © 2011-2022 走看看