Selenium基础 — TMLTestRunner测试报告

news2025/7/23 17:18:36

目录

1、HTMLTestRunner介绍

2、HTMLTestRunner的使用

3、测试报告示例

4、封装成模块

1、学习思路和方法

2、想学习却无从下手,该如何学习?

3、软件测试/自动化测试【全家桶装】学习中的工具、安装包、插件....

4、有了安装包和学习资料,没有项目实战怎么办,我这里都已经准备好了往下看


1、HTMLTestRunner介绍

HTMLTestRunner是一个基于unittest单元测试HTML报告的第三库。

2、HTMLTestRunner的使用

  1. 将下载好的HTMLTestRunner解压,把HTMLTestRunner.py放入Python安装目录的Lib文件下,

    如:F:\DevInstall\envs\python\python377\Lib(推荐)

    或者F:\DevInstall\envs\python\python377\Lib\site-packages都可以。

    (注:如果你有自己封装的测试框架,也可以放在框架中,当作工具类应引入也行。)

  2. 将HTMLTestRunner模块用import导入测试脚本文件中。

  3. 通过open()方法以二进制写模式'wb'打开当前目录下的测试报告.html,如果没有,则自动创建。

  4. 调用HTMLTestRunner模块下的HTMLTestRunner类,参数说明如下:

    • stream:指定测试报告文件
    • title:定义测试报告的标题
    • description:定义测试报告的副标题
    • verbosity:报告的详细程度,只有0、1、2 ,2为最详细。
  5. 通过HTMLTestRunner的run()方法来运行测试套件中的测试用例.

3、测试报告示例

"""
run_case.py
1.将需要执行的测试用例,添加到测试套件中
2.将用例执行结果生成HTML格式的测试报告
HTMLTestRunner.py文件放置在python安装目录中的Lib目录中
备注:
    运行结果三种:
    ok  表示用例执行通过
    F   表示用例执行失败
    E   表示代码错误
"""
import os
import unittest
import HTMLTestRunner
import time

# 1.确定测试用例存放路径
case_path = "./testcase"

# 2.将测试文件夹中的测试用例添加到测试套件中
discover = unittest.defaultTestLoader.discover(case_path, pattern="test*.py")

# 3.执行测试用例并生成测试报告
# 3.1 确定测试报告存放路径
report_path = "./report"

# 3.2 确定测试报告名称
now = time.strftime("%Y_%m_%d %H-%M-%S")
# 测试报告文件名
report_file = report_path + "/" + now + "report.html"  

# 打开文件并写入数据
with open(report_file, "wb") as fp:
    # 实例化
    """
        title:报告的标题
        description:报告的描述
        stream:执行结果全部卸载该文件纵
        verbosity:报告的详细程度,0.1.2 ,2为最详细
        retry:重试,这个功能是坏的,不能用。
    """
    runner = HTMLTestRunner.HTMLTestRunner(
        title="ECShop项目web自动化测试报告",
        description="ECShop登录功能",
        verbosity=2,
        stream=fp
    )
    runner.run(discover)

4、封装成模块

# coding=utf-8
import time
import os
import unittest
import HTMLTestRunner

# 定位测试用例目录(可以再封装)
project_dir = os.path.abspath(os.path.dirname(os.path.abspath(__file__)) + '\..')
testcase_dir = project_dir + r"\testcase"


def creatsuite():
    '''获取测试集'''
    # 搜索测试用例
    testcases = unittest.defaultTestLoader.discover(testcase_dir, pattern="test*.py", top_level_dir=None)
    return testcases


def run(title=u'自动化测试报告', description=u'环境配置等信息'):
    """执行测试并生成报告"""

    # 如果没有测试报告目录自动创建
    for filename in os.listdir(project_dir):
        if filename == "reports":
            break
    else:
        os.mkdir(project_dir + r'\reports')

    # 执行测试用例并生成测试报告
    # 1 确定测试报告存放路径
    report_path = project_dir + r'\reports'
    print(report_path)
    # 2 确定测试报告名称
    now = time.strftime("%Y_%m_%d_%H-%M-%S")
    report_file = report_path + "\\" + now + "report.html"  # 测试报告文件名

    # 打开文件并写入
    with open(report_file, "wb") as fp:
        # 实例化
        """
            title:报告的标题
            description:报告的描述
            stream:执行结果全部卸载该文件纵
            verbosity:报告的详细程度,0.1.2 ,2为最详细
            retry:重试,这个是坏的,不能用
        """
        runner = HTMLTestRunner.HTMLTestRunner(
            title=title,
            description=description,
            verbosity=2,
            stream=fp
        )
        runner.run(creatsuite())


