快活林资源网 Design By www.csstdc.com
1、前言
前面讲到unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量,但是有个弊端,比如打开浏览器操作,每次执行用例时候都会重新打开,这样就会浪费很多时间。
于是就想是不是可以只打开一次浏览器,执行完用例再关闭呢?这就需要用到装饰器(@classmethod)来解决了。
2、@classmethod 装饰器中的 setUpClass() 和 tearDownClass() 与 setUp() 和 tearDown() 的区别
- setUp():每个测试 case 运行之前运行
- tearDown():每个测试 case 运行完之后执行
- setUpClass():必须使用 @classmethod 装饰器, 所有 case 运行之前只运行一次
- @是修饰符,classmethod 是 python 里的类方法
- tearDownClass():必须使用 @classmethod 装饰器, 所有 case 运行完之后只运行一次
import unittest class Test(unittest.TestCase): @classmethod def setUpClass(cls) -> None: print("-----开始执行用例-----") def setUp(self) -> None: print("执行用例准备动作...") def test01(self): print("第一条用例正在执行...") def test02(self): print("第二条用例正在执行...") def tearDown(self) -> None: print("用例执行完结动作...") @classmethod def tearDownClass(cls) -> None: print("-----用例执行结束-----") if __name__ == '__main__': unittest.main() #执行结果如下: """ -----开始执行用例----- 执行用例准备动作... 第一条用例正在执行... 用例执行完结动作... 执行用例准备动作... 第二条用例正在执行... 用例执行完结动作... -----用例执行结束----- """
from selenium import webdriver import unittest from time import sleep class DymLogin(unittest.TestCase): @classmethod def setUpClass(cls) -> None: """ 所有的用例只需要执行一次打开浏览器操作 """ print("Test start...") cls.dr = webdriver.Chrome() cls.dr.get("http://www.duoyoumi.com/") cls.dr.implicitly_wait(10) cls.dr.maximize_window() cls.dr.find_element_by_class_name("login").click() sleep(1) @classmethod def tearDownClass(cls) -> None: sleep(2) cls.dr.quit() print("Test end...") def test_login01(self): """ 账号密码都为空 """ self.dr.find_element_by_name("loginName").clear() self.dr.find_element_by_name("loginPwd").clear() self.dr.find_element_by_xpath('//*[@id="loginForm"]/div/div/div/div[2]/div[1]/div[2]').click() #登录操作 TipsMsg = self.dr.find_element_by_class_name("promptLogin").text self.assertEqual(TipsMsg,"-请输入登录账号!",msg="Test_login01 login exception") def test_login02(self): """ 账号正确,密码为空 """ self.dr.find_element_by_name("loginName").clear() self.dr.find_element_by_name("loginPwd").clear() self.dr.find_element_by_name("loginName").send_keys("17779828887") self.dr.find_element_by_xpath('//*[@id="loginForm"]/div/div/div/div[2]/div[1]/div[2]').click() # 登录操作 TipsMsg = self.dr.find_element_by_class_name("promptLogin").text self.assertEqual(TipsMsg, "-请输入密码!", msg="Test_login02 login exception") def test_login03(self): """ 账号密码都正确 """ self.dr.find_element_by_name("loginName").clear() self.dr.find_element_by_name("loginPwd").clear() self.dr.find_element_by_name("loginName").send_keys("17779828887") self.dr.find_element_by_name("loginPwd").send_keys("zy295240") self.dr.find_element_by_xpath('//*[@id="loginForm"]/div/div/div/div[2]/div[1]/div[2]').click() #登录操作 sleep(2) TipsMsg = self.dr.find_element_by_css_selector("#w_nav_temp_1000 > div.fr.dl > a:nth-child(4)").text self.assertEqual(TipsMsg,"[退出]",msg="Test_login03 login exception") if __name__ == '__main__': unittest.main() #执行结果如下 """ Test start... ... Test end... ---------------------------------------------------------------------- Ran 3 tests in 25.253s OK """
3、通过装饰器跳过某条用例
添加装饰器(@unittest.skip(""))
import unittest class Test(unittest.TestCase): def setUp(self) -> None: print("---start---") def tearDown(self) -> None: print("---end---") def testbbb(self): print("case testbbb") @unittest.skip("testaaa 被跳过") def testaaa(self): print("case testaaa") if __name__ == '__main__': unittest.main() # 结果如下 s. ---------------------------------------------------------------------- Ran 2 tests in 0.000s OK (skipped=1) ---start--- case testbbb ---end---
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
快活林资源网 Design By www.csstdc.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
快活林资源网 Design By www.csstdc.com
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年12月24日
2024年12月24日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]