Selenium+Java+Maven(12):引入Allure作为报告生成器

news2024/11/25 6:28:30

一、前言

本篇作为Selenium+Java系列的补充,讲了如何使用Allure作为测试报告生成器,来替代TestNG自带的测试报告或ReportNG测试报告,生成更加美观的(领导更喜欢的)测试报表。话不多说,一起来学习吧~

二、Allure的安装与环境变量配置

【1】安装及环境变量配置

需要先在本机安装一个Allure,并配置好环境变量。
下载地址:https://download.csdn.net/download/qq_36396763/87402182
下载好直接解压,然后将bin文件夹的路径配置到系统环境变量中即可:
在这里插入图片描述

【2】测试

Ctrl+R启动cmd,运行命令:

allure

只要没报错,就说明配置成功了。

三、pom文件中Allure的配置

在pom.xml中增加如下内容:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.20.1</version>

      <configuration>
        <!-- 指定testng.xml文件 -->
        <suiteXmlFiles>
          <suiteXmlFile>${basedir}/testng-test.xml</suiteXmlFile>
        </suiteXmlFiles>
        <!--设置参数命令行 -->
        <argLine>
          <!-- 用于解决TestNG Result中文乱码 -->
          -Dfile.encoding=UTF-8
          <!-- 配置拦截器 -->
          -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
        </argLine>
        <!-- 测试失败后,是否忽略并继续测试 -->
        <testFailureIgnore>true</testFailureIgnore>
        <systemProperties>
          <property>
            <!-- 配置 allure 结果存储路径 -->
            <name>allure.results.directory</name>
            <value>./allure-results</value>
          </property>
        </systemProperties>
      </configuration>

      <dependencies>
        <!-- allure相关依赖 -->
        <dependency>
          <groupId>org.aspectj</groupId>
          <artifactId>aspectjweaver</artifactId>
          <version>${aspectj.version}</version>
        </dependency>
      </dependencies>
    </plugin>
  <defaultGoal>compile</defaultGoal>
</build>
<!-- allure报表依赖 -->
<dependency>
  <groupId>io.qameta.allure</groupId>
  <artifactId>allure-testng</artifactId>
  <version>2.12.1</version>
  <scope>test</scope>
</dependency>

<!-- allure相关依赖 -->
<dependency>
  <groupId>org.aspectj</groupId>
  <artifactId>aspectjweaver</artifactId>
  <version>1.8.10</version>
</dependency>

<!-- testNG依赖 -->
<dependency>
  <groupId>org.testng</groupId>
  <artifactId>testng</artifactId>
  <version>6.14.3</version>
  <scope>test</scope>
</dependency>

四、编写一个简单的示例代码

基于TestNG,随便写一段自动化脚本均可:
在这里插入图片描述

编写完后使用mvn test命令,即可执行测试脚本,并生成测试结果。
需要注意的是:如果你使用“在testng.xml文件上右键->运行”的方式执行测试脚本,则不会生成allure测试结果。

五、生成测试报告

执行完测试脚本后,会在项目路径下生成一个allure-results文件夹,其中存放着一堆json文件,这就是生成的测试结果文件了,但目前还无法直观地查看,需要使用如下方式将其渲染成可视化图表后查看。
在这里插入图片描述
在这里插入图片描述

方式一:直接创建Allure服务查看

注意这里的 要替换为allure-results文件所在的路径:

allure serve <path>

例如:allure serve E:\CodeSpace\swdata-ui-autotest\allure-results
需要注意的是:报告不会自动刷新,每次运行完测试后,都需要重新执行以上命令,重新生成报告。

方式二:生成html后查看

1、转换

allure转换命令:allure generate allure源文件目录 -o 转换后目录

allure generate allure-results -o report/

在这里插入图片描述

转换完成后,会在与allure-results同级目录下生成一个report文件夹。
其中有一个index.html文件,但不支持直接使用浏览器打开,需要使用allure做渲染后进行查看。渲染方式如下:

2、allure渲染报告并查看

以下命令中的report就是转化后的文件夹路径。

allure open report

执行完以上命令后,会自动打开浏览器。可查看对应的测试结果:
在这里插入图片描述

在这里插入图片描述

六、疑难问题解决

【1】生成的Allure报告中没有数据

报错现象

在这里插入图片描述

解决方案

