背景
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());