Python+selenium自动化生成测试报告

前言

批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的。

unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTestRunner

一、导入HTMLTestRunner

1.这个模块下载不能通过pip安装了,只能下载后手动导入,下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html

2.Download下HTMLTestRunner.py文件就是我们需要下载的包。

3.下载后复制到Python安装文件的Lib目录下

二、生成html测试报告

1.这里主要有三个参数:

stream:测试报告写入文件的存储区域

title:测试报告的主题

description:测试报告的描述

2. report_path是存放测试报告的地址

 运行脚本后在F盘指定位置就能找到这个测试报告文件,这时候如果文件多了,不知道测试报告在哪天生成的?能否在文件名上显示一个日期和时间呢?当然是可以的

备注:

%Y-%m-%d为年月日

%H-%M为时分  注意:时间之间不能使用冒号(:)因为文件名不能使用冒号

三、测试报告详情

1.找到测试报告文件,用浏览器打开,点开View里的Detail可以查看详情描述。

 红框中内容显是英文,我们不能直观看出是什么测试用例,可以在测试代码中添加中文注释,注释前面要加字母u,代码修改如下:

四、再次运行run_all_case脚本文件后,查看HTML测试报告

 

2.5 unittest断言

Python在 unittest.TestCase 类中提供了很多断言方法。断言方法检查你认为应该满足的条件是否确实满足。如果该条件确实满足,你对程序行为的假设就得到了确认,你就可以确信其中没有错误。如果你认为应该满足的条件实际上并不满足,Python将引发异常。下表描述了6个常用的断言方法。使用这些方法可核实返回的值等于或不等于预期的值、返回的值为 True 或 False 、返回的值在列表中或不在列表中。你只能在继承 unittest.TestCase 的类中使用这些方法。

三、unittest常用的断言方法

1.assertEqual(self, first, second, msg=None)

--判断两个参数相等:first == second

2.assertNotEqual(self, first, second, msg=None)

--判断两个参数不相等:first != second

3.assertIn(self, member, container, msg=None)

--判断是字符串是否包含:member in container

4.assertNotIn(self, member, container, msg=None)

--判断是字符串是否不包含:member not in container

5.assertTrue(self, expr, msg=None)

--判断是否为真:expr is True

6.assertFalse(self, expr, msg=None)

--判断是否为假:expr is False

7.assertIsNone(self, obj, msg=None)

--判断是否为None:obj is None

8.assertIsNotNone(self, obj, msg=None)--判断是否不为None:obj is not None

实例:assertEqual(a, b),其它的断言方法请自行偿试)

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

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

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

相关文章

SpringBoot系列之基于Jedis实现分布式锁

Redis系列之基于Jedis实现分布式锁 1、为什么需要分布式锁 在单机环境,我们使用最多的是juc包里的单机锁,但是随着微服务分布式项目的普及,juc里的锁是不能控制分布锁环境的线程安全的,因为单机锁只能控制同个进程里的线程安全&…

Java实现选择排序及其动图演示

选择排序是一种简单直观的排序算法。它的基本思想是每次从未排序的元素中选出最小(或最大)的元素,然后将其放到已排序的序列的末尾。具体步骤如下: 首先,找到未排序序列中的最小(或最大)元素&a…

PyInstaller 打包 Python 脚本为 .exe 可执行文件闪退、No Model named XXX问题

文章目录 前言.exe 可执行文件闪退No Model named XXXPython 环境问题查看当前python路径查看当前python环境使用的site-package路径 个人简介 前言 在上一篇文章中,我们介绍了如何将 Python 脚本打包为 .exe 可执行文件,但有时候打包生成的 .exe 文件会…

记录hive/spark取最新且不为null的方法

听标题可能听不懂我想表达的意思,我来描述一下我要做的事: 比如采集同学对某一网站进行数据采集,同一个用户每天会有很多条记录,所以我们要取一条这个用户最新的状态,比如用户改了N次昵称,我们只想得到最后…

MATLAB代码:含电热联合系统的微电网运行优化

微♥关注“电击小子程高兴的MATLAB小屋”获取专属优惠 说明书 MATLAB代码:含电热联合系统的微电网运行优化 关键词:微网 电热联合系统 优化调度 参考文档:《含电热联合系统的微电网运行优化》完全复现 仿真平台:MATLAB yalmi…

2024年AI云计算专题研究报告:智算带来的变化

