当前位置: 首页 > news >正文

Unittest自动化测试之unittestunittest_生成测试报告

unittest_生成测试报告

测试报告为测试结果的统计即展示,是自动化测试不可或缺的一部分,利用unittest 可以生成测试报告

方式一、使用第三方 HTMLTestRunner 执行测试用例集,生成网页版测试报告(推荐)

HTMLTestRunner是Python标准库的unittest模块的一个扩展,在使用该模块之前 要下载HTMLTestRunner.py文件,并将该文件保存在python安装路径下的lib文件夹或者 是项目的子包中,在python代码中通过 import HTMLTestRunner导入,即可使用。

HTMLTestRunner常用参数介绍:
stream: 配置测试报告要保存的文件路径
title:测试报告标题
description: 测试报告的描述信

代码示例:

# 使用discover()来实现添加执行整个目录下所有的测试用例
import os
import unittest
import HTMLTestRunner
import time# 获取当前路径
curren_path = os.path.dirname(__file__)
# 获取测试用例目录的路径
case_path = os.path.join(curren_path,"all_case")# 从当前路径回到上一层路径
# case_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))# 匹配测试用例路径下的所有的测试方法
discover = unittest.defaultTestLoader.discover(start_dir=case_path,  # 用例路径pattern="*_case*.py",top_level_dir=None)   # 文件类型
# 创建主套件
main_suite = unittest.TestSuite()
# 把测试用例路径添加到主套件中
main_suite.addTest(discover)
# 执行主套件里的测试用例;如果要生成测试报告,则不通过unittest.main()方法执行
# unittest.main(defaultTest="main_suite",verbosity=2)# 执行并生成测试报告
# 加个时间戳
now = time.strftime("%y-%m_%d_%H_%M_%S_",time.localtime(time.time()))
# 创建html类型测试报告对象,将执行的过程写入到file_obj中
file_obj = open("D:/pythonProject/P7_P8_Requests/""unittest框架/test_report/""{}test_report.html".format(now),"w+",encoding="utf-8")
# 创建配置html测试报告的相关信息的对象
runner = HTMLTestRunner.HTMLTestRunner(stream=file_obj,title="第一次的测试报告",description="我是测试报告的描述信息")
# 生成html测试报告;如果要生成测试报告,则不通过unittest.main()方法执行
runner.run(main_suite)
查看执行结果

配置详细的html测试报告

在测试用例中加上注释信息,即可在html报告中体现,能更好的展示每个用例的信息;

一、通过添加 3对双引号:"""内容"""

通过在类的下面添加 3对双引号 """测试类01的详细信息""";在测试方法下面添加 3对双引号 """test_aaa方法的详细信息""";如下图:

 在生成的测试报告中可更好的展示每条用例的作用

 二、只在测试方法中添加

self._testMethodName=设置测试用例名称,
self._testMethodDoc=设置测试用例详情

注意:上方下划线只有一个,不要搞错!

在测试用例方法中添加注释信息;如下图

查看生成的测试报告

方式二、通过TextTestRunner()方法生成text类型的测试报告

代码示例:

# 使用discover()来实现添加执行整个目录下所有的测试用例
import os
import unittest
import HTMLTestRunner
import time# 获取当前路径
curren_path = os.path.dirname(__file__)
# 获取测试用例目录的路径
case_path = os.path.join(curren_path,"all_case")# 从当前路径回到上一层路径
# case_path = os.path.abspath(os.path.dirname(os.path.dirname(__file__)))# 匹配测试用例路径下的所有的测试方法
discover = unittest.defaultTestLoader.discover(start_dir=case_path,  # 用例路径pattern="*_case*.py",top_level_dir=None)   # 文件类型
# 创建主套件
main_suite = unittest.TestSuite()
# 把测试用例路径添加到主套件中
main_suite.addTest(discover)
# 执行主套件里的测试用例;如果要生成测试报告,则不通过unittest.main()方法执行
# unittest.main(defaultTest="main_suite",verbosity=2)# 生成text类型的测试报告
with open('./report/test_result.txt','w',encoding='utf-8') as file:test_runner = unittest.TextTestRunner(stream=file,descriptions="执行用例的测试报告", verbosity=2)test_runner.run(main_suite)

查看执行结果

实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。

如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步

在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。

我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,

测试开发视频教程、学习笔记领取传送门!!!

http://www.lryc.cn/news/67604.html

相关文章:

  • 一个查询IP地理信息和CDN提供商的离线终端工具
  • RflySim平台使用篇 | Rflysim3D软件使用系列教程(二)
  • 2023 年第五届河南省 CCPC 大学生程序设计竞赛
  • nginx liunx最新版本安装flask部署
  • 热图 -- pheatmap or ggplot2
  • EIScopus检索 | 2023年智能交通与未来出行国际会议(CSTFM 2023)
  • 如何系列 如何在Windows和Linux安装Nginx
  • “1+X+N”模式助力企业数字化转型
  • JavaEE(系列3) -- 多线程(线程的中断与线程等待)
  • 想装一台自己的电脑,可以先了解下这些问题
  • Redis未授权漏洞复现
  • 跳槽,如果没有更好的选择,可以去美团试试···
  • Java10
  • IMS call通话类型对比差异
  • 5.2 中心极限定理
  • JVM 内存分哪几个区,如和判断一个对象是否存活
  • 在Spring Boot微服务使用Jedis操作Redis List列表
  • springboot + vue 部署 阿里云云服务器 ECS
  • mysql 日期 计算 时间差 天数差
  • 不用网闸、FTP的话 如何实现内外网数据交换?
  • 探寻Spring MVC的奥秘:内部组件与工作流程详解
  • eclipse svn ClassNotFoundException: javassist.ClassPool
  • 广度优先遍历搜索迷宫最短路径
  • 分布式计算基础知识
  • Mybatis方式完成CRUD操作
  • css背景 background的属性作用和值
  • 六大行文化特色知识(上)
  • 匿名对象的特性和使用场景你知道吗?
  • 企业应该如何做到数字化转型成功?
  • PBDB Data Service:Bibliographic references for fossil collections(采集记录参考书目)