RestAssured+Allure在Jenkins运行时无法渲染HTTP附件及日志无响应问题
Jenkins运行Java17测试套件出现Allure渲染异常及无响应日志问题
测试套件基于Java17开发,本地IDE或Maven命令运行完全正常,但在Jenkins执行时出现以下问题:
- 请求发送后日志仅显示请求体,无响应内容
- Allure无法渲染HTTP附件,抛出
AttachmentRenderException及IndexOutOfBoundsException异常
已尝试以下操作但未解决问题:
- 调整依赖版本
- 清理Maven本地仓库
- 切换Java版本至11
- 注释
log().all()语句 - 调整AllureRestAssured过滤器
相关代码、依赖版本及报错日志如下:
CODE
protected Response delete(ApiRequestModel apiRequestModel) { return given() .spec(apiConnector.authorize()) .filter(new AllureRestAssured()) .headers(apiRequestModel.getHeaders()) .body(apiRequestModel.getRequestBody()) .when() .log() .all() .delete(apiRequestModel.getEndpoint()) .then() .log() .all() .statusCode(apiRequestModel.getStatusCode()) .extract() .response(); }
Dependency version
<properties> <java.version>17</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <allure.testng.version>2.21.0</allure.testng.version> <allure.maven.version>2.10.0</allure.maven.version> <allure.rest-assured.version>2.21.0</allure.rest-assured.version> <allure.report.version>2.12.0</allure.report.version> <maven.compiler.plugin.version>3.10.1</maven.compiler.plugin.version> <maven-surefire-plugin-version>3.0.0-M5</maven-surefire-plugin-version> <rest-assured.version>5.1.1</rest-assured.version> <testng.version>7.6.1</testng.version> <jackson.version>2.14.1</jackson.version> <json.version>20210307</json.version> <aspectj.version>1.9.19</aspectj.version> </properties>
LOGS
io.qameta.allure.attachment.AttachmentRenderException: Could't render http attachment file at io.qameta.allure.attachment.FreemarkerAttachmentRenderer.render(FreemarkerAttachmentRenderer.java:49) at io.qameta.allure.attachment.FreemarkerAttachmentRenderer.render(FreemarkerAttachmentRenderer.java:28) at io.qameta.allure.attachment.DefaultAttachmentProcessor.addAttachment(DefaultAttachmentProcessor.java:41) at io.qameta.allure.restassured.AllureRestAssured.filter(AllureRestAssured.java:103) Caused by: java.lang.IndexOutOfBoundsException: start 160, end 0, length 161 at java.base/java.lang.AbstractStringBuilder.checkRange(AbstractStringBuilder.java:1802) at java.base/java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:680) at java.base/java.lang.StringBuffer.append(StringBuffer.java:393) at java.base/java.io.StringWriter.write(StringWriter.java:122) at freemarker.template.utility.StringUtil.XMLOrHTMLEnc(StringUtil.java:215) at freemarker.template.utility.StringUtil.XHTMLEnc(StringUtil.java:105) at freemarker.core.HTMLOutputFormat.output(HTMLOutputFormat.java:62) at freemarker.core.DollarVariable.accept(DollarVariable.java:68) at freemarker.core.Environment.visit(Environment.java:347) at freemarker.core.Environment.visit(Environment.java:353) at freemarker.core.Environment.visit(Environment.java:353) at freemarker.core.Environment.process(Environment.java:326) at freemarker.template.Template.process(Template.java:383) at io.qameta.allure.attachment.FreemarkerAttachmentRenderer.render(FreemarkerAttachmentRenderer.java:46)
请问是否有人遇到过类似问题,或有解决思路?
内容的提问来源于stack exchange,提问作者BMI
相关产品推荐
相关产品推荐