今天分享的人工智能系列深度研究报告:《2024年AI云计算专题研究报告:智算带来的变化》。 (报告出品方:华泰证券) 报告共计:32页 Al 云计算 2024:关注智算带来的新变化 通过对海内外主要云厂商及其产业链…

C# WPF上位机开发(日志调试)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 程序开发的过程中,调试肯定是少不了的。比如说,这个时候,我们可以设置断点、查看变量、检查函数调用堆栈等等。…

目标检测锚框

目标检测锚框 最开始呢,我们需要先介绍一下框,先学会一下怎么画框 导入所需要的包 from PIL import Image import d2lzh_pytorch as d2l import numpy as np import math import torch展示一下本次实验我们用到的图像,猫狗 d2l.set_figsiz…

Uncaught ReferenceError: jQuery is not defined解决方法

当我在写java的Maven项目时,出现了这样的一个报错信息: 我一直找代码,抓包,调试,比对代码 jQuery未定义就是指JS的导包没有导进来!!!! 导进来就运行正常啦

SpringBoot集成系列--Kakfa

文章目录 一、代码1、添加依赖2、配置kafka3、创建生产者4、创建消费者5、测试 二、遇到问题1、could not be established. Broker may not be available2、Error while fetching metadata with correlation id xxx 一、代码 1、添加依赖 在pom.xml文件中添加Kafka的依赖 &l…

docker---资源控制

docker的资源控制 对容器使用宿主机的资源进行限制。 三种控制方向:CPU 内存 磁盘I/O docker使用linux自带的功能cgroup;control groups是linux内核系统提供的一种可以限制记录,隔离进程所使用的物理资源机制。 docker借助此…

excel数据重复率怎么计算【保姆教程】

大家好,今天来聊聊excel数据重复率怎么计算,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧: excel数据重复率怎么计算 在Excel中计算数据重复率可以通过以下步骤实现: 1. 确定重复…

redis的深度理解

上篇博客我们说到了redis的基本概念和基本操作,本篇我们就更深入去了解一些redis的操作和概念,我们就从red的主从同步、redis哨兵模式和redis集群三个方面来了解redis数据库 一、主从同步 像MySQL一样,redis是支持主从同步的,而…

排序的简单理解(下)

4.交换排序 基本思想:所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置 交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。 4.1 冒泡排序 冒泡排序&#xff08…

鸿蒙OS应用开发之点击事件

在前面我们学习了开发工具的使用,数据类型,运算符,语句和函数,已经具备了基本的编程能力,当然还有很多内容需要学习,比如类、类的继承、接口等等。 在没有学习更多内容之前,我们还是需要不断地练习基本内容,这样才能快速上手,如果一直学习新的内容,就会比较枯燥。因此…

数据结构和算法专题---8、加密算法

本章我们会对加密算法做个简单介绍,包括概述、实现方式、典型场景做个说明。 散列 概述 严格来讲这不算是一种加密,而应该叫做信息摘要算法。该算法使用散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。…

前端知识笔记(五)———前端密钥怎么存储,才最安全?

前端密钥存储安全是非常重要的,具体原因如下: 保护敏感数据:密钥用于保护敏感数据的安全性。如果密钥泄露,攻击者可能能够访问和篡改敏感数据,导致数据泄露、数据被篡改或系统被入侵。 防止恶意使用:在前端…

vue3若依框架,在页面中点击新增按钮跳转到新的页面,不是弹框,如何实现

在router文件中的动态路由数组中新增一个路由配置,这个配置的就是新的页面。 注意path不要和菜单配置中的路径一样,会不显示内容。 在菜单配置中要写权限标识就是permissions:[]里的内容 在children里的path要写占位符info/:data 点击新增按钮&#x…

HTML+CSS高频面试题

面试题目录 前言1.讲一下盒模型,普通盒模型和怪异盒模型有什么区别2.CSS如何实现居中3.讲一下flex弹性盒布局4.CSS常见的选择器有哪些?优先级5.长度单位px 、em、rem的区别6.position属性的值有哪些7.display属性的值有哪些,分别有什么作用8.…

前端知识笔记(一)———Base64图片是什么?原理是什么?优缺点是什么?

Base64图片是一种将图像数据编码为文本字符串的方法,通常用于将图像嵌入到网页或其他文档中,以减少HTTP请求或实现某些特定的需求。Base64编码不是一种压缩算法,而是一种数据编码方法,它将二进制数据转换为一种可读的ASCII字符集表…