Selenium-Java 在单次运行中为在多个浏览器(Edge、Chrome、Firefox)上完成的测试执行生成单个范围 PDF 报告

问题描述 投票:0回答:0

我希望在一次运行中为在多个浏览器(Edge、Chrome、Firefox)上完成的测试执行生成单个范围 PDF 报告。

执行完成后出现以下错误:

SEVERE: An exception occurred
tech.grasshopper.pdf.exception.PdfReportException: java.io.IOException: The TrueType font null does not contain a 'cmap' table
        at tech.grasshopper.pdf.PDFCucumberReport.createReport(PDFCucumberReport.java:129)
        at tech.grasshopper.pdf.extent.ExtentPDFCucumberReporter.flush(ExtentPDFCucumberReporter.java:88)
        at tech.grasshopper.pdf.extent.ExtentPDFCucumberReporter.access$100(ExtentPDFCucumberReporter.java:19)
        at tech.grasshopper.pdf.extent.ExtentPDFCucumberReporter$1.onNext(ExtentPDFCucumberReporter.java:62)
        at tech.grasshopper.pdf.extent.ExtentPDFCucumberReporter$1.onNext(ExtentPDFCucumberReporter.java:55)
        at io.reactivex.rxjava3.subjects.PublishSubject$PublishDisposable.onNext(PublishSubject.java:310)
        at io.reactivex.rxjava3.subjects.PublishSubject.onNext(PublishSubject.java:226)
        at com.aventstack.extentreports.ReactiveSubject.onFlush(ReactiveSubject.java:83)
        at com.aventstack.extentreports.AbstractProcessor.onFlush(AbstractProcessor.java:85)
        at com.aventstack.extentreports.ExtentReports.flush(ExtentReports.java:279)
        at com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter.finishReport(ExtentCucumberAdapter.java:300)
        at com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter.access$600(ExtentCucumberAdapter.java:62)
        at com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter$8.receive(ExtentCucumberAdapter.java:136)
        at com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter$8.receive(ExtentCucumberAdapter.java:133)
        at io.cucumber.core.eventbus.AbstractEventPublisher.send(AbstractEventPublisher.java:51)
        at io.cucumber.core.eventbus.AbstractEventBus.send(AbstractEventBus.java:12)
        at io.cucumber.core.runtime.SynchronizedEventBus.send(SynchronizedEventBus.java:47)
        at io.cucumber.core.runtime.CucumberExecutionContext.emitTestRunFinished(CucumberExecutionContext.java:131)
        at io.cucumber.core.runtime.CucumberExecutionContext.finishTestRun(CucumberExecutionContext.java:118)
        at io.cucumber.testng.TestNGCucumberRunner.finish(TestNGCucumberRunner.java:145)
        at io.cucumber.testng.AbstractTestNGCucumberTests.tearDownClass(AbstractTestNGCucumberTests.java:57)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:133)
        at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:62)
        at org.testng.internal.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:385)
        at org.testng.internal.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:321)
        at org.testng.internal.TestMethodWorker.invokeAfterClassMethods(TestMethodWorker.java:217)
        at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:130)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: The TrueType font null does not contain a 'cmap' table
        at org.apache.fontbox.ttf.TrueTypeFont.getUnicodeCmapImpl(TrueTypeFont.java:562)
        at org.apache.fontbox.ttf.TrueTypeFont.getUnicodeCmapLookup(TrueTypeFont.java:542)
        at org.apache.fontbox.ttf.TrueTypeFont.getUnicodeCmapLookup(TrueTypeFont.java:528)
        at org.apache.fontbox.ttf.TTFSubsetter.<init>(TTFSubsetter.java:90)
        at org.apache.pdfbox.pdmodel.font.TrueTypeEmbedder.subset(TrueTypeEmbedder.java:347)
        at org.apache.pdfbox.pdmodel.font.PDType0Font.subset(PDType0Font.java:263)
        at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:1369)
        at org.apache.pdfbox.pdmodel.PDDocument.save(PDDocument.java:1344)
        at tech.grasshopper.pdf.PDFCucumberReport.createReport(PDFCucumberReport.java:125)
        ... 33 more

下面是extent.properties中的配置:

extent.reporter.pdf.start=true
extent.reporter.pdf.out=/Test-report/pdf-reports/Web_Report.pdf

使用上述配置,当一次只在 1 个浏览器上运行测试时,pdf 可以正常生成。

有什么建议需要进行哪些更改才能获得类似于 Extent HTML 报告的所有 3 种浏览器的测试报告?

pdf-generation html-to-pdf extentreports selenium-extent-report selenium-java
© www.soinside.com 2019 - 2024. All rights reserved.