本文主要是介绍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 timeclass Test(unittest.TestCase):@classmethoddef setUpClass(cls):print("start!")
#初始化环境 开始执行脚本@classmethoddef 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
长按下方二维码进行关注
点一下好看再走吧
这篇关于UI自动化unittest框架之装饰器@classmethod的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!