一、unittest框架4大核心组件
unittest 是python自带的单元测试框架,无需安装。
1、TestCase: 写测试用例
2、TestSuite: 收集测试用例
3、TestRunner: 执行测试用例
4、TestFixture: 测试脚手架,前置条件,后置清理,根据实际情况选择使用
二、unittest工作流程
1、使用TestCase 按照规则写测试用例,每一个函数为一个测试用例
2、TestSuite:创建一个测试套件,收集测试用例到测试套件
3、TestRunner 统一执行测试套件里面的用例
4、生成测试报告
三、测试用例编写
1、导入模块unittest
2、创建一个测试类,继承unittest.TestCase
2.1、测试用例必须写在测试类里面
3、测试用例以test开头
4、执行入口:unittest.main()
5、测试用例包含哪些东西
1、前置条件【token、session】
1、函数级别:setup、tearDown
2、类级别:setUpClass、tearDownClass
2、测试步骤:ddt+接口请求+提取全局变量
3、测试断言:利用unittest框架自带的断言
4、日志收集:还原整个测试过程
5、后置清理:是否要清理掉测试数据,删除测试,关闭各种文件的连接,关闭数据库连接
6、用例执行顺序
6.1、按照测试用例名称的Ascii码大小来执行
chr(): Ascii --- 字符
ord(): 字符 --- Ascii
6.2、执行顺序
类级别前置---函数级别前置---测试用例---函数级别后置---类级别后置
四、测试用例收集与执行
1、创建测试套件
suite = unittest.TestSuite()
测试用例为维度
2、添加测试用例到测试套件【不用】
suite.addTest(TestDemo('test_01'))
2.1、添加多个测试用例到测试套件【不用】
case_list = [TestDemo('test_01'),TestDemo('test_03')]
测试类为维度
suite.addTests(tests=case_list)
2.2、添加整个测试类【不用】
suite.addTest(unittest.makeSuite(TestDemo))
suite.addTest(unittest.makeSuite(TestDemo))
2.3、添加整个测试类【了解】
suite = unittest.TestLoader().loadTestsFromTestCase(TestDemo)
测试文件为维度
3、收集指定目录下测试文件的测试用例
dir_path = os.path.dirname(__file__)
suite = unittest.defaultTestLoader.discover(start_dir=dir_path)
start_dir: 测试用例目录
pattern='test*.py'
运行测试用例
runner = unittest.TextTestRunner()
runner.run(suite)
五、测试报告
1、TextTestRunner()自带的测试报告,不好看,无法识别,没有执行过程【不用】
2、HTMLTestRunner:不要看【不用】
3、BeautifulReport:第三方的库,还可以,推荐使用
4、unittestreport: 木森写的