一、TestFixtrue
1、TestFixture简介
TestFixture用在测试方法前,或者测试方法后,主要功能是提供一些测试需要用的装置,这些装置可以是数据,可以是环境配置也可以是一个运行前状态。
2、TestFixture分类
(1)setup(), teardown()的方式,分别在每个测试方法执行前后执行。
(2)setUpClass(), tearDownClass()的方式,分别在每个测试类执行前后执行, setUpClass()和tearDownClass()只会执行一次,即使这个测试类有多个测试函数。
(3)setUpModule :整个模块开始前执行,tearDownModule:整个模块结束时执行。
setUpClass/tearDownClass 为类方法,需要通过@classmethod 进行装饰,另外方法的参数为cls,cls和self没有本质上的区别,都只表示方法的第一个参数
3、实例
import unittest
# 整个模块开始前执行
def setUpModule():print("模块级别开始test module start")
# 整个模块结束时执行
def tearDownModule():print("模块级别结束test module end")class MyTest(unittest.TestCase):# 测试用例类开始前执行@classmethoddef setUpClass(cls) :print("类级别开始 test class start" )# 测试用例类结束时执行@classmethoddef tearDownClass(cls) :print("类级别结束 test class end")# 测试用例开始前执行(以一条测试用例为单位)def setUp(self) -> None:print("用例级别开始 test case start")# 测试用例结束时执行(以一条测试用例为单位)def tearDown(self) -> None:print("用例级别结束 test case end")def test_case1(self):print("用例 test case1")def test_case2(self):print("用例 test case2")if __name__ == '__main__':unittest.main()
->None :建议函数返回None。
二、测试框架
1、自动化测试的设计模式
(1)PMO设计模式
基础封装层
页面对象层
测试用例层
(2)关键字驱动模式
关键字封装
2、公共的封装层
(1)夹具的封装;
(2)selenium二次封装;
(3)ini和yaml全局配置文件封装;
(4)excel、csv文件的读写封装;
(5)数据库操作封装;
(6)调用外部的第三方库封装;
3、数据层
(1)excel数据驱动
(2)csv数据驱动
(3)yaml数据驱动
(4)数据库数据驱动
4、文件层:
(1)HTML报告文件;
(2)log日志文件;
(3)全局配置文件;
(4)错误截图文件;
(5)邮件附件文件;
(6)接口关联文件;
三、忽略测试用例
不需要的测试用例
import unittestclass MyTest(unittest.TestCase):a = 18@unittest.skip('无条件忽略')def test_case1(self):print("用例 test case1")@unittest.skipIf(a >= 16,"条件为true忽略")def test_case2(self):print("用例 test case2")@unittest.skipUnless(a >= 20, "条件为false忽略")def test_case3(self):print("用例 test case3")if __name__ == '__main__':unittest.main()
输出结果:
参考文献:
【1】测试框架实践--TestFixture_疯狂的程序员丶的博客-CSDN博客_fixture test