PlayWright(十四)- 前置和后置

发布时间 2023-07-10 17:40:56作者: 似小陈ya
上文中我们学习了Pytest的基本使用,那这篇我们来讲下Pytest的前置和后置
 

1、基本概念

抛出问题:前置和后置是什么意思呢,用户是什么?我们应该在什么时候用到呢?
 
先来讲,前置和后置是什么意思,前置表示在执行代码前先执行前置的内容,后置表示执行完全部的代码后,再执行后置的代码
 
有什么用处:比如说打开浏览器-搜索内容-关闭浏览器,这一条测试用例,我们就可以把打开浏览器放在前置里,关闭浏览器放在后置里,这样就不需要我们自己处理了
 
什么时候用到呢?
用例运行前,一些准备工作,初始化操作,执行完之后的清除数据操作,关闭通道操作,我们都可以用到前置和后置
 

2、基本使用

这里我们讲两个,一个是类级别的,一个是类里边函数级别的
  • 前置:setup
  • 后置:teardown
 

1、函数级别

"""
前置后置: 函数级别
"""
import pytest

class TestDemo:
    """函数级别用例"""

    # 说明: 特殊⽅法名写法固定, 没有代码提示, 需要⼿写!
    # 注意: 函数级别执⾏顺序:
    # 先 setup() -> 用例1 -> teardown() ⽅法, 再 setup() -> 用例2 -> teardown() ⽅法

    def setup(self):
        print('每个用例执行前都会先执行我')

    def teardown(self):
        print('每个用例执行后都会先执行我')

    def test_01(self):
        print('用例1')

    def test_02(self):
        print('用例2')

 

执行结果:
这里有两点,第一是我们写setup和teardown的时候是没有提示的,需要自己填写,第二点是执行顺序不是从上往下执行的,是按照setup() -> 用例1 -> teardown() ⽅法, 再 setup() -> 用例2 -> teardown() ⽅法
 

2、类级别

"""
特殊⽅法: 类级别
"""
import pytest

class TestDemo:
    """类级别用例"""

    # 说明: 特殊⽅法名写法固定, 没有代码提示, 需要⼿写!
    # 注意: 类级别执⾏顺序:
    # 先 setup_class() -> 测试⽅法1 -> 测试⽅法2 ->teardown_class() ⽅法

    def setup_class(self):
        print('在这个类前执行')

    def teardown_class(self):
        print('在这个类后执行')

    def test_01(self):
        print('用例1')

    def test_02(self):
        print('用例2')

 

执行结果:
 
这里我们的执行顺序是setup_class() -> 测试⽅法1 -> 测试⽅法2 ->teardown_class() ⽅法
 

3、函数级别和类级别混合使用

"""
特殊⽅法: 函数级别和类级别同时使⽤
"""
import pytest

class TestDemo:
    
    def setup_class(self):  # 1
        print('类执行前先执行我')

    def teardown_class(self):  # 2
        print('类执行后先执行我')

    def setup(self):  # 3
        print('方法函数前执行我')

    def teardown(self):  # 4
        print('方法函数后执行我')

    def test_01(self):  # 5
        print('用例1')

    def test_02(self):  # 6
        print('用例2')

 

大家猜一下执行顺序是什么样的呢
 
执行结果:
1 -> 3 -> 5 -> 4 -> 3-> 6 -> 4 -> 2
 
前置和后置内容是不是也很简单,至于其他的级别前置后置,等我们用到的时候再讲