python+selenium自动化测试-23setUp()和tearDown()及setUpClass()和tearDownClass()的配对使用

① setUp():每个测试函数运行前运行
② tearDown():每个测试函数运行完后执行
③ setUpClass():必须使用@classmethod 装饰器,所有test运行前运行一次
④ tearDownClass():必须使用@classmethod装饰器,所有test运行完后运行一次

由上可见,setUp()相当于测试用例的前置条件,tearDown()相当于测试用例的执行后对数据及环境的后期处理。

1、setUpClass()和tearDownClass()

import unittest
class TestDemo(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        print("setupclass")

    def test_A(self):
        print("test_A")

    def test_a(self):
        print("test_a")

    def test_2(self):
        print("test_2")

    def gest_3(self):#故意将test写成gest,看是否会被执行
        print("gest_3")

    @classmethod
    def tearDownClass(cls):
        print("teardownclass")

if __name__ == '__main__':
        unittest.main()
运行结果:
...
---------------------------------------------------------------
Ran 3 tests in 0.000s

OK
setupclass
test_2
test_A
test_a
teardownclass

Process finished with exit code 0

2、setUp()和tearDown()

import unittest
class TestDemo(unittest.TestCase):
    def setUp(self):
        print("setUp")

    def test_A(self):
        print("test_A")

    def test_a(self):
        print("test_a")

    def test_2(self):
        print("test_2")

    def gest_3(self):#故意将test写成gest,看是否会被执行
        print("gest_3")

    def tearDown(self):
        print("tearDown")

if __name__ == '__main__':
        unittest.main()
运行结果:
...
---------------------------------------------------------------
Ran 3 tests in 0.000s

OK
setUp
test_2
tearDown
setUp
test_A
tearDown
setUp
test_a
tearDown

Process finished with exit code 0

从上面两个示例可以看到,每运行一个用例,都会执行一次setUp()和tearDown()方法;而执行所有用例,setUpClass()和tearDownClass()只需要执行一次。不难看出,后者配对使用最大的优势是节省测试时间,主要体现在两个方面:(1)不需要反复地打开浏览器操作(2)只需要建立一次数据库连接,并进行清理。

值得注意的是:在setUpClass()和tearDownClass()时,千万不要忽略了用例直接的相互影响,要充分考虑到用例之间的耦合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值