UI自动化unittest框架之装饰器@classmethod

12/3

March 12th

星期一

Monday

01

进入正文探讨

前言:unittest框架大家应该很熟悉,unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量,但是有个弊端,就是我们每执行一条用例,就会打开一次浏览器;缺点:操作繁琐、耗时长、易报错。

于是就想是不是可以只打开一次浏览器,执行完所有用例再关闭呢?

这就需要用到装饰器(@classmethod)来解决了。

一.装饰器

1>用setUp与setUpClass区别

  • setup():每个测试case运行前运行

  • teardown():每个测试case运行完后执行

  • setUpClass():必须使用@classmethod 装饰器,所有case运行前只运行一次

  • tearDownClass():必须使用@classmethod装饰器,所有case运行完后只运行一次

2>@是修饰符,classmethod是python里的类方法

二.selenium实例模型

1>可以把打开浏览器操作放到前置setUpClass(cls)里,这样就可以实现打开一次浏览器,执行多个case了

# coding:utf-8
import unittest
import time

class Test(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        print("start!")
#初始化环境 开始执行脚本
    @classmethod
    def tearDownClass(cls):
        time.sleep(1)
        print("end!")
#结束
    def test01(self):
        print(u"执行测试用例01")
#开始执行测试用例...
    def test03(self):
       print(u"执行测试用例03")

    def test02(self):
        print(u"执行测试用例02")

    def addtest(self):
        print(u"add方法")

if __name__ == "__main__":
  unittest.main()

2>从执行结果可以看出,前置和后置在执行用例前只执行了一次。

通过装饰器后,我们执行的耗时就缩短,执行一次即可跑完测试用例

初学者们,看到这里你们明白了吗?欢迎留言给出建议:) 

文部分来源网络,如有侵权请第一时间联系删除。

02

猛戳下方好文

欢迎投稿与推荐

 来了老弟--Python300本电子书免费送

 Python就业指导

 我的第一次埋点功能测试

 资深测试老司机经验总结:什么才是软件测试工程师的正常心态?

03

主人简介背锅侠Tester

各项技术文档推送学习爬虫/jmeter/python/git/linux/selenium/linux/appscan/经营性书籍...

04

长按下方二维码进行关注

点一下好看再走吧

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值