unittest测试框架
单元测试框架的功能
Web自动化测试,也需要学习单元测试框架。
其实单元测试框架并非只是代码级别的测试,它还有以下功能:
-
提供用例组织与执行
当测试用例达到成百上千条时,大量的测试用例堆砌在一起,就产生里扩展性与维护性等问题,此时需要考虑用例的规范和组织问题。 -
提供丰富的断言方法
用例执行完之后都需要将实际结果与预期结果进行比较(断言),从而断定用例是否执行通过 -
提供丰富的日志
测试用例执行失败时能抛出清晰的失败原因,当所有用例执行完后能提供丰富的执行结果。
unittest基本概念
unittest单元测试框架是专门用来进行测试的框架
unittest单元测试框架的工作原理
Case
TestCase
一个 TestCase 的实例就是一个测试用例。
一般检查一组输入的响应(输出)是否符合预期,unittest 模块提供了 TestCase 类来帮助我们创建测试用例
Test fixture
代表了用例执行前的准备工作和用例执行之后的清理工作
一个完整的测试流程,包括测试前准备的环境的搭建(SetUp),执行测试代码(test),以及测试后环境的还原(tearDown)
Suite
TestSuite
多个测试用例集合在一起,就是 TestSuite,而且TestSuite也可以嵌套 TestSuite
经常被翻译成“测试套件”,也有人成为“测试套”,是测试用例或测试套件的集合,一般用来把需要一起执行的用例组合到一起
TestSuite 是用来加载TestCase到TestSuite中,其中有几个 LoadTestFrom_() 方法,就是从各个地方寻找 TestCase,创建它们的实例,然后 add 到 TestSuite 中,再返回一个TestSuite 实例
Loader
TestLoader
TestLoader 加载器,加载测试用例
runner
用来执行测试用例并输出测试结果的组件,可以是图形界面或命令行界面
TestRunner
TestRunner 运行器,运行用例、生成测试报告
unittest框架中自带 TextTestRunner方法运行测试套件中的测试用例,且生成测试报告,不过这种测试报告的内容比较单一