Python_14 接口测试报告
一、查缺补漏
1. 测试用例要复制到pycharm执行的项目中,才能显示
2. 函数用下划线,类用大驼峰
3. pycharm一行显示(不换行):
File -> settings-> Editor ->General -> Console 中把Use soft wraps in 取消
4. 设置成unittest在File -> settings->Tools->Python Integrated Tools ->Testing
5. 修改名字的时候清一下缓存,在执行窗口点击Edit configurations,然后选中要清除的点击减号
二、unittest
1. unittest框架4大核心组件 unittest 是python自带的单元测试框架,无需安装
a. TestCase: 写测试用例
b. TestSuite: 收集测试用例
c. TestRunner: 执行测试用例
d. TestFixture: 测试脚手架,前置条件,后置清理,根据实际情况选择使用
2. unittest工作流程
a. 使用TestCase 按照规则写测试用例,每一个函数为一个测试用例
b. TestSuite:创建一个测试套件,收集测试用例到测试套件
c. TestRunner 统一执行测试套件里面的用例
d. 生成测试报告
3. 测试用例编写
a. 导入模块unittest
b. 创建一个测试类,继承unittest.TestCase 测试用例必须写在测试类里面
c. 测试用例以test开头
d. 执行入口:unittest.main()
在它当中执行会执行全部的测试用例,如果想一个一个执行,直接点击用例前面的执行图标
e. 测试用例包含哪些东西
i. 前置条件 token、session 夹具,将测试用例夹在里边
1) 函数级别:setup、tearDown
2) 类级别:setUpClass、tearDownClass 是类方法使用之前要加@classmethod因为修改了父类
3) 前置条件自动执行 类似init方法,自动调用时先调用类级别之后调用函数级别,类级别只调用一次,函数级别每条用例都要执行一次
ii. 测试步骤:ddt+接口请求+提取全局变量
iii. 测试断言:利用unittest框架自带的断言
iv. 日志收集:还原整个测试过程
v. 后置清理:是否要清理掉测试数据,删除测试,关闭各种文件的连接,关闭数据库连接
f. 用例执行顺序
i. 按照测试用例名称的Ascii码大小来执行
chr(): Ascii 转 字符
ord(): 字符 转 Ascii
ii. 执行顺序: 类级别前置---函数级别前置---测试用例---函数级别后置---类级别后置
4. 测试用例收集与执行
a. 创建测试套件:suite = unittest.TestSuite() 依次添加的用例会被分别执行
b. 添加测试用例到测试套件:suite.addTest(测试用例的类名('里面的用例')) 添加单个用例
i. 添加多个测试用例到测试套件 以测试用例为维度
接收用例名对象 = [测试用例的类名('里面的用例1'),测试用例的类名('里面的用例2')]
suite.addTests(tests = 接收用例名对象) 加s重点
ii. 添加整个测试类 以测试类为维度
suite.addTest(unittest.makeSuite(测试用例的类名))
为了让更多的类方便导入,添加整个测试类添加到测试套件
iii. 添加整个测试类 以测试类为维度
suite = unittest.TestLoader().loadTestsFromTestCase(TestDemo)
iv. 收集指定目录下测试文件的测试用例 测试文件为维度
dir_path = os.path.dirname(__file__)
suite = unittest.defaultTestLoader.discover(start_dir=dir_path)
start_dir: 测试用例目录
pattern='test*.py'
运行测试用例
runner = unittest.TextTestRunner() TextTestRunner是实例化执行器框架自带的,自带的测试结果
runner.run(suite)
测试结果为.就表示通过,f就表示没通过
5. 测试报告
a. TextTestRunner()自带的测试报告,不好看,无法识别,没有执行过程
b. HTMLTestRunner:不要看
c. BeautifulReport:第三方的库,还可以,推荐使用
d. unittestreport: 秘密
三、执行和收集用例的常用方法
1. 另起一个新页面对用例进行收集和执行
2. 用例收集:指定收集某个目录下的某个测试用例文件的测试用例
3. 具体步骤:
4. unittest.defaultTestLoader.discover(start_dir=测试用例目录,pattern='test*.py')
5. res = unittest.TestLoader().loadTestsFromTestCase(测试用例的类名)
四、BeautifulReport测试报告的使用
1. 安装BeautifulReport pip install BeautifulReport 在Terminal中输入即可
2. 生产测试报告的步骤
3. 生产的报告
五、unittestreport测试报告的使用
1. 安装unittestreport pip install unittestreport 在Terminal中输入即可
2. 导入时 from unittestreport import TestRunner
3. 生产报告的步骤
4. 生产的报告
原文地址:https://www.cnblogs.com/Alisa-sweet/p/17354440.html
- Github 项目推荐 | 用 Pytorch 实现的 WaveNet-Vocoder
- 重启数据库的一场闹剧(r5笔记第68天)
- 【C语言系列】基础语法案例分析(初级篇)
- 一次ORA-00600问题的排查和分析(r5笔记第64、65天)
- SpringMVC入门就这么简单
- pl/sql中的forall简单测试(r5笔记第63天)
- SpringMVC【开发Controller】详解
- 巧用外部表备份历史数据(r5笔记第62天)
- Github 项目推荐 | 最小化类 AlphaGo Zero 引擎 —— Nochi
- 半自动化运维之快速连接到指定环境(一) (r5笔记第61天)
- Spring【DAO模块】知识要点
- 浅谈exp/imp(上) (r5笔记第81天)
- Java高并发秒杀系统【观后总结】
- 【专业技术】引擎算法探究
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 六大原则不熟?那你学什么设计模式?来来来,赶紧来!
- 精品:TCP连接的建立和终止
- python--几种快速排序的实现以及运行时间比较
- TCP/IP详解 -奠基篇
- 段错误?打的就是段错误!!
- (Graph)图,挑着看看
- Mybatis学习笔记(四)调用存储过程
- 跟我一起 自己种一颗 AVL树(平衡二叉搜索树)吧!
- mybatis文件映射之利用collection定义关联集合(五)
- 【奇技淫巧】 -- 原地旋转数组
- mybatis文件映射之利用延迟加载解决collection分布查询(六)
- 【C++】攻克哈希表(unordered_map)
- 位图原理及实现 - 海量数据处理标配
- mybatis文件映射之利分布查询时传递多列值 (七)
- 位运算 - 初见