做测试的大多数都知道测试接口的工具及框架,工具比较常见的有jmeter
和postman
;自动化框架一般有
unittest
、pytest
和testng
,其中unittest
、pytest
是基于python语言的测试框架,testng
则是基于Java的测试框架,本系列文章选择unittest框架作为测试框架。
1、什么是unittest
- 官网是这么解释的:
unittest
单元测试框架是受到JUnit
的启发,与其他语言中的主流单元测试框架有着相似的风格。其支持测试自动化,配置共享和关机代码测试。支持将测试样例聚合到测试集中,并将测试与报告框架独立。 - 我的理解:其实
unittest
框架就是有一套自己特有的规格,我们在使用的时候需要遵循这个规格,它能是我们的测试变得更简单,代码更好维护,复用性更强,呈现的结果比原来更好
2、unittest的组成部分
- 测试脚手架
官网定义:test fixture
表示为了开展一项或多项测试所需要进行的准备工作,以及所有相关的清理操作。举个例子,这可能包含创建临时或代理的数据库、目录,再或者启动一个服务器进程。
其实脚手架包含setup
和teardown
两部分,在具体的测试中我一般会用这两部分来做初始化工作和测试完毕后的垃圾数据清理工作
def setUp(self):
#初始化
pass
def tearDown(self):
#数据清理
#或者统计
pass
- 测试用例
unittest
提供一个基类: TestCase
,用于新建测试用例,我们的测试用例类需要继承TestCase基类
class demo(unittest.TestCase):
- 测试套件
test suite
可以一起执行多个用例
if __name__ == "__main__":
suit = unittest.TestSuite()
suit.addTest(createCode('test01_createCode'))
result = unittest.TextTestRunner().run(suit)
- 测试运行器
test runner
是一个用于执行和输出测试结果的组件。这个运行器可能使用图形接口、文本接口,或返回一个特定的值表示运行测试的结果。
result = unittest.TextTestRunner().run(suit)