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

使用Allure作为测试报告生成器(Java+Selenium)

背景

JAVA项目中原先用Jenkins+selenium+selenium grid来日常测试UI并记录。

问题

当某一个testSuite失败时,当需要确认UI regression issue还是selenium test case自身的问题,需要去jenkins中查log,一般得到的是“Can not find element xxxxxx by path xxx”,但又无法确定具体是什么问题,又得去grid server录频中找具体问题,定位耗时。

解决方案

在log文本和grid server录屏中间增加一个图片层级,引入Allure来记录报错截屏。

实施

pom.xml 文件

依赖:

<!-- 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>

插件:

            <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><configuration><systemPropertyVariables><allure.results.directory>${project.basedir}/target/allure-results</allure.results.directory></systemPropertyVariables><parallel>methods</parallel><threadCount>10</threadCount></configuration></plugin></plugins>

在package: test.selenium.framework 中的Browser 类
// allure-report
try {
Allure.addAttachment(name, “image/png”, Files.newInputStream(file.toPath()),“.png”);
} catch (IOException e) {
e.printStackTrace();
}
Allure.addAttachment(“Error message”, “text/csv”, throwable.toString());

结果

在这里插入图片描述

相关文章:

使用Allure作为测试报告生成器(Java+Selenium)

背景 JAVA项目中原先用Jenkinsseleniumselenium grid来日常测试UI并记录。 问题 当某一个testSuite失败时&#xff0c;当需要确认UI regression issue还是selenium test case自身的问题&#xff0c;需要去jenkins中查log&#xff0c;一般得到的是“Can not find element xxx…...

RocketMQ面试题合集

消费者获取消息是从Master Broker还是Slave Broker获取&#xff1f; Master Broker宕机&#xff0c;Slave Broker会自动切换为Master Broker吗&#xff1f; 这种Master-Slave模式不是彻底的高可用模式&#xff0c;他没法实现自动把Slave切换为Master。在RocketMQ 4.5之后&…...

Qt初识_对象树

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 Qt初识_对象树 收录于专栏【Qt开发】 本专栏旨在分享学习Qt的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 什么是对象树 为什么要引…...

axios的get和post请求,关于携带参数相关的讲解一下

在使用 Axios 发送 HTTP 请求时&#xff0c;GET 和 POST 请求携带参数的方式有所不同。以下是关于这两种请求方法携带参数的详细讲解&#xff1a; GET 请求携带参数 对于 GET 请求&#xff0c;参数通常附加在 URL 之后&#xff0c;以查询字符串的形式传递。 直接在 URL 中拼接…...

Vue前端开发-路由其他配置

在路由文件中&#xff0c;除了跳转配置外&#xff0c;还可以进行路径重定向配置&#xff0c;如果没有找到对应的地址&#xff0c;还可以实现404的配置&#xff0c;同时&#xff0c;如果某个页面需要权限登录&#xff0c;还可以进行路由守卫配置&#xff0c;接下来&#xff0c;分…...

框架建设实战7——定时任务组件

在金融系统中,或者其他对账系统里,往往离不开分布式定时任务。用来做查证或者重试处理。 分布式job目前一般有如下三种: 1.elastic job 当当出品,比较老牌。新公司用的应该不多了。 2.xxl-job 个人开源项目。便于二开;有简洁的后管配置界面,方便接入。 3.powerjob …...

mybatis 整合 ehcache

pom.xml <!-- ehcache依赖 --><dependency><groupId>org.mybatis.caches</groupId><artifactId>mybatis-ehcache</artifactId><version>1.1.0</version></dependency>ehcache.xml <?xml version"1.0" en…...

【PlantUML系列】用例图(三)

目录 一、组成部分 二、典型案例 一、组成部分 参与者&#xff08;Actors&#xff09;&#xff1a;使用关键字 actor 后跟参与者的名称。用例&#xff08;Use Cases&#xff09;&#xff1a;使用关键字 usecase 后跟用例的名称和编号&#xff08;可选&#xff09;。系统边界…...

发送请求时遇到了数据库完整性约束错误 1048 Column ‘platform‘ cannot be null

可以这样解决 在 Vue 2 中封装接口请求时&#xff0c;确保每次请求都包含 platform Header 参数的最佳实践是通过创建一个全局的 Axios 实例&#xff0c;并为这个实例设置默认的 Header。这样可以确保所有通过该实例发送的请求都会自动包含 platform 参数。此外&#xff0c;你…...

