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('✈✈✈✈测试类执行完毕✈✈✈✈!')
原文地址:https://www.cnblogs.com/ClownAlin/p/12864361.html