一天一个关于测试知识点,5分钟内讲解你最关心的软件测试问题,今天就接着来谈谈关于软件测试中的“如何有效使用unittest”。
本章主要内容:
● unittest介绍
● unittest组织测试用例
● unittest的断言语句
● unittest执行测试用例
● unittest结果报告输出
一、Unittest介绍
Unittest是xUnit系列框架中的一员,它是Python自带的单元测试框架。可以用于自动化测试。
提供用例组织与执行方法
提供丰富的断言方法
提供丰富的日志
二、unittest组织测试用例
1.Unittest库中的基本组件
unittest.TestCase(): 所有测试用例类继承的基本类,一个类只要继承了unittest中的TestCase类就是一个测试用例类,可以在此类中写测试用例。
unittest.TestSuite(): 用来创建测试套件,其中有一个addTest()方法可以将一个或多个测试用例添加到测试套件中,先添加的哪个方法就先运行哪个方法;
unittest.defaultTestLoader(): 通过该类下面的discover()方法可自动根据测试目录start_dir匹配查找测试用例模块, 并将查找到的测试用例组装到测试套件;
unittest.TextTestRunner(): 通过该类中的run()方法来运行suite所组装的测试用例;
2.unittest工作原理
3.TestCase类中的常用方法
▲ setUp():
用于测试用例执行前的初始化。如:可以在setUp中建立数据库连接并进行初始化。
▲ tearDown():
用于测试用例执行之后的善后工作,如:关闭数据库连接,关闭文件;
▲ assert*():
断言方法,相当于if-else里面的条件判断,在执行测试用例的过程中,最终用例是否执行通过,通过判断实际结果和预期结果是否一致决定的;
三、unittest的断言语句
1.Unittest的断言
2.unittest的运行
四、unittest执行测试用例
unittest执行测试代码
● pycharm运行
运行整个项目(文件以test开头) 整个目录整个测试文件整个测试类(类继承TestCase) 指定测试方法(满足测试方法要求)
● 命令行运行:
python -m unittest MODULE/CLASS/FUNCTION
python filename
五、unittest结果报告输出
1.unittest结果输出
● unittest自带文本形式输出
runner = unittest.TextTestRunner(stream=logfile,verbosity=2)
runner.run(suite)
● 第三方插件HTMLTestRunner
runner = HTMLTestRunner.HTMLTestRunner(stream=reportfile, title="自动化测试报告")
runner.run(suite)
● 第三方插件BeautifulReport
runner = BeautifulReport(suite)
runner.report(filename='test', description='测试报告-试用')
2.unittest运行示例
● 运行方式1:
suite = unittest.TestSuite():
suit.addTest(LoadTest('test_case_01'))
suit.addTest(LoadTest('test_case_02'))
runner = unittest.TextTestRunner()
● 运行方式2:
suite = unittest.TestSuite():
suite.addTest(unittest.makeSuite(FirstPage11))
runner = unittest.TextTestRunner(stream=logfile,verbosity=2)
runner.run(suite)
● 运行方式3:
suite = unittest.TestSuite()
discover = unittest.defaultTestLoader.discover("basic/", pattern='test*.py')
run = BeautifulReport(discover)
run.report(filename='test', description='测试报告-试用')