文章目录
- 学习目标
- 一、UnitTest框架
- 1.1 什么是框架
- 1.2 什么是UnitTest框架
- 1.3 为什么使用UnitTest框架
- 1.4 UnitTest核心要素
- 二、TestCase
- 2.1 案例
- 2.2 定义测试用例
- 2.3执行测试用例
- 三、TestSuite
- 四、TextTestRunner
- 五、TestLoader
- 5.1 TestLoader与TestSuite区别
- 总结
学习目标
我们web自动化的内容,一共分为七个模块。今天开始第三章的学习,UnitTest框架相关内容。如果你们还想回顾功能测试等等相关内容欢迎关注上方专栏!!!
本文学习目标:
掌握UnitTest框架的基本使用方法
一、UnitTest框架
1.1 什么是框架
说明:
- 框架英文单词framework
- 为解决一类事情的功能集合
1.2 什么是UnitTest框架
概念:UnitTest是Python自带的一个单元测试框架,用它来做单元测试。
1.3 为什么使用UnitTest框架
1.能够组织多个用例去执行
2.提供丰富的断言方法
3.能够生成测试报告
1.4 UnitTest核心要素
1.TestCase
2.TestSuite
3.TestRunner
4.TestLoader
5.Fixture
二、TestCase
说明:TestCase就是测试用例
2.1 案例
定义一个实现加法操作的函数,并对该函数进行测试
2.2 定义测试用例
1.导包:import unittest
2.定义测试类:新建测试类必须继承unittest.TestCase
3.定义测试方法:测试方法名称命名必须以test开头
2.3执行测试用例
方式一:
使用pycharm在代码上点击鼠标右键,选择使用UnitTest运行方式二:
调用 unittest.main() 来运行
思考:如何同时运行多个测试用例?
三、TestSuite
说明:(翻译:测试套件)多条测试用例集合在一起,就是一个TestSuite 使用:
1.实例化: suite = unittest.TestSuite()
(suite:为TestSuite实例化的名称)
2.添加用例:suite.addTest(ClassName(“MethodName”)) (ClassName:为类名;MethodName:为方法名)
3.添加扩展:suite.addTest(unittest.makeSuite(ClassName))
(搜索指定ClassName内test开头的方法并添加到测试套件中)
提示:TestSuite需要配合TestRunner才能被执行
四、TextTestRunner
说明:TextTestRunner是用来执行测试用例和测试套件的使用:
1.实例化: runner = unittest.TextTestRunner()
2.执行: runner.run(suite) # suite:为测试套件名称
需求:
将test01.py…test10.py共10条用例,将这10条用例批量执行;
问题:
1.使用suite.addtest(unittest.makeSuite(className))导入10条测试类
2…addtest()需要添加10次
五、TestLoader
说明:
用来加载TestCase到TestSuite中,即加载满足条件的测试用例,并把测试用例封装成测试套件。
使用unittest.TestLoader,通过该类下面的discover()方法自动搜索指定目录下指定开头的.py文件
,
并将查找到的测试用例组装到测试套件;
用法:
suite = unittest.TestLoader().discover(test_dir, pattern=‘test*.py’) 自动搜索指定目录下指定开头的.py文件,并将查找到的测试用例组装到测试套件test_dir: 为指定的测试用例的目录
pattern:为查找的.py文件的格式,默认为’test*.py’
也可以使用unittest.defaultTestLoader 代替 unittest.TestLoader()
运行:
runner = unittest.TextTestRunner() runner.run(suite)
5.1 TestLoader与TestSuite区别
1.TestSuite需要手动添加测试用例(可以添加测试类,也可以添加测试类中某个测试方法)
2.TestLoader搜索指定目录下指定开头.py文件,并添加测试类中的所有的测试方法,不能指定添加测试方法;
总结
1.UnitTest框架的作用?
2.如何定义测试用例?
3.如何执行测试用例?
4.如何使用TestSuite?
5.如何运行TestSuite?
6.如何使用TestLoader?
7.TestLoader与TestSuite的区别?