URL 在 Allure 报告中为 Rest-Assured 使用编码查询参数
URL with encoded query parameters in Allure report for Rest-Assured
Allure 报告显示 URL 具有用于 Rest-Assured
的编码查询参数
我正在使用 Allure-Rest-Assured 将请求信息附加到 Allure 报告。我试图解码 http-request.ftl
中的 ${data.url}
值,该值格式化了这一行中的最终附件:
<div>
<pre><code><#if data.method??>${data.method}<#else>GET</#if>: <#if data.url??>${data.url}<#else>Unknown</#if></code></pre>
</div>
但是这里不知道怎么调用js或者java
也可以在此处扩展 AllureRestAssured.class 结束解码 url,但应覆盖所有逻辑。
如果我通过 RequestSpecification.urlEncodingEnabled(false)
禁用编码,它会阻止请求
RestAssured.given()
.filter(new AllureRestAssured())
.queryParam("range", "{\"begin\":0,\"end\":1}")
.when()
.get("http://localhost:8080/users");
我在报告中收到带有编码查询参数的请求 URL:
http://localhost:8080/users?range=%7B%22begin%22%3A0%2C%22end%22%3A1%7D
但我需要更易读的wariant解码查询参数
http://localhost:8080/users?range={"begin":0,"end":1}
我假设 AllureRestAssured
io.restassured.filter.Filter
的实现不是你的,而是来自 Allure 框架。由于您无法更改它,我建议您创建自定义实现(基本上是 AllureRestAssured
的副本),但是 here 您应该添加一些更改:
String uri = requestSpec.getURI();
try {
uri = URLDecoder.decode(uri, StandardCharsets.UTF_8.name());
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
final HttpRequestAttachment.Builder requestAttachmentBuilder = create("Request", uri)
.setMethod(requestSpec.getMethod())
.setHeaders(toMapConverter(requestSpec.getHeaders()))
.setCookies(toMapConverter(requestSpec.getCookies()));
Allure 报告显示 URL 具有用于 Rest-Assured
的编码查询参数我正在使用 Allure-Rest-Assured 将请求信息附加到 Allure 报告。我试图解码 http-request.ftl
中的 ${data.url}
值,该值格式化了这一行中的最终附件:
<div>
<pre><code><#if data.method??>${data.method}<#else>GET</#if>: <#if data.url??>${data.url}<#else>Unknown</#if></code></pre>
</div>
但是这里不知道怎么调用js或者java
也可以在此处扩展 AllureRestAssured.class 结束解码 url,但应覆盖所有逻辑。
如果我通过 RequestSpecification.urlEncodingEnabled(false)
禁用编码,它会阻止请求
RestAssured.given()
.filter(new AllureRestAssured())
.queryParam("range", "{\"begin\":0,\"end\":1}")
.when()
.get("http://localhost:8080/users");
我在报告中收到带有编码查询参数的请求 URL:
http://localhost:8080/users?range=%7B%22begin%22%3A0%2C%22end%22%3A1%7D
但我需要更易读的wariant解码查询参数
http://localhost:8080/users?range={"begin":0,"end":1}
我假设 AllureRestAssured
io.restassured.filter.Filter
的实现不是你的,而是来自 Allure 框架。由于您无法更改它,我建议您创建自定义实现(基本上是 AllureRestAssured
的副本),但是 here 您应该添加一些更改:
String uri = requestSpec.getURI();
try {
uri = URLDecoder.decode(uri, StandardCharsets.UTF_8.name());
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
final HttpRequestAttachment.Builder requestAttachmentBuilder = create("Request", uri)
.setMethod(requestSpec.getMethod())
.setHeaders(toMapConverter(requestSpec.getHeaders()))
.setCookies(toMapConverter(requestSpec.getCookies()));