一、unittest框架介绍:
- unittest框架是python中的一个单元测试框架,该模块包括许多的类如 TestCase 类、TestSuite 类、TextTestRunner 类、TestResult 类、TestLoader 类
- TestCase类(测试用例): 所有测试用例的基类,它是软件测试中最基本的组成单元;一个测试用例包含一个完成的流程,包括 setUp() 表示初始化用例,tearDown() 表示还原测试场景
- TestSuite类(测试套件):多个测试用例 testcase 集合就是 TestSuite,在自动化中往往一个场景需要编写一个或者多个测试用例,那么就需要把这些多个用例一起执行,这时候需要把用例收集起来,就可以通过 TestSuite 来处理,可以把 TestSuite 当成一个用例容器,而在 TestSuite 中就有 addTest() 和 addTests() 方法可以将用例添加到这个容器里面形成一个套件
- TestLoader类:该类帮我们搜索所有 test 开头的测试用例并将搜索到的方法用 TestSuite 收集起来所以使用 unittest 框架编写测试用例的时候用例命名必须用 test 打
- TestTextRunner类:是用来执行测试用例的,其中的 run(test) 用来执行,run(test) 方法不仅可以用来执行 TestCase 还可以用来执行 TestSuite
- TestResult类:用来处理测试用例或测试集执行过程中的所有信息并最终输出,比如代码错误、异常、断言失败等等
二、unittest框架原理:
- 一个py文件里面有多个测试用例(testcase),通过 TestLoader 方法或者 addTest() 方法加入到 TestSuite 套件容器中。然后通过 TestTextRunner 方法来执行测试用例,执行后然后,生成的测试结果自动保存在 TestResult 中
三、框架的作用
- 随着用例的增加,我们就要考虑用例的编写的规范和组织,以便后续的维护,同时对后续用例执行完成生成报告的,这时我们就需要用到 unittest 框架进行用例管理
四、框架编写用例的结构:后续使用框架来执行用例,那么在用例命名时都要以test打头如:test_case,结尾也一样
- 框架中用例执行顺序:
- setUpClass() --> setUp() --> testcases --> tearDown() --> tearDownClass()
- setUpClass() 和 tearDownClass():类方法在整个执行过程中只会在开始和结束执行一次
- setUp() 和 tearDown():实例方法会在每条用例开始和结束执行依次
- unittest 中的主函数 main() 执行用例时顺序以 ascii 表的顺序来执行的: 0-9,A-Z,a-z
- setUpClass() --> setUp() --> testcases --> tearDown() --> tearDownClass()