三菱FX3U模拟量产品的介绍

FX3u可编程控制器模拟量产品包括&#xff1a;特殊适配器、特殊功能模块的连接 1、连接在FX3U可编程控制器的左侧。 2、连接特殊适配器时&#xff0c;需要功能扩展板。 3、最多可以连接4台模拟量特殊适配器。 4、使用高速输入输出特殊适配器时&#xff0c;请将模拟量特殊适配器连…...

pdf转图片

目录 pdf2image库 PyMuPDF库 python-office库 pdfplumber库 pdf2image库 安装&#xff1a;pip install pdf2image 使用时会报错&#xff1a;pdf2image.exceptions.PDFInfoNotInstalledError: Unable to get page count. Is poppler installed and in PATH? 需要安装 po…...

Go 协程上下文切换的代价

在 Go 语言中&#xff0c;协程&#xff08;Goroutine&#xff09;是一种非常轻量级的并发执行单元&#xff0c;设计之初就是为了简化并发编程并提高性能。协程的上下文切换被认为是非常高效的&#xff0c;但是它的真正性能优势需要我们深入了解其背后的机制。 本文将深入探讨 …...

HTTP 持久连接(长连接)

HTTP 持久连接&#xff08;长连接&#xff09; HTTP 持久连接&#xff08;HTTP Persistent Connections&#xff09;&#xff0c;也常被称作 HTTP 长连接&#xff0c;是 HTTP 协议中的一种重要特性&#xff0c;以下是关于它的详细介绍&#xff1a; 一、基本概念 在传统的 HTT…...

12月10日IO

作业&#xff1a;使用read和write实现拷贝文件&#xff0c;将1.txt内容前一半拷贝给2.txt后一半拷贝给3.txt #include <myhead.h>int main(int argc, const char *argv[]) {//打开三个文件int fd1,fd2,fd3;fd1open("1.txt",O_RDONLY);fd2open("2.txt&quo…...

Composite Pattern

Composite Pattern The intent of Composite pattern is to composite objects into tree structures to represent a “part-whole” hierarchy .The Composite Pattern allow clients to treat individual objects and composite objects uniformly. UML Used in Qt Exam…...

Springboot MVC

1. Springboot为MVC提供的自动配置 Spring Boot 为 Spring MVC 提供了自动配置&#xff0c;这在大多数应用程序中都能很好地工作。除了已经实现了 Spring MVC 的默认功能外&#xff0c;自动配置还提供了以下特性&#xff1a; 包括 ContentNegotiatingViewResolver 和 BeanNam…...

MySQL数据表记录增操作

