unittest单元测试学习笔记(无涯python自动化测试实例)

一、基础介绍:
unittest是Python里的单元测试框架,提供了创建测试用例、测试套件和批量执行测试用例的方案。
Python安装好后,unittest可直接导入使用,它属于标准库
二、测试固件:
1.执行每个用例执行时,测试固件都执行。每次执行时,先执行SetUp,在执行用例,最后执行tearDown。建议应用,避免用例关联导致执行失败
import unittest
class UITest(unittest.TestCase):
def Setup(self):
self.driver=webdriver.Firefox()
self.driver.maximize_window()
self.driver.get(‘https://www.csdn.net/’)
#隐性等待,最多等待20秒
self.driver.implicitly_wait(20)
def tearDown(self):
self.driver.quit()
2.使用SetUpClass和tearDownClass,不管执行多少个用例,测试固件只执行一次。用时在方法上加装饰器@classmethod
import unittest
class UITest(unittest.TestCase):
@classmethod
def SetUpClass(cls):
self.driver = webdriver.Firefox()
self.driver.maximize_window()
self.driver.get(‘https://www.csdn.net/’)
@classmethod
def tearDownClass(cls):
self.driver.quit()
3.分离测试固件:将测试固件分离到init.py模块中,类名称为InitTest,测试类通过from init import InitTest引用。
from init import InitTest
class TestLogin(InitTest):
def…
三、测试执行
通过unittest模块中的main方法将测试模块转变为测试脚本。main使用uinttest.TestLoader类来查找和加载模块内的用例
verbosity的值表示测试结果信息的复杂度,0代表获取总的测试数及测试结果;默认1成功显示.失败显示F;2代表显示每个测试用例的详细信息
if name==‘main’:
unittest.main(verbosity=1)
一个测试类中,有很多测试用例时,想要单独执行某一用例,可用鼠标右键点击该用例名称后选择“Run”
四、构建测试套件
通过unittest模块中的TestSuite类表示,测试套件可以根据所测试的特性把测试用例组合在一起。
1.按添加顺序执行,通过addTest方法将用例按顺序添加到测试套件中后执行。
2.按测试类执行,makeSuite可以把测试用例类中所有的测试用例组成测试套件执行。
suit=unittest.TestSuite(unittest.makeSuite(类名))
3.加载测试类执行,使用TestLoader类加载测试类并将它们返回到TestSuit中。
suit=unittest.TestLoader().loadTestsFromTestCase(类名)
4.按测试模块执行,一个Python文件就是一个模块,一个模块可以有N个测试类,一个测试类可以有N个测试用例。
suit=unittest.TestLoader().loadTestsFromModule(文件/模块名)
五、测试断言
1.断言相等/不相等:(注意,值和类型都相等时断言成功)
assertEqual(a,b)>>a=b
assertNotEqual(a,b)>>a!=b
2.布尔断言真/假
assertTrue(x)
assertFalse(x)
3.断言在范围内
assertIn(a,b)>>a in b
assertNotIn(a,b)>>a not in b

你可能感兴趣的:(WebUI自动化测试)