Allure TestNG日志附加图片不显示,如何通过函数实现带附件日志?
解决Allure TestNG中附件无法正常显示的问题
我当前使用allure-testng依赖,尝试通过自定义函数添加带附件的日志,但Allure报告中附件无法正常显示,打开附件时无法加载图片。
问题根源
原代码存在两个关键问题导致附件加载失败:
- 路径转义错误:Java字符串中反斜杠需用双反斜杠
\\转义,否则会被解析为特殊字符,导致路径无效。 - 附件添加方式错误:
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
相关产品推荐
相关产品推荐