对数据库的操作用的最最频繁的呢,总结起来就四个字:增删改查! 查是属于DQL(Data QueryLanguage &#xff0c;数据查询语言)部分,而增、改、删属于DML&#xff08;Data Manipulation Language, 数据操纵语言&#xff09; 增&#xff1a;作用是往数据库的数据表里写入记录值 语…...

maven报错“找不到符号“

问题 springboot项目 maven编译打包过程&#xff0c;报错"找不到符号" 解决 很多网上方法都试过&#xff0c;都没用 换jdk&#xff0c;把17->21...

python进阶-05-利用Selenium来实现动态爬虫

python进阶-05-利用Selenium来实现动态爬虫 一.说明 这是python进阶部分05&#xff0c;我们上一篇文章学习了Scrapy来爬取网站&#xff0c;但是很多网站需要登录才能爬取有用的信息&#xff0c;或者网站的静态部分是一个空壳&#xff0c;内容是js动态加载的,或者人机验证&…...

P1226 【模板】快速幂

题目描述 给你三个整数 &#x1d44e;,&#x1d44f;,&#x1d45d;求 &#x1d44e;&#x1d44f; mod &#x1d45d; 输入格式 输入只有一行三个整数&#xff0c;分别代表 &#x1d44e;,&#x1d44f;,&#x1d45d; 输出格式 输出一行一个字符串 a^b mod ps&#xf…...

5个核心功能实现全球多语言语音降噪:基于深度滤波的开源解决方案

5个核心功能实现全球多语言语音降噪&#xff1a;基于深度滤波的开源解决方案 【免费下载链接】DeepFilterNet Noise supression using deep filtering 项目地址: https://gitcode.com/GitHub_Trending/de/DeepFilterNet 在当今全球化的语音通信时代&#xff0c;背景噪声…...

Linux下Conda+R+RStudio环境配置全攻略:从零搭建高效数据分析平台

1. 为什么选择Conda管理R环境&#xff1f; 很多数据分析师习惯直接在系统里安装R和R包&#xff0c;但很快就会遇到版本冲突的麻烦。比如你需要安装一个要求R 4.3.0的包&#xff0c;但系统里装的是R 4.2.0&#xff0c;更糟的是其他所有包都是基于4.2.0编译的。这时候conda的价值…...

STM32duino ILPS22QS气压传感器驱动深度解析

1. 项目概述STM32duino ILPS22QS 是一个面向 STM32 平台的 Arduino 兼容库&#xff0c;专为意法半导体&#xff08;STMicroelectronics&#xff09;推出的超低功耗数字气压传感器 ILPS22QS 设计。该库并非通用传感器抽象层&#xff0c;而是深度适配 STM32 硬件生态的底层驱动实…...

RC滤波器设计原理与工程实践指南

1. RC滤波器设计原理与工程实践1.1 滤波器在嵌入式系统中的作用在嵌入式系统设计中&#xff0c;传感器信号普遍存在噪声干扰问题。典型场景中&#xff0c;5kHz有效信号常伴随500kHz高频噪声&#xff0c;此时RC无源滤波器凭借低成本、易实现等优势成为首选方案。其硬件设计可直接…...

安装claude code,开始学习强大的AI编程助手

1.首先检查是否安装node.js&#xff08;版本尽量大于22&#xff09; window端输入winr -> cmd 打开终端查看node版本 可以使用nvm去管理nodejs版本&#xff0c;安装方式见 https://blog.csdn.net/m0_56820004/article/details/159585001?spm1011.2415.3001.10575…...

AIGC查重率多少合格?看完这篇就清楚了

相信不少用AI辅助写论文的同学都有过这种焦虑&#xff1a;深夜改完终稿&#xff0c;想起学校要求提交AIGC检测报告&#xff0c;翻遍论坛找不到明确的合格标准&#xff0c;手心出汗反复刷新搜索结果&#xff0c;就怕自己的AI生成占比超标过不了审。作为常年跟各类论文查重工具打…...

重构AI训练数据管理流程:BooruDatasetTagManager如何提升图像标签标注效率83%

重构AI训练数据管理流程&#xff1a;BooruDatasetTagManager如何提升图像标签标注效率83% 【免费下载链接】BooruDatasetTagManager 项目地址: https://gitcode.com/gh_mirrors/bo/BooruDatasetTagManager 在AI模型训练的数据准备阶段&#xff0c;图像标签管理是决定模…...

Ubuntu22.04桌面版root登录避坑指南:从密码设置到SSH远程连接完整流程

Ubuntu 22.04桌面版root权限全流程实战&#xff1a;从密码安全到SSH调优 刚接触Ubuntu桌面环境时&#xff0c;很多开发者会遇到这样的困境&#xff1a;图形界面操作需要频繁输入sudo密码&#xff0c;而某些系统级配置又必须使用root账户。本文将带你用工程师思维解决这个痛点&a…...

SolidWorks装配体设计必备:如何用草图投影实现零件快速匹配(2023最新版)

SolidWorks装配体设计效率革命&#xff1a;草图投影的进阶应用与实战技巧 在三维机械设计领域&#xff0c;装配体设计往往是最考验工程师功底的环节。当数十甚至上百个零件需要在虚拟空间中精确配合时&#xff0c;传统逐个修改零件的方法不仅效率低下&#xff0c;还容易产生累积…...

DFRobot SHT温湿度传感器驱动库深度解析与工程实践

1. DFRobot SHT系列温湿度传感器库深度解析&#xff1a;从硬件特性到嵌入式驱动工程实践1.1 项目定位与技术演进脉络DFRobot_SHT并非单一传感器驱动&#xff0c;而是一个面向工业级环境监测场景的多代传感器统一抽象层。其核心价值在于封装SHTC3与SHT40两款不同世代的数字温湿度…...