PlayWright(十四)- 前置和后置
上文中我们学习了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
前置和后置内容是不是也很简单,至于其他的级别前置后置,等我们用到的时候再讲