You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中向Allure报告写入环境值失败求助(Playwright-Java)

解决Playwright-Java中Allure报告环境参数为空及代码报错问题

问题排查与修复步骤:

  • 更新依赖版本
    你使用的allure-environment-writer 1.0.0版本过于陈旧,大概率和当前Allure核心版本不兼容,导致环境配置文件生成失败。将依赖替换为最新稳定版:

    <dependency>
        <groupId>com.github.automatedowl</groupId>
        <artifactId>allure-environment-writer</artifactId>
        <version>1.1.2</version>
        <scope>test</scope>
    </dependency>
    
  • 修正路径与目录问题
    硬拼接user.dir + /allure-results/可能引发路径分隔符(如Windows系统)或目录不存在的问题。先确保目标目录存在,或直接使用Allure默认的结果目录配置:

    File allureResultsDir = new File(System.getProperty("allure.results.directory", "allure-results"));
    if (!allureResultsDir.exists()) {
        allureResultsDir.mkdirs();
    }
    
  • 检查注解与导入完整性

    1. 确认@BeforeSuite是TestNG的注解,需导入org.testng.annotations.BeforeSuite,不要误用JUnit的同名注解。
    2. 确保ImmutableMap已正确导入:import com.google.common.collect.ImmutableMap;,若项目未引入Guava依赖,需添加:
      <dependency>
          <groupId>com.google.guava</groupId>
          <artifactId>guava</artifactId>
          <version>32.1.3-jre</version>
          <scope>test</scope>
      </dependency>
      
  • 动态获取Playwright真实浏览器信息(替代硬编码)
    不要写死浏览器版本,直接从Playwright实例中获取运行时的真实信息,准确性更高:

    import com.microsoft.playwright.Browser;
    import com.microsoft.playwright.Playwright;
    import com.github.automatedowl.tools.AllureEnvironmentWriter;
    import com.google.common.collect.ImmutableMap;
    import org.testng.annotations.BeforeSuite;
    import java.io.File;
    
    public class SomeTests {
        private Playwright playwright;
        private Browser browser;
    
        @BeforeSuite
        void setAllureEnvironment() {
            // 初始化Playwright获取真实浏览器信息
            playwright = Playwright.create();
            browser = playwright.chromium().launch();
            String browserName = browser.browserType().name();
            String browserVersion = browser.browserType().version();
    
            // 创建allure-results目录(如果不存在)
            File allureResultsDir = new File(System.getProperty("allure.results.directory", "allure-results"));
            if (!allureResultsDir.exists()) {
                allureResultsDir.mkdirs();
            }
    
            // 写入环境信息
            AllureEnvironmentWriter.allureEnvironmentWriter(
                    ImmutableMap.<String, String>builder()
                            .put("Browser", browserName)
                            .put("Browser.Version", browserVersion)
                            .put("Environment", "alpha") // 可替换为beta或其他环境名
                            .put("URL", "http://testjs.site88.net")
                            .build(),
                    allureResultsDir.getAbsolutePath()
            );
    
            // 关闭浏览器(若BeforeSuite无需保留实例)
            browser.close();
            playwright.close();
        }
    }
    
  • 验证结果
    执行测试后,检查allure-results目录下是否生成environment.properties文件,文件内应包含你设置的所有键值对。若文件生成正常,重新生成Allure报告即可看到环境参数。

内容的提问来源于stack exchange,提问作者Shilpa Shree

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 22:20:28