unittest集成测试

123 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情

随着软件技术的发展,UI自动化测试的应用率也逐渐占据软件测试市场的半壁江山,并且在之后的的时间中,UI自动化的占有率只会越来越高,因为它能节省我们做手工测试的大部分时间,虽然新功能方面可能还是需要认为手工的去测试,但是回归测试是一个很重要的方面,他比较占用我们的时间,但是UI自动化搭建应用起来后,这方面的问题就迎刃而解了。
下面就是有关unittest用例管理框架的基本应用: 1.TestCase:一个TestCase实例就是一个测试用例 TestSuite:多个测试用例集合在一起 TestLoader:是用来加载TestCase到TestSuite中的 TextTestRunner:执行测试用例 2.fixture:测试用例环境的搭建和销毁,它可以跨文件共享 测试前环境的搭建(setUp),执行测试代码(run)以及测试后环境的还原(tearDown)

3.自动化用例编写 3.1 TestCase类编写测试用例 class 类名称(unittest.TestCase): ... 3.2 unittest常用断言: assertEqual(预期结果,实际结果,msg=None) #判断预期结果和实际结果是否相同 assertnotEqual(a,b,msg=None) assertTrue(expr,msg=None) #判断表达式expr是否为真 assertFalse(expr,msg=None) assertIsNone(obj,msg=None) #判断obj对象为空 assertIsNotNone(obj,msg=None) assertIn(a,b) #判断a是否包含在b中 assertnotIn(a,b)

4.测试集合&执行测试用例 4.1 addTest()方法装载测试用例 ①创建一个用例集合装载测试用例 suite = unittest.TestSuit() ②依次装载用例 suite.addTest(TestCase类名(''方法函数'')) ③创建一个TextTestRunner对象并执行测试集合 runner = unittest.TextTestRunner() runner.run(suite) 4.2 一次性装载多条用例可以用列表装载测试用例 4.3 通过TestLoader装载测试用例 ①... ②loader = unittest.TestLoader() suite.addTest(loader.loadTestsFromTestCase(TestCase类名)) ③... 4.4 通过模块添加用例 ①... ②loader = unittest.TestLoader() suite.addTest(loader.loadTestsFromModule(文件名)) ③...

5.生成测试报告 text类型报告: with open('报告文件名','w') as f: runner = unittest.TextTestRunner(f) runner.run(suite) html类型报告: #from BeautifulReport import BeautifulReport result = BeautifulReport(test_suit) result.report(filename='',description='')

6.unittest代码优化: 7.ddt数据驱动