将环境变量设置为来自管道脚本的 Allure 报告

Set environment variables to Allure report from pipeline script

我是 运行 Jenkins 参数化作业,具有以下 allure 步骤的管道配置:

stage('Generate reports') {
    allure([
        includeProperties: false,
        jdk              : '',
        properties       : [],
        reportBuildPolicy: 'ALWAYS'
        results          : [[path: webdriverTestResultsPath], [path: unitTestResultsPath]]])
}

在开始作业之前设置的构建参数在我的测试中 getEnv() 内可用。我想在 Allure 报告仪表板的 Environment 部分中展示其中的一些内容。例如,有一个 HOST 构建参数指定基本应用程序 url.

有办法吗?

披露:我创建了 Java 库来处理这个问题:https://github.com/AutomatedOwl/allure-environment-writer

它使用 TransformerFactory 在测试的任何阶段将 environment.xml 写入 allure-results 路径。它还会检查目录是否存在,以防 运行 来自已清理的构建。

用法示例:

import static com.github.automatedowl.tools.AllureEnvironmentWriter.allureEnvironmentWriter;

public class SomeTests {

    @BeforeSuite
    void setAllureEnvironment() {
        allureEnvironmentWriter(
                ImmutableMap.<String, String>builder()
                        .put("Browser", "Chrome")
                        .put("Browser.Version", "70.0.3538.77")
                        .put("URL", "http://testjs.site88.net")
                        .build(), System.getProperty("user.dir")
                        + "/allure-results/");
    }

    @Test
    void someTest() {
        Assert.assertTrue(true);
    }
}

您也可以利用environment.properties文件,文件格式:

Browser=Chrome
Browser.Version=63.0
Stand=Production

来源: https://docs.qameta.io/allure/#_environment

文件位置:allure-results目录(例如target/allure-results)

您可以在生成魅力报告之前在管道中生成文件。

Gitlab 管道示例:

publish-reports:
  extends:
    - .runner
  stage: report-results
  artifacts:
    paths:
      - allure-results
    expire_in: 14 days
  before_script:
    - mkdir -p target/allure-results || true  
  script:
    - echo "============== PREPARE ALLURE ENV VARIABLES FILE =========================="
    - echo "Browser=${VAR_BROWSER}" > target/allure-results/environment.properties
    - echo "BrowserVersion=${VAR_BROWSER_VERSION}" >> target/allure-results/environment.properties
    - echo "Stand=${VAR_STAND}" >> target/allure-results/environment.properties

    - echo "============== GENERATING ALLURE REPORTS STATIC WEB PAGE ================="
    - cp -rp allure-results target/allure-results/
    - mvn --settings ${M2SETTINGS} allure:report