一、Fixture装置函数
说明:Fixture是一个概述,对一个测试用例环境的初始化和销毁就是一个Fixture
二、Fixture控制级别:
1、函数级别<常用>
def setUp()/def tearDown()
特性:几个测试函数,执行几次。每个测试函数执行之前都会执行setUp,执行之后都会执行tearDown
2、类级别<常用>
def setUpClass()/def tearDownClass()
特性:测试类运行之前运行一次setUpClass,类运行之后执行一次tearDownClass
注意:类方法必须使用@classmethod修饰
3、模块级别
def setUpModule()/def tearDownModule()
特殊:模块运行之前执行一次setUpModule,运行之后执行一次tearDownModule
提示:无论使用函数级别,还是类级别,最后常用场景为:
def setUpModule():
1、获取浏览器实例化对象
2、最大化浏览器
3、隐式等待
def tearDownModule():
关闭浏览器驱动对象
三、Fixture用法
Fixture其实就是两个函数,这个函数可以一起使用,也可以单独使用
1、初始化函数:def setUp()
2、结束函数:def tearDown()
四、案例演示
1、函数级别执行代码:
import unittestdef add(x,y):return x+yclass Test_add(unittest.TestCase):# 函数级别def setUp(self):print("我会执行setUp")def tearDown(self):print("我会执行tearDown")def test_add01(self):print("执行了测试用例:test_add01")result = add(3,5)print(result)def test_add02(self):print("执行了测试用例:test_add02")result = add(4, 5)print(result)def test_add03(self):print("执行了测试用例:test_add03")result = add(4, 7)print(result)def test_add04(self):print("执行了测试用例:test_add04")result = add(6, 7)print(result)if __name__ == "__main__":Test_add.main()
执行结果:
我会执行setUp
执行了测试用例:test_add01
8
我会执行tearDownRan 4 tests in 0.035sOK
我会执行setUp
执行了测试用例:test_add02
9
我会执行tearDown
我会执行setUp
执行了测试用例:test_add03
11
我会执行tearDown
我会执行setUp
执行了测试用例:test_add04
13
我会执行tearDown
2、类级别执行代码:
import unittestdef add(x,y):return x+yclass Test_add1(unittest.TestCase):@classmethoddef setUpClass(cls):print("我会执行setUpClass")@classmethoddef tearDownClass(cls):print("我会执行tearDownClass")def test_add101(self):print("执行了测试用例:test_add101")result = add(3,5)print(result)def test_add102(self):print("执行了测试用例:test_add102")result = add(4, 5)print(result)def test_add103(self):print("执行了测试用例:test_add103")result = add(4, 7)print(result)def test_add104(self):print("执行了测试用例:test_add104")result = add(6, 7)print(result)if __name__ == "__main__":Test_add1.main()
执行结果:
我会执行setUpClass
执行了测试用例:test_add101
8
执行了测试用例:test_add102
9
执行了测试用例:test_add103
11
执行了测试用例:test_add104
13
我会执行tearDownClass
3、模块级别:
import unittestdef add(x,y):return x+y
def setUpModule():print("我会执行setUpModel")
def tearDownModule():print("我会执行tearDownModel")class Test_add2(unittest.TestCase):def test_add201(self):print("执行了测试用例:test_add201")result = add(3,5)print(result)def test_add202(self):print("执行了测试用例:test_add202")result = add(4, 5)print(result)def test_add203(self):print("执行了测试用例:test_add203")result = add(4, 7)print(result)def test_add204(self):print("执行了测试用例:test_add204")result = add(6, 7)print(result)if __name__ == "__main__":Test_add2.main()
执行结果:
我会执行setUpModel
执行了测试用例:test_add201
8
执行了测试用例:test_add202
9
执行了测试用例:test_add203
11Ran 4 tests in 0.016sOK
执行了测试用例:test_add204
13
我会执行tearDownModel
作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。