市场上有很多的测试框架,选择哪款测试框架其实无所谓,只要能解决问题,就是好的测试方式。
UnitTest 原本是 python 自带的单元测试框架,在逐渐完善加强功能的过程中,成为目前自动化测试领域比较主流的框架。
官方文档:点这里
UnitTest 的一些概念
- test fixture(测试固件)
test fixture表示执行测试时所需的准备工作,以及相关的清理操作。比如,创建临时目录或启动服务器进程等操作。主要通过 setUp/tearDown 以及 setUpClass/tearDownClass 实现。 - test case(测试用例)
unittest提供了一个基类TestCase,创建新测试类的时候,必须要继承该基类。 - test suite(测试套件)
用于聚合一起执行的测试。即将需要执行的测试用例整合起来,作为一个测试集,使用命令可以直接执行该测试集。 - test runner(测试执行器)
test runner是用于执行测试并提供结果的组件,且可以通过图形界面、文本或返回特殊值来表示执行测试的结果。
UnitTest 的运行demo
- 导入unittest模块
- 创建一个测试类,并继承unittest模块中的TestCase类
- 定义测试用例,函数名以test开头
- 完善测试用例的代码逻辑,如增加断言机制
- 然后就可以运行啦
- 测试demo
# 导入unitTest 默认库,这是python自带的库,不需要安装
import unittest
# 注意一定要继承基类 TestCase
class CasesDemo(unittest.TestCase):
def test_1(self):
print("test1")
def test_2(self):
print("test2")
def test_3(self):
print("test3")
if __name__ == "__main__":
# 执行测试用例
unittest.main()
- 运行结果
UnitTest 的一些基本规则
- 所有的UnitTest类,如果需要使用,则一定要继承为TestCase类
- TestCase中默认已经封装有很多的断言方法,可以直接调用,通过 self 进行调用
- 所有用例都需要用test开头
每一个以test开头的函数就是一个测试用例
如图有 test_1,test_2,test_3 共三个测试用例
- 用例的运行顺序都是固定的模式,基于UnitTest本身的内部机制。目前是基于ASCII码的大小规则执行的:0-9<A-Z<a-z。
- setUp/tearDown的作用域分为两种,函数和类
- setUpClass/tearDownClass
- setUpClass:作用域为类,只在该类执行前先执行一遍
- tearDownClass:作用域为类,只在该类执行后执行一遍