看看生成报告的路径 和你在Allure命令中填写的路径 是不是一致的:
在这里插入图片描述

结果:
在这里插入图片描述

【2】生成的Allure报告中全都是loading

报错现象

在这里插入图片描述

解决方案

这是因为report文件夹中的index.html文件是不能直接打开的,需要用allure命令渲染之后打开才能正常展示:

# report就是index.html文件所在的文件夹路径。
allure open report

效果:
在这里插入图片描述


软件测试工程师一只,也在不断的学习阶段,平时的小经验不定期分享。
博主经验有限,若有不足,欢迎交流,共同改进~
乾坤未定,你我皆是黑马

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

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

相关文章

蒙特卡洛算法详解

蒙特卡洛算法是20世纪十大最伟大的算法之一&#xff0c;阿法狗就采用了蒙特卡洛算法。 1、定义 蒙特卡洛方法也称为 计算机随机模拟方法&#xff0c;它源于世界著名的赌城——摩纳哥的Monte Carlo(蒙特卡洛)。 它是基于对大量事件的统计结果来实现一些确定性问题的计算。其实…

什么是独立性?如何提高独立性?

独立是每个人必经的成长阶段&#xff0c;也是实现人生价值最重要的途径。没有独立就不能实现真正意义上的人生。独立是我们克服困难、实现抱负的最重要的精神力量&#xff0c;也是我们收获幸福的保障。1、什么是独立性&#xff1f;独立性是意志指不受他人影响、能够独立解决问题…

迟到两年的求职总结经验分享

迟到两年的求职总结&经验分享 写在前面 ​ 号主于2021年3月-2021年9月断断续续参加了校园招聘&#xff0c;包括但不限于&#xff1a;暑期实习、秋招提前批、秋招正式批。收获offer包括但不限于&#xff1a;某互联网推荐算法工程师、某通讯公司数据挖掘工程师、某金融科技…

docker 安装mysql8

docker 安装mysql8无法远程登录 # 启动容器 docker run \ -p 13306:3306 \ --name mysql \ --privilegedtrue \ --restartalways \ -v /home/mysqldata/mysql:/etc/mysql \ -v /home/mysqldata/mysql/logs:/logs \ -v /home/mysqldata/mysql/data:/var/lib/mysql \ -v /etc/l…

C++11线程间共享数据

C11线程间共享数据 使用全局变量等不考虑安全的方式以及原子变量这里就不进行说明了。 在多线程中的全局变量&#xff0c;就好比现实生活中的公共资源一样&#xff0c;比如你有一个同时只能允许一个人做饭的厨房&#xff0c;那么在你占用期间&#xff0c;你的室友就必须等待。…

synchronized锁的升级

synchronized锁优化的背景 用锁能够实现数据的安全性&#xff0c;但是会带来性能的下降 无锁能够基于线程并行提升程序性能&#xff0c;带来安全性的下降 java5 synchronized默认是重量级锁&#xff0c;java6以后引入偏向锁和轻量锁&#xff0c;java15 逐步废弃了偏向锁 …

机器学习实战(第二版)读书笔记(4)——seq2seq模型注意力机制(BahdanauAttention,LuongAttention)详解

一、Seq2seq模型 机器学习实战(第二版)读书笔记(1)——循环神经网络&#xff08;RNN&#xff09; 中详细介绍了RNN如下图1所示&#xff0c;可以发现RNN结构大多数对序列长度比较局限&#xff0c;对于机器翻译等任务(输入输出长度不想等N to M)&#xff0c;RNN没办法处理&…

SVN使用:Mac电脑中修改SVN输出信息为英文的方法

前言 作为软件开发人员&#xff0c;关于项目代码管理以及维护想必都不陌生&#xff0c;尤其是在团队协作的时候&#xff0c;多人开发维护同一个项目更是需要代码管理。关于项目代码管理维护工具&#xff0c;常用的就是Git、SVN等管理工具。本篇文章只来分享一下关于SVN的配置设…

C语言学习笔记-常量

“常量”的广义概念是&#xff1a;‘不变化的量’。例如&#xff1a;在计算机程序运行时&#xff0c;不会被程序修改的量。 以上是百度百科上对常量的部分定义。C语言的学习过程中将会接触很多的常量&#xff0c;不同类型的常量其定义、用法等会有所差异。要搞清楚他们的相似与…

如何恢复已删除的文件?5分钟搞定的简单方法。

