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

时间:2018-05-27 18:38:17

标签: maven jenkins report allure

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

我的目标是从所有项目中获得所有测试结果的可见性。目前,我只能看到特定于项目的测试结果。

这是上下文:

我通过JENKINS上的诱惑运行和报告结果的两个Maven项目(testNG)。如下所示,这两个版本的诱惑效果正如预期的那样 - 由Allure Jenkins插件版本2.26.0自动生成

Allure Jenkins plugin working fine for separate maven jobs

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

完全可以通过我的IntelliJ在我的Allure结果中报告结果,如下所示。

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

你可以帮我弄清楚这里有什么问题吗?这可能是诱惑二进制无法提供由诱惑Jenkins插件生成的结果吗?如果是,那么解决这个问题的工作是什么?

谢谢!! 让。

2 个答案:

答案 0 :(得分:0)

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

作为解决方法,您需要

  1. 为每个测试执行作业存档allure-results并将其附加到构建为工件
  2. 复制allure-results工件
  3. 解压缩
  4. 根据工件中的allure-results构建报告
  5. 以下是管道作业的代码段

    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
    

答案 1 :(得分:0)

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

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']]
    }