无法从两个独立的 Jenkins maven 构建生成统一的 Allure 报告

Cannot generate unified Allure report from two separate Jenkins maven builds

我想通过合并两个独立的 Jenkins maven 项目的结果来生成一个统一的报告(我读过 Allure 确实支持该功能 - 合并结果不同的 allure-results 文件夹),但它不起作用正如我将在下面解释的那样正确。

我的 objective 是从所有项目的所有测试结果中获得可见性。目前只能看到某个项目的测试结果

这是上下文:

我有两个 Maven 项目(testNG)运行 并通过 JENKINS 上的 allure 报告结果。正如您在下面看到的,这两个构建的 allure 结果按预期工作 - 由 Allure Jenkins 插件版本 2.26.0

自动生成

Allure Jenkins plugin working fine for separate maven jobs

现在我还安装了 Allure 2.6.0 并将其添加到系统 PATH 并正确配置 ALLURE_HOME 环境变量。 所以当我在这里 运行 这个命令时: 诱惑服务 "C:\Users\tester\workspace\scripts-qa\STF\allure-results" --host "127.0.0.1" --port "8081"

它完美地报告了我的 IntelliJ 的 Allure-results 中的结果,如下所示。

Allure serve results from my local worspace

现在,当我 运行 与上述类似的命令通过合并我在 Jenkins 中获得的两个报告来生成统一报告时 - 只填充了执行趋势 - 但测试总数及其详细信息是不像你在下面看到的那样。 这是我为生成统一报告而执行的命令: 诱惑发球 "C:\Users\tester\.jenkins\workspace\Regression2\allure-report" "C:\Users\tester\.jenkins\workspace\Regression1\allure-report" --host "127.0.0.1" --port "8081"

Allure problem when trying to merge reports from two separate jenkins projects

你能帮我弄清楚这里出了什么问题吗?是否有可能 allure binary 无法提供由 allure Jenkins 插件生成的结果?如果是,解决该问题的工作是什么?

谢谢!! 让.

我看到您正在尝试从已生成的报告中生成累积报告,这是不正确的 - Allure 需要原始 allure-results 才能生成报告

作为解决方法,您需要

  1. 为每个测试执行作业存档 allure-results 并将其作为工件附加到构建中
  2. 复制 allure-results 个工件
  3. 解压缩
  4. 根据工件allure-results构建报告

以下是管道作业的代码片段

附加 allure-results 作为工件:

zip archive: true, dir: "target/allure-results", glob: '', zipFile: "allure-results.zip"

将工件复制到另一个作业:

copyArtifacts filter: 'allure-results.zip', optional: true, projectName: "Regression1", selector: lastCompleted(), target: "Regression1"
unzip dir: "Regression1", glob: '', zipFile: "Regression1/allure-results.zip"
...

构建报告

allure serve Regression1 Regression2

您还可以 select 像这样汇总报告:

allure includeProperties: false, jdk: '', results: [
        [path: '../name-of-job-1/target/allure-results'],
        [path: '../name-of-job-2/target/allure-results'],
        [path: '../name-of-job-3/target/allure-results']]
    }