sax解析器异常,同时生成诱惑结果

时间:2018-05-08 20:23:11

标签: rest testing saxparser allure

我使用Allure框架生成测试报告。 在测试框架中用作maven依赖。

在jenkins中运行测试时,Allure按预期创建了报告,但是在控制台中几乎没有异常生成的xml文件的例外。 Allure正在从测试信息创建xml文件,但是它从html / JSON格式的rest API响应生成xml文件,并且由于它不是有效的xml文件,因此抛出了Sax Parser异常。

我无法理解如何解决这些例外。

以下是例外情况 [致命错误] da669b14-4d30-4260-8815-eab1f720661b-attachment.xml:1:1:prolog中不允许使用内容。 无法解析文件/home/jenkins/workspace/xxx_trunk-H4U6TKVVIR44VYBZR7Q53HWUDRP5C3JJEEVZOEYQTCQK53LROIJA/.ci-reports/allure-results/da669b14-4d30-4260-8815-eab1f720661b-attachment.xml:{} org.xml.sax.SAXParseException; systemId:file:/home/jenkins/workspace/amp-adengine_trunk-H4U6TKVVIR44VYBZR7Q53HWUDRP5C3JJEEVZOEYQTCQK53LROIJA/.ci-reports/allure-results/da669b14-4d30-4260-8815-eab1f720661b-attachment.xml; lineNumber:1; columnNumber:1;序言中不能有内容。     在com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:257)     at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)     在javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:205)     at io.qameta.allure.junitxml.JunitXmlPlugin.parseRootElement(JunitXmlPlugin.java:97)     at io.qameta.allure.junitxml.JunitXmlPlugin.lambda $ readResults $ 0(JunitXmlPlugin.java:87)     at java.util.ArrayList.forEach(ArrayList.java:1249)     at io.qameta.allure.junitxml.JunitXmlPlugin.readResults(JunitXmlPlugin.java:87)     at io.qameta.allure.ReportGenerator.lambda $ readResults $ 0(ReportGenerator.java:32)     at java.util.ArrayList.forEach(ArrayList.java:1249)     at io.qameta.allure.ReportGenerator.readResults(ReportGenerator.java:32)     at java.util.stream.ReferencePipeline $ 3 $ 1.accept(ReferencePipeline.java:193)     at java.util.stream.ReferencePipeline $ 2 $ 1.accept(ReferencePipeline.java:175)     at java.util.ArrayList $ ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)     at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)     at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)     在java.util.stream.ReduceOps $ ReduceOp.evaluateSequential(ReduceOps.java:708)     at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)     在java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499)     at io.qameta.allure.ReportGenerator.generate(ReportGenerator.java:54)     at io.qameta.allure.ReportGenerator.generate(ReportGenerator.java:43)     在io.qameta.allure.Commands.generate(Commands.java:89)     在io.qameta.allure.CommandLine.run(CommandLine.java:129)     在java.util.Optional.orElseGet(Optional.java:267)     at io.qameta.allure.CommandLine.main(CommandLine.java:72)

来自API的响应将始终为HTML / JSON,并且不会是xml响应。 有人可以指导我解决这些异常吗?

1 个答案:

答案 0 :(得分:0)

答案实际上取决于您如何使用Allure保存附件。通常,可以在保存附件时指定MIME类型和文件扩展名

@Attachment(value = "API response", type = "application/json", fileExtension = ".json")
public String requestAPI() {
    ...
    return response;
}