if __name__ == '__main__':
    run()
    """
    封装成目录,如果需要生成报告的测试,
    直接调用该模块中的run()方法即可。
    
    例如:
        # 引入模块
        from util import TestRunnerReport
        
        # 执行测试用例
        TestRunnerReport.run(title='ewr',description='123131')
        
    注意:这里只是提供一种封装的思路,仅供参考,
        可以根据自己的情况按需封装。
    """

最后我这里给你们分享一下我所积累和真理的文档和学习资料有需要是领取就可以了

1、学习思路和方法

这个大纲涵盖了目前市面上企业百分之99的技术,这个大纲很详细的写了你该学习什么内容,企业会用到什么内容。总共十个专题足够你学习

2、想学习却无从下手,该如何学习?

这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。

3、软件测试/自动化测试【全家桶装】学习中的工具、安装包、插件....

4、有了安装包和学习资料,没有项目实战怎么办,我这里都已经准备好了往下看

最后送上一句话:
世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。
如果我的博客对你有帮助、如果你喜欢我的文章内容,请 “点赞” “评论” “收藏” 一键三连哦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/35508.html

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

相关文章

javaweb JAVA JSP零食销售系统购物系统ssm购物系统购物商城系统源码(ssm电子商务系统)网上零食在线销售

JSP零食销售系统购物系统ssm购物系统购物商城系统源码(ssm电子商务系统)网上零食在线销售

[网络工程师]-应用层协议-DNS

域名系统(Domain Name System,DNS)是把主机域名解析成IP地址的系统,解决了IP地址难记的问题。该系统由解析器和域名服务器组成。DNS主要基于UDP协议,较少情况下使用TCP协议,端口号均为53。域名系统由三部分组成&#x…

解决Mybatis-Plus或PageHelper多表分页查询总条数不对问题

Mybatis-Plus版本3.4之后,对分页查询进行了优化 对于单表查询是没有问题的。而需要多表关联查询(自写sql)时,就会查询调用Mybatis-Plus的 .page(E page, Wrapper queryWrapper); 方法是就就会出现查询总数不对问题。 业务需要查…

[论文评析]MediaPipe Hands: On-device Real-time Hand Tracking, ArXiv,2020

MediaPipe Hands: On-device Real-time Hand Tracking论文信息简介Mediapipe Hands手掌检测器BlazePalm Detector手部骨骼检测Hand Landmark Model数据集构造应用References论文信息 论文题目:MediaPipe Hands: On-device Real-time Hand Tracking 发表&#xff1a…

STM32 IAP相关的FLASH数据读取和跳转

IAP操作一、STM32 FLASH 分区二、BootLoader程序三、UserAPP程序四、Flash数据的读取五、BootLoader到UserAPP的跳转一、STM32 FLASH 分区 以STM32G484RE举例,固件烧录到FLASH的起始地址进行保存,理论上可烧录的最大文件为512Kb,实际项目中固…

动态域名解析

众所周知,如果计算机想参与互联网通讯,无论是作为一台执行资源访问的客户端还是作为一台被访问的资源提供服务器,计算机必须分配一个合法的IP地址。这个地址通常由互联网服务商提供(在中国通常是电信部门) 这种IP地址…

2.JDBC必知必会

文章目录2.0 JDBC2.1 配置单数据源项目一:尝试Spring Boot自动装配数据源创建查看应用程序有哪些bean原理问题项目二:SpringMVC手动配置数据源Spring Boot自动装配原理与数据源相关配置项目三:尝试Spring Boot自动装配参数配置2.2.配置多数据…

基于自适应Sigmoid型函数的内镜图像增强与空间变颜色再现方法

