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

Allure TestNG日志附加图片不显示,如何通过函数实现带附件日志?

解决Allure TestNG中附件无法正常显示的问题

我当前使用allure-testng依赖,尝试通过自定义函数添加带附件的日志,但Allure报告中附件无法正常显示,打开附件时无法加载图片。

问题根源

原代码存在两个关键问题导致附件加载失败:

  1. 路径转义错误:Java字符串中反斜杠需用双反斜杠\\转义,否则会被解析为特殊字符,导致路径无效。
  2. 附件添加方式错误:Allure.addAttachment直接传文件路径无法正确读取文件内容,需要通过文件流传入。

修正后的代码

public void allure_LogWithAttachment(String folder, String name , String info) {
    allure_Log(info);
    attachScreenshot(folder, name);
}

private void attachScreenshot(String folder, String name) {
    try {
        // 修正路径:改用正斜杠(跨平台兼容),或用双反斜杠转义
        String imagePath = "src/ExtFiles/screenShots/" + folder + "/" + name + ".png";
        
        // 使用try-with-resources自动关闭流,避免资源泄漏
        try (InputStream screenshotStream = Files.newInputStream(Paths.get(imagePath))) {
            // 通过文件流添加图片附件
            Allure.addAttachment(name, "image/png", screenshotStream, "png");
        }
    } catch (Exception e) {
        System.out.println("Exception: " + e);
    }
}

额外注意事项

  • 打印imagePath确认路径是否正确,确保截图文件确实存在于该路径下。
  • 若使用Maven/Gradle,可考虑将截图目录配置为资源目录,或使用绝对路径避免路径解析问题。
  • 确保截图已成功生成并保存到指定位置,可提前通过文件IO验证文件是否可读。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 11:47:47