首页 > 解决方案 > 从管道脚本将环境变量设置为 Allure 报告

问题描述

我正在使用以下allure步骤的管道配置运行 Jenkins 参数化作业:

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

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

有没有办法做到这一点?

标签: jenkinsjenkins-pipelineallureautotest

解决方案


披露:我创建了处理此问题的 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);
    }
}

推荐阅读