论文题目:Image Enhancement and Space-variant Color Reproduction Method for Endoscopic Images using Adaptive Sigmoid Function 1 摘要 首先,使用YCCBR转换矩阵,将彩色图像分为亮度分量和色度分量,对均匀分布的亮度像素应…

论文笔记:PTR: Prompt Tuning with Rules for Text Classification

Abstract 手动设计大量语言提示麻烦且易出错,而自动生成的提示,在非小样本场景下验证其有效性昂贵且耗时。因此,提示调优以处理多类别分类任务仍然具有挑战。为此,本文提出使用规则进行多类别文本分类提示调优(PTR&…

深入理解Java线程间通信

合理的使用Java多线程可以更好地利用服务器资源。一般来讲,线程内部有自己私有的线程上下文,互不干扰。但是当我们需要多个线程之间相互协作的时候,就需要我们掌握Java线程的通信方式。本文将介绍Java线程之间的几种通信原理。 锁与同步 在…

进程与线程

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目…

微服务环境搭建

目录 一,微服务介绍 单体架构介绍 垂直应用架构 分布式架构 SOA架构 微服务架构 二,微服务架构简介 三,微服务搭建 模块设计 创建步骤 一,微服务介绍 系统架构大体经历了下面几个过程: 单体应用架构--->垂直应用架构---&…

【python】bin/dec/hex/bnr进制转换函数及fp32转十六进制

我们的目标是┏ (゜ω゜)☞芯片前端全栈工程师~喵! 前言 不知道为什么,给脚本专栏选的这个logo有种怪怪的感觉(⊙o⊙)… 为方便后续一些脚本工作,将常用的进制转换函数汇总。所有函数均为字符串输入输出,且不加0x、0b等关键字&a…

计算机硬件和软件

文章目录一 计算机硬件1)主板2)显示器3)键盘4)鼠标二 计算机软件(一)系统软件(1)操作系统(2)BIOS(3)设备驱动程序(二&…

K-verse 小型活动来袭!

欢迎来到韩流狂欢节! 我们的韩流活动以为期 2 周的 K-verse 小型活动拉开帷幕! 在 The Sandbox 的众多合作伙伴中,K League、Anicube、Sandbox Network 和 Cube 娱乐都为此次活动打造了独特的体验。从 11 月 24 日开始,玩家总共可…

digitalLogic_逻辑门和基本公式

文章目录refs逻辑闸或逻辑门与或非门反相器和泡泡与非/或非/异或同或/是/蕴含/蕴含非逻辑函数的表示方法及相互转换逻辑表达式化简基本公式异或和同或的常用运算公式refs digital_logic同或和异或的关系_xuchaoxin1375的博客-CSDN博客_异或与同或的关系模2运算_模二除法和CRC循…

彩虹之眼文化集团整体方案设计

彩虹之眼文化集团开业成功必须克服的问题是:既要有轰动的社会效应,又要有实实在在的营业额。而要使两者兼备,就要求助于开业前期的广告渲染,此方案解决的重要问题就是如何在有轰动社会效应的同时又兼具营业佳绩。因此本次公司宣传…

Android8.1 MTK 浏览器下载的apk点击无反应不能安装

最近测试人员发现用原生浏览器下载的apk点击安装时无反应,不能安装。 在/vendor/mediatek/proprietary/packages/apps/Browser/src/com/android/browser/DownloadHandler.java 中,发现下载的apk文件缺少了mime类型,如下图 mimetype null造…

第五章TCP/IP 网络在我们身边

个人简介:云计算网络运维专业人员,了解运维知识,掌握TCP/IP协议,每天分享网络运维知识与技能。个人爱好: 编程,打篮球,计算机知识个人名言:海不辞水,故能成其大;山不辞石…

Ubuntu22.2下C语言编程实现,首次,最佳适应算法

参考目录:1.题目要求2.分析设计3.程序代码4.运行截图5.程序说明1.题目要求 编写C语言程序,模拟实现首次/最佳/最坏适应算法(选择其中之一即可)的内存块分配和回收,要求每次分配和回收后显示出空闲分区和已分配分区的情况。假设初始状态下&am…