Unittest框架基础
更多学习资料点击 ->>>>> 点击这里查看
- 四大核心要素
- Test Case(测试用例):一个测试用例是在unittest中执行测试的最小单元。unittest提供了一个名称为TestCase的基础类,可以用来创建测试用例,一条case就是一条用例。
- Test Suite(测试套件):一个测试套件是多个测试或测试用例的集合,是针对被测程序的对应的功能和模块创建的一组测试,一个测试套件内的测试用例将一起执行。
- Test Runner(测试执行器):测试执行器负责测试执行调度并且生成测试结果给用户。测试执行器可以使用图形界面、文本界面或者特定的返回值来展示测试执行结果。
- Test Fixture(测试夹具):通过使用测试夹具,可以定义在单个或多个测试执行之前的准备工作和测试执行之后的清理工作。
- TestFixture测试夹具
- setUp和tearDown的使用:
- 初始化操作:def setUp(self) -> 开始执行
- 销毁操作:def tearDown(self) -> 结束操作
说明:
- 以上两个方法都继承TestCase类
- setUp方法中做每条用例开始执行之前的操作,例如打开浏览器、登录等;
- tearDown方法中做每条用例结束之后的操作,例如关闭浏览器、退出登录、清除日志句柄等;
- 以上两种方法每次都在每条test用例前执行。
- setUpClass和tearDownClass的使用:
1、初始化操作:def setUpClass(self) -> 开始执行
2、销毁操作:def tearDownClass(self) -> 结束操作
说明:
- 区别于上面两个方法的是setUpClass和tearDownClass方法在一个测试类中只执行一次
- 使用这两个方法必须加classmethod装饰器
- Test Case测试用例
使用:导入unittest包 -> 创建测试类继承unittest.TestCase类
说明:
- 自动化测试中每条用例都是一个完成的流程
- 测试方法命名必须以test开头,因为TestCase批量运行测试用例的时候搜索以test开头的方法否则检索不到测试用例
- TestSuite测试套件
- addTest方法使用:
- 实例化Suite类,suite = unittest.TestSuite()
- 添加用例,suite.addTest(ClassName(MethodName))
说明:
- 一次只能添加一条用例,添加多个需多次添加
- addTests方法使用:
- suite.addTest([ClassName(MethodName),ClassName(MethodName)])
说明:
- 该方法一次可以添加多个用例,传入参数必须是列表
- discover方法使用:
- 该方法遍历指定目录按条件过滤,返回测试套件
- -case_dir: 这个是待执行用例的目录
- -pattern:这个是匹配脚本名称的规则,test*.py 意思是匹配 test 开头的所有脚本
- -top_level_dir:这个是顶层目录的名称,一般默认等于 None 就行了
* 以上方法生成的测试用例集合,需要配合TextTestRunner才能被执行
- TestRunner测试执行器
使用:
- 实例化runner=unittest.TextTestRunner()
- 执行run方法传入测试套件,runner.run(suites)
- skip方法跳过测试
使用:
该方法是unittest框架中的装饰器,使用方法@unittest.skip(参数)
说明:
- -skip方法直接跳过执行
- -skipUnless方法condition参数为False跳过
- -skipIf方法condition参数为True跳过
- unittest框架中的断言
使用:
测试类下继承了TestCase类,直接调用
说明:
以equal为例,传入两个对比值,msg抛出的错误信息