使用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 文件

依赖:

bash 复制代码
<!-- 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>

插件:

bash 复制代码
            <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());

结果

相关推荐
i220818 Faiz Ul9 小时前
相亲网站|相亲网站系统|基于Java+vue相亲网站系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·相亲网站系统
asdfg12589639 小时前
str.charAt(i)和c.charValue()区分(c是Character (对象))
java
古城小栈9 小时前
Rust Tauri:构建轻量高性能跨平台桌面应用
开发语言·后端·rust
AKA__Zas9 小时前
芝士算法 (双指针篇2.0)
java·数据结构·leetcode·学习方法
ZFSS9 小时前
Pika 视频生成 API 集成教程
java·数据库·人工智能·ai·音视频
Chase_______9 小时前
【Java杂项】String 为什么不可变?从对象引用、常量池到字符串拼接讲清楚
java·开发语言
xwjalyf10 小时前
javascript数组 forEach,filter,some,every,map,find,reduce的用法与区别
开发语言·javascript·json·ecmascript
qq_25183645710 小时前
基于java Web 耗材购置与维修网络申报审批系统设计与实现
java·开发语言·前端
真恋寄语枫秋10 小时前
【Java零基础入门23】Java线程池深度详解:核心参数、拒绝策略、四种创建方式
java
AI玫瑰助手10 小时前
Python函数:def定义函数与参数传递基础
android·开发语言·python