UnitTest 框架,自动化测试中使用,管理执行测试用例的
1 UnitTest 基本使用
1.1 什么是框架
- framework
- 为了解决一类事情的功能集合
1.2 UnitTest 框架
是 Python 自带的单元测试框架
自带的,可以直接使用,不需要另外安装
测试人员,用来做自动化测试,作为自动化测试的执行框架,即 管理和执行用例
使用框架的原因
- 能够阻止多个用例去执行
- 提供丰富的断言方法
- 能够生成测试报告
1.3 核心要素(组成)
- TestCase :测试用例,这个测试用例是 unittest 的组成部分,作用是用来书写真正的用例代码(脚本)
- Testsuite :测试套件,作用是用来组装(打包) TestCase (测试用例)的,即可以将多个用例脚本文件组装到一起
- TestRunner :测试执行(测试运行),作用是用例执行 Testsuite (测试套件)的
- TestLoader :测试加载,是对 Testsuite (测试套件)功能的补充,作用是用来组装(打包)TestCase (测试用例)的
- Fixture :测试夹具,是一种代码结构,书写前置方法(执行用例之前的方法)代码和后置方法(执行用例之后的方法)代码,即 用例执行顺序 前置 ---> 用例 ---> 后置
1.4 TestCase 测试用例
书写真正的用例代码(脚本)
单独一个测试用例也是可以执行的
- 步骤
- 导包 unittest
- 定义测试类,需要继承 unittest.TestCase 类,习惯性类名以 Test 开头
- 书写测试方法
- 执行
注意事项
- 代码文件名字要满足标识符的规则
- 代码文件名 不要使用中文
# 1. 导包 unittest
import unittest
# 2. 定义测试类,只需要继承 unittest.TestCase 类,就是测试类
class TestDemo(unittest.TestCase):
# 3. 书写测试方法,方法中的代码就是真正用例代码,方法名必须以test开头
def test_method1(self):
print('测试方法一')
def test_method2(self):
print('测试方法二')
# 4. 执行
# 方式一:在类名或者方法名后边右键运行
# 在类名后边,执行类中所有测试方法
# 在方法名后边,只执行当前的测试方法
# 方式二:使用 unittest.main() 来执行,在主程序中使用
if __name__ == '__main__':
unittest.main()
可能出现的错误
- 文件名包含中文(规范命名)
- 右键运行没有 unittest for ...
- 新建一个代码文件,将之前的代码复制过来
- 使用 unittest.main() 来执行,在主程序中运行
- 点击右上角文件 --> Edit Configurations... --> 点击减号将 python中的内容移除 --> 点击右下角ok
1.5 TestSuite 和 TestRunner
TestSuite(测试套件):将多条用例脚本集合在一起,就是套件,即用来组装用例的
- 导包 unittest
- 实例化套件对象 unittest.TestSuite()
- 添加用例方法
TestRunner(测试执行):用来执行套件对象/
- 导包 unittest
- 实例化执行对象 unittest.TextTestRunner()
- 执行对象执行套件对象 执行对象.run(套件对象)
整体步骤:
- 导包 unittest
- 实例化套件对象 unittest.TestSuite()
- 添加用例方法:套件对象.addTest(测试类名('测试⽅法名'))
- 实例化执行对象 unittest.TextTestRunner()
- 执行对象执行套件对象 执行对象.run(套件对象)
# 1. 导包 unittest
import unittest
# 2. 定义测试类, 只要继承 unittest.TestCase 类, 就是测试类
class TestDemo1(unittest.TestCase):
# 3. 书写测试⽅法, ⽅法中的代码就是真正⽤例代码,⽅法名必须以 test 开头
def test_method1(self)