将环境变量设置为来自管道脚本的 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
我是 运行 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