背景
在mac os下,使用testng作为测试框架,将测试结果输出到allure report中,并通过jenkins运行测试和展示报告
环境
- JDK 11
在个人mackbook上使用 JDK8 做调试时,执行 allure serve生成报告时,虽然提示成功,但是报告上无法显示内容,更换到 JDK 11 后问题解决,建议直接使用JDK11 - allure
多种安装方式,可以 从 Grab it from releases (see Assets section). 手动安装
在 mac 环境下,也可以使用 Homebrew 安装
$ brew install allure
安装后,将alluer执行文件加入到path中,如果使用homebrew安装,则会自动加入到path中
可参考官网文档中的各种安装方式:https://docs.qameta.io/allure/#_about
使用方法
- 在 maven 工程中添加依赖和allure配置,${allure.version}选择最新版即可
依赖部分:
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-testng</artifactId>
<version>${allure.version}</version>
</dependency>
build配置部分:
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
<includes>
<include></include>
</includes>
<systemProperties>
<property>
<name>allure.results.directory</name>
<value>${project.build.directory}/allure-results</value>
</property>
<property>
<name>allure.link.issue.pattern</name>
<value>https://example.org/issue/{}</value>
</property>
</systemProperties>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
- 执行 mvn clean test , 在 allure.results.directory 指定位置中,生成报告文件夹( json数据等 )
- allure serve target/allure-result
serve 后的位置,是 allure.results.directory 中指定的位置,可变,如果未找到对应文件夹,在console中提示,仍然能启动服务,但报告无内容
启动后,会自动在浏览器中打开报告地址
这里省略了testng工程搭建的过程,可以自己写一个简单的,gitee demo_project 后续添加
与jenkins集成
-
安装插件
-
添加完后,到全局工具配置里,最下面有个Allure Commandline ,添加配置,填写allure安装路径
-
创建一个自由风格job,构建中,执行mvn clean test
-
构建后操作中,添加 allure report , 要确定results地址正确
初次执行时,执行构建,出错
The JAVA_HOME environment variable is not defined correctly,
在 jenkins 中配置 JAVA_HOME
重新 build, 仍出错
确认在该路径下,存在pom文件,在 execute shell 中添加 ls -l 加以确认,发现出现新的问题
ls: .: Operation not permitted
查询资料,【Mac OS】Mac部分目录读写提示“Operation not permitted”解决
是Mac OSX 系统中有一项Rootless机制,即使在root权限下也不能所以读写某些特定路径的文件。Rootless可以有效防止恶意程序对电脑的破坏,平时建议保持开启状态。
为了确认是 mac 安全机制的问题,先关闭保护机制再试试。
在重启电脑前,终端输入 csrutil status
查看目前状态,默认是 enabled
重启电脑,按住Command+R进入恢复模式,左上角菜单中,选择“实用工具-终端”点击菜单开启Terminal,输入: csrutil disable
,再选择重启即可。
重启电脑后,终端输入 csrutil status
查看目前状态,已经变成 disabled 了
重新build,执行成功。
设置allure report
设置好allure-results的路径,注意这里的路径是相对 jenkins_workspace 来的