如何在Extent Report 2.41.2(Selenium)标题中添加Logo
解决Extent Report添加Logo失败的问题
我来帮你搞定Extent Report加Logo的问题,先说说你当前配置里可能踩的坑,再给你两种可行的解决办法:
你当前XML配置的问题点
- 直接用本地绝对路径
C:\CATS\logo.png不行:Extent Report是网页格式的报告,浏览器出于安全限制无法直接访问本地磁盘的绝对路径 - 你的自定义
ExtentReporterNG可能没实现解析<reportHeadline>里img标签的逻辑:很多自定义的Reporter并不会自动处理XML里的这种内嵌HTML,所以写了也没用
方案1:在ExtentReporterNG代码里直接配置Logo(最可靠)
大部分情况下,直接在自定义的Reporter类里加Logo是最稳妥的,步骤如下:
- 打开你的
phoenix.report.ExtentReporterNG类 - 在初始化ExtentReports的代码块里,添加Logo配置,示例代码如下:
import com.aventstack.extentreports.ExtentReports; import com.aventstack.extentreports.reporter.ExtentHtmlReporter; import com.aventstack.extentreports.reporter.configuration.Theme; import org.testng.IReporter; import org.testng.ISuite; import org.testng.xml.XmlSuite; import java.util.List; public class ExtentReporterNG implements IReporter { private ExtentReports extent; @Override public void generateReport(List<XmlSuite> xmlSuites, List<ISuite> suites, String outputDirectory) { // 初始化HTML报告生成器 ExtentHtmlReporter htmlReporter = new ExtentHtmlReporter(outputDirectory + "/ExtentReport.html"); // 配置报告主题、标题等 htmlReporter.config().setTheme(Theme.STANDARD); htmlReporter.config().setDocumentTitle("Myphoenix自动化测试报告"); htmlReporter.config().setReportName("登录模块测试执行报告"); // 关键:设置Logo路径,把logo.png放到报告输出目录(比如target/surefire-reports) htmlReporter.config().setLogoUrl("logo.png"); // 绑定报告生成器到ExtentReports extent = new ExtentReports(); extent.attachReporter(htmlReporter); // 这里可以添加其他报告逻辑,比如测试用例结果的写入 // ... } }
- 把你的
logo.png复制到测试报告的输出目录(比如Maven项目的target/surefire-reports,Gradle项目的build/reports/tests/test),这样报告就能正确加载图片了
方案2:修正XML配置的路径(仅当你的Reporter支持XML解析时)
如果你坚持要用XML配置,需要调整路径并确保Reporter能解析:
- 改用相对路径,把
logo.png放到项目的资源目录(比如src/main/resources) - 修正后的XML示例:
<?xml version="1.0" encoding="UTF-8"?> <suite name="MYhoenixTestExecution" verbose="1" > <listeners> <listener class-name="phoenix.report.ExtentReporterNG" /> </listeners> <reportHeadline>Automation Report <image id="image-zoom"> <![CDATA[ <img src='../src/main/resources/logo.png' style='height:50px; width:auto;'/> ]]> </image> </reportHeadline> <test name="Myphoenix_Login TC" > <classes> <class name="phoenix.testcases.Login_TC"/> </classes> </test> </suite>
注意:如果你的ExtentReporterNG没有写解析<reportHeadline>标签的逻辑,这个方法还是无效,优先选方案1
额外检查项
- 确保图片格式是PNG/JPG这类浏览器支持的格式
- 生成报告后,右键查看报告里的图片地址,确认路径是否正确,对应的目录下是否存在图片文件
内容的提问来源于stack exchange,提问作者liki
相关产品推荐
相关产品推荐

