目录
一、测试框架的价值
二、框架设计目标
三、框架设计过程
四、框架实现
1)unittest框架的使用要求
2)unittest测试框架的基本组成要素
3)unittest框架的执行顺序
4)三种不同的框架运行方式对比
1、unittest.main()
2、测试套件执行
3、测试文件执行
5)生成测试报告
一、测试框架的价值
- 提高接口测试执行和接口回归测试的效率
- 节约人工成本,可以安排在夜间执行
- 提高脚本的复用性,适应各种不同的接口测试需求
- 提高接口测试的规范性,把所有的脚本以及测试文档进行统一管理
二、框架设计目标
最终只需要调整框架配置文件的一些参数,不需要人工干预测试脚本的执行
三、框架设计过程
- 明确框架层次,基本层次如下:
- 配置层
- 脚本层
- 数据层
- 报告层
- 对框架的设计进行评审
- 创建框架对应的文件夹
- 框架的设计
- 框架的实现
- 框架的调试运行
四、框架实现
1)unittest框架的使用要求
- import unittest
- 定义测试类需要继承unittest:class测试类名(unittest.TestCase)
2)unittest测试框架的基本组成要素
- setUp初始化方法:可选,是测试前期的初始化工作
- test_XXX测试方法:
- 测试方法的名字必须以test_打头
- 加入测试断言,将脚本预期结果和实际结果进行比对
- tearDown资源回收:可选,一般作为关闭对象,释放对象。
3)unittest框架的执行顺序
- setUp进行初始化
- 执行test测试方法
- tearDown进行资源回收
4)三种不同的框架运行方式对比
1、unittest.main()
- 依次执行当前文件中对应测试类的所有测试方法
- 执行顺序按照asc码顺序,所以一般测试方法建议定义为test_case1、test_case2
- 特点:执行当前类中对应的所有测试方法
2、测试套件执行
- 声明测试套:suite = unittest.TestSuite()
- 通过addtest方法添加测试用例:suite.addTest(类名("测试方法名"))
- 声明测试运行对象:runner = unittest.TextTestRunner()
- 执行测试套:runner.run(suite)
- 特点:按照加载顺序的顺序和个数进行执行
- 注意:运行模式要改为以python文件而不是测试框架模式运行(在框架中右键默认运行方式是以框架模式运行的)
3、测试文件执行
- 声明文件所在路径
- 定义discover对象打开相关的脚本文件:discover = unittest.defaultTestLoader.discover(文件路径, pattern="test_*.py")
- 声明测试运行对象:runner = unittest.TextTestRunner()
- 执行测试套:runner.run(discover)
- 特点:
- 执行任意指定路径下的任意相关命名的python测试脚本。
- 执行每一个文件中所有的测试方法,顺序也是安装asc码顺序进行
5)生成测试报告
生成HTML格式的测试报告,步骤:
- 下载HTMLTestRunner.py:下载地址http://tungwaiyip.info/software/HTMLTestRunner.html
- 拷贝到项目文件夹下
- 导入HTMLReport包:from HTMLTestRunner import HTMLTestRunner
- 在main()函数下生成测试报告的脚本:
- 获取测试报告文件应放置的路径
- 给定具体的测试报告文件名,以wb的方式打开文件file = open("xxx","wb")
- 设置测试套,并添加要测试的方法
- 生成HTML报告:runner = HTMLTestRunner(stream=file, title="标题", description="描述")
- 调用runner对象执行测试套:runner.run(suite)
- 关闭测试报告文件
|