博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
unittest详解(五) 引入装饰器@classmethod
阅读量:5922 次
发布时间:2019-06-19

本文共 3862 字,大约阅读时间需要 12 分钟。

我们知道setUp()和setDown()的作用是在每条测试用例执行前准备测试环境以及用例测试结束后恢复测试环境,如果我们执行的测试类下所有测试用例的环境准备和环境复原的操作都是一样的,那么我们就没必要每条测试用例执行前都执行一次setUp()和setDown()的操作。在运行测试类前只执行一次环境的准备,测试类运行结束后只执行一次环境复原的操作,这时我们就可以引入装饰器@classmethod

代码:

# coding = utf-8import unittestimport warningsfrom selenium import webdriverfrom time import sleep# 驱动文件路径driverfile_path = r'D:\coship\Test_Framework\drivers\IEDriverServer.exe'class CmsLoginTest(unittest.TestCase):    @classmethod    def setUpClass(cls):        print("test start!")        # 这行代码的作用是忽略一些告警打印        warnings.simplefilter("ignore", ResourceWarning)        cls.driver = webdriver.Ie(executable_path=driverfile_path)        cls.driver.get("http://172.21.13.83:28080/")    @classmethod    def tearDownClass(cls):        cls.driver.quit()        print("test end!")    def test_login1(self):        '''用户名、密码为空'''        self.driver.find_element_by_css_selector("[name='admin.loginName']").clear()        self.driver.find_element_by_css_selector("[name='admin.password']").clear()        self.driver.find_element_by_css_selector("#imageField").click()        error_message1 = self.driver.find_element_by_css_selector("[for='loginName']").text        error_message2 = self.driver.find_element_by_css_selector("[for='textfield']").text        self.assertEqual(error_message1, '用户名不能为空')        self.assertEqual(error_message2, '密码不能为空')    def test_login2(self):        '''用户名正确,密码错误'''        self.driver.find_element_by_css_selector("[name='admin.loginName']").clear()        self.driver.find_element_by_css_selector("[name='admin.password']").clear()        self.driver.find_element_by_css_selector("[name='admin.loginName']").send_keys("autotest")        self.driver.find_element_by_css_selector("[name='admin.password']").send_keys("123456")        self.driver.find_element_by_css_selector("#imageField").click()        error_message = self.driver.find_element_by_css_selector(".errorMessage").text        self.assertEqual(error_message, '密码错误,请重新输入!')    def test_login3(self):        '''用户名不存在'''        self.driver.find_element_by_css_selector("[name='admin.loginName']").clear()        self.driver.find_element_by_css_selector("[name='admin.password']").clear()        self.driver.find_element_by_css_selector("[name='admin.loginName']").send_keys("test007")        self.driver.find_element_by_css_selector("[name='admin.password']").send_keys("123456")        self.driver.find_element_by_css_selector("#imageField").click()        error_message = self.driver.find_element_by_css_selector(".errorMessage").text        self.assertEqual(error_message, '用户不存在!')    def test_login4(self):        '''用户名、密码正确'''        self.driver.find_element_by_css_selector("[name='admin.loginName']").clear()        self.driver.find_element_by_css_selector("[name='admin.password']").clear()        self.driver.find_element_by_css_selector("[name='admin.loginName']").send_keys("autotest")        self.driver.find_element_by_css_selector("[name='admin.password']").send_keys("111111")        self.driver.find_element_by_css_selector("#imageField").click()        sleep(1)        self.driver.switch_to.frame("topFrame")        username = self.driver.find_element_by_css_selector("#nav_top>ul>li>a").text        self.assertEqual(username,"autotest")if __name__ == "__main__":    unittest.main(verbosity=2)

执行结果:

"C:\Program Files\Python36\python.exe" D:/Git/Test_Framework/test_case/test_cmslogin.pytest start!test_login1 (__main__.CmsLoginTest)用户名、密码为空 ... oktest_login2 (__main__.CmsLoginTest)用户名正确,密码错误 ... oktest_login3 (__main__.CmsLoginTest)用户名不存在 ... oktest_login4 (__main__.CmsLoginTest)用户名、密码正确 ... oktest end!----------------------------------------------------------------------Ran 4 tests in 22.462sOKProcess finished with exit code 0

从执行结果中可以看到,整个测试类的运行过程中,只执行了一次setUpClass()和tearDownClass()

转载于:https://www.cnblogs.com/eastonliu/p/9146279.html

你可能感兴趣的文章
转载:python异常之 GeneratorExit
查看>>
Avogadro
查看>>
[HDU1890]RoboticSort
查看>>
升学——妹妹小鱼儿升学所让我想到的
查看>>
怎样面试产品经理
查看>>
bootstrap 对话框调用 iframe
查看>>
grep, sed 与 awk 补补课,到底怎么用!
查看>>
关于sql注入
查看>>
python笔记(四)文件操作和函数
查看>>
JavaScript异常处理和事件处理
查看>>
SQL Server笔记
查看>>
使用ModelForm表单验证
查看>>
HOW TO REPLACE ALL OCCURRENCES OF A CHARACTER IN A STD::STRING
查看>>
.net知识系列之六:(ADO.NET相关知识)
查看>>
linux系统程序设计教程
查看>>
学生选课数据库SQL语句练习题
查看>>
借教室 差分+二分答案
查看>>
教主的花园 dp
查看>>
C# 结构体和类的区别
查看>>
CSS解决文字超出显示省略号问题
查看>>