前言

关于 unittestreport 最初在开发的时候,只是计划开发一个 unittest 生成 HTML 测试报告的模块,所以起名叫做 unittestreport。在开发的过程中结合使用的小伙伴的一些反馈,所以慢慢的扩展了更多的功能进去。之前在写 unittestreport 的时候,也陆续写了几遍关于 unittestreport 相关功能的使用,每次都是一个特定的功能,这边给出一遍系统的使用文档来给大家介绍一下 unittestreport 的功能。

  • 关于 unittestreport 是什么?

    • unittestreport 柠檬班—木森老师是基于 unittest 开发的的一个功能扩展库,为 unittest 提供了一些常用的扩展功能(后续还会进行持续开发,扩展更多的功能):

      • HTML 测试报告生成
      • 测试用例失败重运行
      • 发送测试结果及报告到邮箱
      • 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)——测试派柠檬班相关推荐

  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 ...

  2. CentOS 7.4 安装部署 hadoop 2.6 文档 V1.3

    ########################################################################## ################ CentOS 7 ...

  3. 使用SharePoint中的Move To功能将一个文档转移到其他位置

    Office 365 SharePoint 中现在可以通过Move To功能将文档移动到本站点的其他位置或者其他站点. 1 - 首先,选中要移动的文档.可以多选. 2 - 之后就可以在右侧的Panel ...

  4. Jxls表格导出功能帮助文档

    Jxls表格导出功能帮助文档 业务介绍 功能实现 业务介绍 做一个时刻表的导出功能,数据模型都已经写好了.原型图大概是这样的一个意思.先看图: 大概设计是这个样子. 然后最后导出的成品是这个样子: 大 ...

  5. 【智能推荐】阿里云智能推荐AIRec文档说明与SDK测试

    目录 1. 配置实例 2. 选择启动方式 3. 配置实时数据 4. 配置离线存储 5. 配置成功 6. 启动中 7.  SDK推送一个用户 8. 推送一个物品 9. SDK推送一个行为 10. 注意事 ...

  6. 详细分析 Vue3 文档

    之前我就在想,为什么很多人遇到问题都是推荐说:看文档 为什么? 因为文档真的很有用(真香) 这篇文章是个人对于文档中出现内容的理解,在断断续续的一周时间内看一次文档后,compisition API真 ...

  7. eigen3.3.8帮助文档下载 chm_MAXHUB文档v1.10.1-MAXHUB文档电脑版下载

    你可以通过浏览器来登录MAXHUB文档进行多人线上协同编辑,软件的操作逻辑承袭自大家常用的word.excel.ppt等,可快速上手,这里还有丰富的学习资源供小伙伴们提升职业技能. 软件亮点 MAXH ...

  8. PDL格式解决方案Aspose.Page重磅上新!两大文档格式功能助力文档管理!

    近期,Aspose发布了一款新产品Aspose.Page--XPS,PS和EPS文件格式解决方案,用于创建和操作XPS文档,以及将XPS和PostScript格式转换为PDF和光栅图像.下面我们一起来 ...

  9. 史上最详细log4j使用文档

    日志是应用软件中不可缺少的部分,Apache的开源项目log4j是一个功能强大的日志组件,提供方便的日志记录.在apache网站:jakarta.apache.org/log4j 可以免费下载到Log ...

最新文章

  1. VS(visual studio)如何查看预处理后的文件?(查看宏定义展开,头文件展开等)(注意如果要运行或调试代码,要把第一步的改回来!!!!)
  2. Dapr Meetup 3.22【周六】
  3. java中重载 参数顺序_Java方法中的参数太多,第4部分:重载
  4. 前端学习(1312):响应报文
  5. C# 读取Excel CSV 类型文件到DataSet中,反之从DataSet写入excel
  6. c++调用子进程捕获输出(windows,linux)
  7. OpenSSL密码库算法笔记——第5.4章 椭圆曲线点的简介
  8. 【经验分享】优麒麟上的硬盘读写性能测试
  9. 世界首块10层3D打印PCB电路板问世!
  10. 2021年最值得推荐的10款数据可视化工具,看完我收藏了
  11. ffmpeg之 一张/多张图片合成视频
  12. 广外专版-msn聊天记录查看器
  13. 解决flume整合kafka报错Attempt to heart beat failed since member id is not valid, reset it and try to re-jo
  14. 统计学 参数估计 之 总体均值的估计
  15. 《数字经济全景白皮书》中国商业银行普惠金融可持续发展能力评价2022
  16. Linux man帮助文档
  17. 常微分方程-差分方程
  18. 自动驾驶笔记-轨迹跟踪之①纯跟踪算法(Pure Pursuit)
  19. 计算机毕业设计(附源码)python租车信息管理系统
  20. Python与MySQL数据库的交互

热门文章

  1. tensorboard 2.0可视化 —浏览器中输入http://ip:6006 - 无法访问此网站——有效解决
  2. 视频教程-C语言-从汇编角度理解C语言的本质-C/C++
  3. ReactOS 分析一
  4. CPU处理器Intel Xeon Skylake 6148(2.4 GHz)性能评测
  5. 【杂谈与乱码】我们过度解读了鲁迅先生了么?
  6. Ubuntu Linux 操作系统-清华大学开源软件镜像站下载
  7. ROS下使用C++读取txt文本数据并使用
  8. 那些年做过的动态图表-实用漂亮的Excel动态图表
  9. python爬取微信好友信息_python itchat 爬取微信好友信息
  10. 1106: [POI2007]立方体大作战tet