1.unittest简介
unittest是python自带的单元测试框架,不仅仅适用于单元测试,还可用于web端、appium、接口自动化测试用例的开发与执行。
2.unittest四大核心组件
1)TestCase: 测试用例类,用来定义用例函数
2)TestSuite: 测试套件,用于收集测试用例
3)TestRunner:测试用例运行类,用来执行测试用例,以测试套件为维度去执行
4)TestFixture:测试脚手架(前置和后置),前置放条件,后置进行清理工作
3.测试流程
1)先定义测试用例类,在测试用例类中写测试方法
2) 定义测试套件,收集测试用例类或文件中的测试方法,放到测试套件中
3)定义用例运行器,将收集好的测试套件放到用例运行器中执行,并收集测试结果
4)做好前置和后置
4.如何编写测试用例
1)导入unittest模块
2)定义一个测试用例类:类名必须以Test开头,并继承unittest.TestCase
3)添加setUp()、tearDown()函数,即测试夹具
4)定义测试方法:测试方法必须test开头,必须写在测试用例类里面
5) 框架执行入口 main方法: unittest.main(),会自动收集当前py文件的测试用例,然后执行
5.测试用例的内容
1)前置条件(如果没有可以不写),如:sql语句执行、数据库创建、工具类的实例化等
2)测试步骤(业务逻辑),数据替换、数据驱动等
3)测试结果断言,包括:相应结果断言、数据库数据断言
4)后置条件(如果没有可以不写),如:数据清理、数据库连接关闭等
6.前置和后置(测试夹具)
1)函数级别
setUp():前置,每个用例函数执行前,执行一次
tearDown():后置,每个用例函数执行后,执行一次
就像夹心饼干一样,前置后置相当于两片夹奶油的饼干,中间夹的奶油就相当于用例
代码示例:
运行结果:
2)类级别
setUpClass(cls):前置,当前用例类中所有测试用例执行前,执行一次
tearDownClass(cls):后置,当前用例类中所有测试用例执行后,执行一次
代码示例:
运行结果:
7.用例的收集方式
1)以为测试用例为维度
2)以测试类为维度
3)以模块为维度