unittestreport 详细功能使用文档(V1.1.1)——测试派柠檬班
前言
关于 unittestreport 最初在开发的时候,只是计划开发一个 unittest 生成 HTML 测试报告的模块,所以起名叫做 unittestreport。在开发的过程中结合使用的小伙伴的一些反馈,所以慢慢的扩展了更多的功能进去。之前在写 unittestreport 的时候,也陆续写了几遍关于 unittestreport 相关功能的使用,每次都是一个特定的功能,这边给出一遍系统的使用文档来给大家介绍一下 unittestreport 的功能。
关于 unittestreport 是什么?
- unittestreport 柠檬班—木森老师是基于 unittest 开发的的一个功能扩展库,为 unittest 提供了一些常用的扩展功能(后续还会进行持续开发,扩展更多的功能):
- HTML 测试报告生成
- 测试用例失败重运行
- 发送测试结果及报告到邮箱
- unittest 数据驱动
- unittestreport 柠檬班—木森老师是基于 unittest 开发的的一个功能扩展库,为 unittest 提供了一些常用的扩展功能(后续还会进行持续开发,扩展更多的功能):
安装命令:
cmd 命令行下输入下面的命令进行安装,当前最新版本是 1.1.1
pip install unittestreport
一、HTML 测试报告生成
unittestteport 中封装了一个 TestRunner 类,可以用来代替 unittest 中的 TextTestRunner 来执行测试用例,执行完测试用例之后会自动生成测试报告。并且有多种报告风格可选
模块导入
from unittestteport import TestRunner
使用案例
runner = TestRunner(test_suite) runner.run()
关于 TestRunner 初始化参数
suites: 测试套件(必传)
filename: 指定报告文件名
report_dir:指定存放报告路径
title:指定测试报告的标题
templates: 可以指定 1,2,3 三个风格的模板
tester:测试人员名称
报告样式展示:
696 x 307 1824 x 804
二、测试用例失败重运行
关于unittest重运行机制,unittestreport中提供了两种方式
方式一: rerun 装饰器
使用案例:使用 rerun 装饰失败需要重运行的用例,该用例失败后会自动重运行
from unittestreport import rerun class TestClass(unittest.TestCase): @rerun(count=4, interval=2) def test_case_01(self): a = 100 b = 99 assert a == b
用例运行
runner = TestRunner(test_suite) runner.run()
参数说明:
- count:用来指定用例失败重运行的次数
- interval:指定每次重运行的时间间隔
方式二:TestRunner.rerun 方法
使用案例:所有的用例失败,只要有失败的用例,会自动重运行该用例
用例正常编写即可
运行是使用 TestRunner.rerun_run 方法运行
runner = TestRunner(suite=suite) runner.rerun_run(count=3, interval=2)
参数说明:
- count:用来指定用例失败重运行的次数
- interval:指定每次重运行的时间间隔
三、邮件发送测试报告
unittestreport 内部实现了发生测试结果到邮箱的方法,执行完测试用例之后调用发送测试报告的方法即可。发邮件的方法介绍:TestRunner 类中实现了 send_email 方法,可以方便用户,快速发送邮件。
使用案例
runner = TestRunner(suite) runner.run() runner.send_email(host="smtp.qq.com", port=465, user="musen_nmb@qq.com", password="algmmzptupjccbab", to_addrs="3247119728@qq.com")
参数介绍
host: smtp 服务器地址
port:端口
user:邮箱账号
password:smtp 服务授权码
to_addrs:收件人邮箱地址(一个收件人传字符串,多个收件人传列表)
收到的邮件样式
728 x 502 1260 x 868
四、数据驱动的使用
关于数据驱动这边就不给大家做过多的介绍了,数据驱动的目的是将测试数据和用例逻辑进行分离,提高代码的重用率,以及用例的维护,关于数据驱动本,unittestreport.dataDriver 模块中实现了三个使用方法,支持使用列表(可迭代对象)、JSON 文件、YAML 文件来生成测试用例,接下来分别给大家介绍一下使用方法:
1、使用介绍
from unittestreport.dataDriver import ddt, list_data,json_data,yaml_data
第一步:使用 ddt 装饰测试用例类
第二步:根据使用的数据选择对应的方法进行驱动
2、使用案例
一、用例保存在可迭代对象中(如列表):使用 list_data
from unittestreport import ddt, list_data @ddt class TestClass(unittest.TestCase): cases = [{'title': '用例1', 'data': '用例参数', 'expected': '预期结果'}, {'title': '用例2', 'data': '用例参数', 'expected': '预期结果'}, {'title': '用例3', 'data': '用例参数', 'expected': '预期结果'}] @list_data(cases) def test_case(self, data): pass
二、用例保存在 JSON 文件中:使用 json_data
from unittestreport import ddt,json_data @ddt class TestClass(unittest.TestCase): @json_data("C:/xxxx/xxx/cases.json") def test_case(self, data): pass
JSON 文件中的数据格式
cases.json 文件
[ { "title": "用例1", "data": "用例参数", "expected": "预期结果" }, { "title": "用例2", "data": "用例参数", "expected": "预期结果" }, { "title": "用例3", "data": "用例参数", "expected": "预期结果" } ]
三、用例保存在 YAML 文件中:使用 yaml_data
from unittestreport import ddt,yaml_data @ddt class TestClass(unittest.TestCase): @yaml_data("C:/xxxx/xxx/cases.yaml") def test_case(self, data): pass
YAML 文件中的数据展示
cases.yaml 文件
- title: 用例1 data: 用例参数 expected: 预期结果 - title: 用例2 data: 用例参数 expected: 预期结果 - title: 用例4 data: 用例参数 expected: 预期结果
2、注意点:
- 关于使用 ddt 的时候进行数据驱动,指定测试报告中的用例描述:
- 测试报告中的用例描述默认使用的是用例方法的文档字符串注释,
- 如果要给每一条用例添加用例描述,需要在用例数据中添加 title 或者 desc 字段,字段对应的数据会自动设置为测试报告中用例的描述
作者:nmb_musen
链接:http://testingpai.com/article/1598939124642
来源:测试派
协议:CC BY-SA 4.0 https://creativecommons.org/licenses/by-sa/4.0/
unittestreport 详细功能使用文档(V1.1.1)——测试派柠檬班相关推荐
- Guns 技术文档 v1.0
Guns 技术文档 v1.0 Guns 技术文档 v1.0 1. 序言 1.1 文档简介 1.2 Guns教程 1.3 获取帮助 2. 使用手册 2.1 下载项目 2.2 导入项目 2.2.1 ecl ...
- CentOS 7.4 安装部署 hadoop 2.6 文档 V1.3
########################################################################## ################ CentOS 7 ...
- 使用SharePoint中的Move To功能将一个文档转移到其他位置
Office 365 SharePoint 中现在可以通过Move To功能将文档移动到本站点的其他位置或者其他站点. 1 - 首先,选中要移动的文档.可以多选. 2 - 之后就可以在右侧的Panel ...
- Jxls表格导出功能帮助文档
Jxls表格导出功能帮助文档 业务介绍 功能实现 业务介绍 做一个时刻表的导出功能,数据模型都已经写好了.原型图大概是这样的一个意思.先看图: 大概设计是这个样子. 然后最后导出的成品是这个样子: 大 ...
- 【智能推荐】阿里云智能推荐AIRec文档说明与SDK测试
目录 1. 配置实例 2. 选择启动方式 3. 配置实时数据 4. 配置离线存储 5. 配置成功 6. 启动中 7. SDK推送一个用户 8. 推送一个物品 9. SDK推送一个行为 10. 注意事 ...
- 详细分析 Vue3 文档
之前我就在想,为什么很多人遇到问题都是推荐说:看文档 为什么? 因为文档真的很有用(真香) 这篇文章是个人对于文档中出现内容的理解,在断断续续的一周时间内看一次文档后,compisition API真 ...
- eigen3.3.8帮助文档下载 chm_MAXHUB文档v1.10.1-MAXHUB文档电脑版下载
你可以通过浏览器来登录MAXHUB文档进行多人线上协同编辑,软件的操作逻辑承袭自大家常用的word.excel.ppt等,可快速上手,这里还有丰富的学习资源供小伙伴们提升职业技能. 软件亮点 MAXH ...
- PDL格式解决方案Aspose.Page重磅上新!两大文档格式功能助力文档管理!
近期,Aspose发布了一款新产品Aspose.Page--XPS,PS和EPS文件格式解决方案,用于创建和操作XPS文档,以及将XPS和PostScript格式转换为PDF和光栅图像.下面我们一起来 ...
- 史上最详细log4j使用文档
日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录.在apache网站:jakarta.apache.org/log4j 可以免费下载到Log ...
最新文章
- VS(visual studio)如何查看预处理后的文件?(查看宏定义展开,头文件展开等)(注意如果要运行或调试代码,要把第一步的改回来!!!!)
- Dapr Meetup 3.22【周六】
- java中重载 参数顺序_Java方法中的参数太多,第4部分:重载
- 前端学习(1312):响应报文
- C# 读取Excel CSV 类型文件到DataSet中,反之从DataSet写入excel
- c++调用子进程捕获输出(windows,linux)
- OpenSSL密码库算法笔记——第5.4章 椭圆曲线点的简介
- 【经验分享】优麒麟上的硬盘读写性能测试
- 世界首块10层3D打印PCB电路板问世!
- 2021年最值得推荐的10款数据可视化工具,看完我收藏了
- ffmpeg之 一张/多张图片合成视频
- 广外专版-msn聊天记录查看器
- 解决flume整合kafka报错Attempt to heart beat failed since member id is not valid, reset it and try to re-jo
- 统计学 参数估计 之 总体均值的估计
- 《数字经济全景白皮书》中国商业银行普惠金融可持续发展能力评价2022
- Linux man帮助文档
- 常微分方程-差分方程
- 自动驾驶笔记-轨迹跟踪之①纯跟踪算法(Pure Pursuit)
- 计算机毕业设计(附源码)python租车信息管理系统
- Python与MySQL数据库的交互
热门文章
- tensorboard 2.0可视化 —浏览器中输入http://ip:6006 - 无法访问此网站——有效解决
- 视频教程-C语言-从汇编角度理解C语言的本质-C/C++
- ReactOS 分析一
- CPU处理器Intel Xeon Skylake 6148(2.4 GHz)性能评测
- 【杂谈与乱码】我们过度解读了鲁迅先生了么?
- Ubuntu Linux 操作系统-清华大学开源软件镜像站下载
- ROS下使用C++读取txt文本数据并使用
- 那些年做过的动态图表-实用漂亮的Excel动态图表
- python爬取微信好友信息_python itchat 爬取微信好友信息
- 1106: [POI2007]立方体大作战tet