问答 求教:jenkins 安装 allure 后,在 slave 节点跑自动化测试脚本,产生的 allure 报告,无法显示(ERROR 403)

Jason_chen · 2021年08月02日 · 最后由 Fenix 回复于 2021年08月10日 · 3535 次阅读

jenkins allure,在 slave 节点跑自动化测试脚本,产生的 allure 报告,无法显示(ERROR 403)

描述:
测试环境:
1、master 主机(服务器 1)安装 jenkins 且装了 allure 插件
2、slave 机器(服务器 2)安装了 allure 且运行 pytest 自动化测试脚本

报错:

jenkins job 配置:

启动 pytest 代码和 allure json 数据路径:

从报错来看,似乎读取报告,直接到 master(jenkins 所在机器)上找 allure json 数据,而我是在 slave 机器上跑的自动化测试,allure json 数据也是在 slave 机器上,自动化测试脚本是成功跑完的,且也在 salve 机器中的 report/allure 下产生了 json 数据文件,但是就是读取不到。

大家有没有什么建议,先谢谢各位啦~

共收到 5 条回复 时间 点赞

问题已解决,我使用的 jenkins allure 插件为 2.8 版本的,在产生报告的时候,路径带上了引号,使得报告直接在 workspace 的当前项目下,创建了引号为开头的目录及报告文件,如下图第一个红色的引号,它是一个文件夹:

升级 jenkins allure 插件到 3.11 版本,就能够正常产生报告。但还无法确定是插件的一个不稳定的 bug,还是测试环境的原因

你那个报告地址没有添加 ${workspace}吧

另外,报告正常后,我发现每次的 build job 要么是 failed,要么就是 unstable。原因:failed 是因为测试用例出现了 failed 的情况,导致 job failed,但如果测试用例都是 passed,就出现了 unstable,这是因为每一次的 allure result 都在一个文件夹下,重复使用了,其产生的 report 就会基于之前的进行累加,整个 build job 也会变成 unstable。

我在社区中,看到了这个问题,https://testerhome.com/topics/18011

借鉴这种方式,解决了 allure result 在同一个文件夹下的问题,但是 report path 是不支持传入变量的,这个可以参考这个https://github.com/allure-framework/allure2/issues/887allure,我是直接去除这个变量,保留 result 中的变量即可,其每个 job 的报告结果不会有影响

Jason_chen 关闭了讨论 08月04日 12:15
Jason_chen 重新开启了讨论 08月04日 12:18
ChasingV 回复

allure-jenkins-plugin.hpi 2.8 版本,没有传 report path 的地方,所以系统直接使用默认的 path,就是 workspace 的路径,只不过我看有引号,它就直接在项目目录下,有创建了目录:

这是原先的:

这是现在的:

两条产生报告的命令中 -o 参数后边的路径,2.8 版本带来引号,3.1 版本是没有引号的

兄弟你这照片看得我眼睛都花了😂 ,下次建议使用截图😂 😂 😂

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册