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

news2024/11/25 9:42:18

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.coloradmin.cn/o/529893.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5年软测经验去面试25k测试岗,看到这样的面试题我还是心虚了....

我是着急忙慌的准备简历——5年软件测试经验,可独立测试大型产品项目,熟悉项目测试流程...薪资要求?5年测试经验起码能要个25K吧 我加班肝了一页半简历,投出去一周,面试电话倒是不少,自信满满去面试&#…

系统掌握入河排污口设置论证技术、方法及报告编制框架

在短时间内较系统的掌握入河排污口设置论证技术、方法及报告编制框架,学习内容以城镇生活污水厂、造纸项目、石化项目、制药项目案例为线索,系统讲解入河排污口设置论证报告书编制过程,并以水质模型为手段,讲解水质影响预测模型的…

Voice Control for ChatGPT 沉浸式的与ChatGPT进行交流学习。

Voice Control for ChatGPT 日常生活中,我们与亲人朋友沟通交流一般都是喜欢语音的形式来完成的,毕竟相对于文字来说语音就不会显的那么的苍白无力,同时最大的好处就是能解放我们的双手吧,能更快实现两者间的对话,沟通…

华为OD机试真题 Java 实现【简单的自动曝光】【2023Q1 100分】

一、题目描述 一个图像有 n 个像素点,存储在一个长度为 n 的数组 img 里,每个像素点的取值范围[0,255]的正整数。 请你给图像每个像素点值加上一个整k(可以是负数),得到新图 newlmg,使得新图 newlmg 的所有像素平均值最接近中位…

响应式设计和移动端优化:如何实现页面在不同设备上的适配和优化

章节一:介绍响应式设计和移动端优化 响应式设计是一种使网页能够自适应不同设备和屏幕尺寸的设计方法。它通过使用流式网格布局、媒体查询和弹性图片等技术,使得网页能够在不同分辨率和设备上呈现出最佳的布局和用户体验。 移动端优化则是针对移动设备…

青训营 x 训练营结营测试题目(前端方向)

文章目录 📋前言🎯选择题(含多选)📝最后 📋前言 这篇文章的内容是23年6月青训营 x 训练营结营题目,题目一共有25题,题目类型为选择题,包括了单选题和多选题,…

WiFi(Wireless Fidelity)基础(十二)

目录 一、基本介绍(Introduction) 二、进化发展(Evolution) 三、PHY帧((PHY Frame ) 四、MAC帧(MAC Frame ) 五、协议(Protocol) 六、安全&#x…

VHDL直流电机模糊控制器的设计与实现

在直流电机控制策略方面,属于智能控制理论的模糊控制其突出优点在于它不依赖于被控对象的模型,因此本设计尝试将模糊控制理论应用于直流电机转速控制,并将模糊控制器实现于FPGA(Field Programmable Gate Array)芯片上。在实现方法上本设计采用模糊查表控制法实现模糊控制器…

【C++】-static在类和对象中的作用和细节(下)

💖作者:小树苗渴望变成参天大树 ❤️‍🩹作者宣言:认真写好每一篇博客 💨作者gitee:gitee 💞作者专栏:C语言,数据结构初阶,Linux,C 文章目录 前言 前言 今天我们来讲一个static对类的对象的作用…

安全基础第十二天:nginx相关配置和nginx-host绕过

目录 一、nginx的动静分离 1.动静分离的原理 2.动静分离实验(centos做为放置静态资源的服务器,ubuntu做为请求的web服务器) (1)在centos的/usr/local/nginx/html下创建一个静态文件static (2&#xff09…

目标检测概述

传统目标检测 任务目标 从图像中找出相应的物体位置 目标检测的核心目的在于,估计出目标在图像中的坐标。 问题定义 目标检测的结果是什么? 预测出目标在图像中的位置。 位置如何表示? 通常采用水平矩形框的形式估计目标。 在opencv中…

为什么Java要求多用组合,少用继承?

前言: 最近有一个要好的朋友去阿里大厂面试Java高级工程师,在第二轮面试的过程中,面试官提了一个问题:“解释下Java项目中为什么要求多用组合,少用继承?”。朋友觉得这个题目既熟悉,又陌生&…

【LeetCode】504. 七进制数

504. 七进制数&#xff08;简单&#xff09; 方法一&#xff1a;七进制数预处理 思路 这里我利用了提示&#xff0c;得知 |num| < 10^7 &#xff0c;因此所使用到的七进制数肯定也小于等于 107 &#xff0c;我将 7 的次方数算出来&#xff0c;预存在数组 seven 中。 后续…

ADUC834BSZ-ASEMI代理亚德诺ADUC834BSZ原厂芯片

编辑-Z ADUC834BSZ特征&#xff1a; 2个独立ADC&#xff08;16位和24位分辨率&#xff09; 24位无缺失代码&#xff0c;主ADC 21位rms&#xff08;18.5位p-p&#xff09;有效分辨率20 Hz 偏移漂移10 nV/C&#xff0c;增益漂移0.5 ppm/C 62 KB片上闪存/EE程序存储器 4 KB…

C++(Qt)读取.mat文件(可以读取多级变量)

全网最全&#xff0c;从安装环境和配置环境变量&#xff08;配置环境变量是大坑&#xff09;&#xff0c;然后再到需要的SDK库&#xff0c;再到代码详细解读。 首先就是需要安装matlab&#xff0c;注意&#xff1a;你使用的编译器版本需要和MATLAB版本相互兼容&#xff01;&am…

使用模板构建泛型栈

目录 一.构造栈 使用构造函数 代码&#xff1a; 二.销毁栈 使用析构函数 代码 三.判空&#xff0c;判满 四.扩容 代码 五.入栈&#xff0c;出栈 代码 六.取栈顶元素 代码 代码合集 template< class T>模板 T为当前栈的数据类型 栈类型有三个属性&#x…

Linux:概述 、安装 、文件与目录结构 、vim编辑器 、网络配置 、远程登录 、系统管理 、基础命令 、软件包管理 、克隆虚拟机 、shell编程

1、课程介绍 2、Linux概述(入门篇) 2.1、Linux的诞生 2.1.1、Linux是什么? Linux是一个操作系统&#xff08;OS&#xff09; 所谓的操作系统就是直接用来操作计算机底层硬件的软件。 2.1.2、Linux的出现 2.2、Linux和Unix的渊源 2.3、GNU/Linux 2.4、Linux VS Windows 3、…

机器学习期末复习 决策树ID3的计算与构建

ID3构建的流程就是参考书上的那个伪代码。 1&#xff09; 开始&#xff1a;构建根节点&#xff0c;将所有训练数据都放在根节点&#xff0c;选择一个最优特征&#xff0c;按着这一特征将训练数据集分割成子集&#xff0c;使得各个子集有一个在当前条件下最好的分类。 2&#xf…

愿力,心力,能力

愿力&#xff0c;心力&#xff0c;能力 三力合一成点事 趣讲大白话&#xff1a;人与人的力量差别大 【趣讲信息科技165期】 *************************** 愿力是人文东方智慧 西方大概是mission使命之类 比如佛家发愿 儒家大概类似于立志 心力也是人文东方智慧 西方大概是意志…

51单片机(十七)红外遥控(外部中断)

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…