本文介绍如何使用文件恢复程序恢复已删除的文件。它包括与恢复已删除文件相关的提示。 如何恢复已删除的文件 从硬盘驱动器恢复已删除的文件并不是一件疯狂的事情&#xff0c;但一旦您意识到文件已被删除&#xff0c;就尝试恢复会有所帮助。被删除的文件通常不会被真正删除&am…

终于有人把数据仓库讲明白了

数仓概念 ⚫ 数据仓库&#xff08;英语&#xff1a;Data Warehouse&#xff0c;简称数仓、DW&#xff09;,是一个用于存储、分析、报告的数据系统。 ⚫ 数据仓库的目的是构建面向分析的集成化数据环境&#xff0c;分析结果为企业提供决策支持&#xff08;Decision Support&am…

Linux入门教程|| Linux 忘记密码解决方法|| Linux 远程登录

很多朋友经常会忘记Linux系统的root密码&#xff0c;linux系统忘记root密码的情况该怎么办呢&#xff1f;重新安装系统吗&#xff1f;当然不用&#xff01;进入单用户模式更改一下root密码即可。 步骤如下&#xff1a; 重启linux系统 3 秒之内要按一下回车&#xff0c;出现如…

解决Error: Electron failed to install correctly, please delete......报错的问题

问题 在启动electron项目的时候&#xff0c;报mlgb错 Error: Electron failed to install correctly, please delete node_modules/electron and try installing again 搞了 好久 才解决 原因 升级Electron到7.0.0&#xff0c;提示Electron failed to install correctly, p…

python数据可视化开发(3):使用psutil和socket模块获取电脑系统信息(Mac地址、IP地址、主机名、系统用户、硬盘、CPU、内存、网络)

系列文章目录 python开发低代码数据可视化大屏&#xff1a;pandas.read_excel读取表格python实现直接读取excle数据实现的百度地图标注python数据可视化开发(1)&#xff1a;Matplotlib库基础知识python数据可视化开发(2)&#xff1a;pandas读取Excel的数据格式处理 文章目录系…

Linux下监控类命令:ps,du,top,df,free详解

Linux下监控类命令top命令top信息解释top参数使用ps命令ps信息解释ps参数使用du和dffree命令top命令 top命令&#xff0c;是Linux下常用的性能分析工具&#xff0c;能够实时显示系统中各个进程的资源占用状况&#xff0c;一般系统资源导致的崩溃问题可以使用top实时监控各进程…

魔兽世界服务器架设开服教程(巫妖王之怒外网详细教程)

魔兽世界服务器架设开服教程&#xff08;巫妖王之怒外网详细教程&#xff09;首先需要了解魔兽各个重要文件详细情况说明不管是任何一个魔兽世界GM想要将服务器修改成为自己想要的样子&#xff0c;首先要做的一件事情就是了解自己的服务器文件是说明意思&#xff0c;对于大多数…

2023年java面试之设计模式

1.什么是设计模式设计模式&#xff0c;是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。2.为什么要学习设计模式看懂源代码&#xff1a;如果你不懂设计模式去看Jd…

云原生周刊 | 使用 K8s 可视化工具集来调试业务 | 2023-1-30

开源项目推荐 k8z k8z 意在 K8s 业务层面&#xff0c;提供一个方便好用的 K8s 集群可视化工具集。目前包含以下功能&#xff1a; 终端&#xff1a;连接到集群任意 Pod 容器上&#xff0c;方便调试Tcpdump&#xff1a;对集群内容器进行 tcpdump 抓包&#xff0c;可直接展示抓…

七天实现一个go web框架

目录引流为什么要用web框架复习下net/http库以及http.Handler接口代码结构General.go启动&#xff01;上下文必要性封装前context.go拆分router封装后启动&#xff01;前缀树路由Trie 树目标实现前缀树修改router改变ServeHTTP实现分组控制Group对象的属性其余实现中间件实现其…

云计算|OpenStack|社区版OpenStack安装部署文档(三 --- 身份认证服务keystone安装部署---Rocky版)

一&#xff0c; 什么是keystone keystone是openstack的关键必选组件之一&#xff0c;其作用是提供身份认证服务&#xff0c;所有的身份认证信息都是存储在controller节点的数据库内。 具体的关于keystone的介绍可以参见官方文档&#xff1a;OpenStack Docs: Identity servic…