java - 如何将 REST Assured 日志写入scenario.write()?
问题描述
我需要记录放心的流量 - 通过使用: when().post().then().log().all().extract().response();
现在将其余消息放入标准输出,但我希望这些消息AfterAll()
通过scenario.write()
.
如何将放心的日志保存到变量中并将其传递给scenario.write()
?
解决方案
您可以使用RequestLoggingFilter和ResponseLoggingFilter类。将配置的 PrintStream 提供给它们的构造函数,并将过滤器添加到请求规范中。它可以是这样的:
OutputStream outputStream = null; //use your OutputStream that will write where you need it
PrintStream printStream = new PrintStream(outputStream, true);
RequestLoggingFilter requestLoggingFilter = new RequestLoggingFilter(printStream);
ResponseLoggingFilter responseLoggingFilter = new ResponseLoggingFilter(printStream);
RestAssured.given()
.filters(requestLoggingFilter, responseLoggingFilter)
.when()
.get("/api");
或者你也可以实现Filter接口来使用你自己的。这是记录请求和响应的示例:
public class CustomLogFilter implements Filter {
Logger log = LoggerFactory.getLogger(CustomLogFilter.class);
@Override
public Response filter(FilterableRequestSpecification requestSpec,
FilterableResponseSpecification responseSpec, FilterContext ctx) {
Response response = ctx.next(requestSpec, responseSpec);
StringBuilder requestBuilder = new StringBuilder();
requestBuilder.append(requestSpec.getMethod());
requestBuilder.append("\n");
requestBuilder.append(requestSpec.getURI());
requestBuilder.append("\n");
requestBuilder.append("*************");
log.info(requestBuilder.toString()); //Log your request where you need it
StringBuilder responseBuilder = new StringBuilder();
responseBuilder.append(response.getStatusLine());
responseBuilder.append("\n");
responseBuilder.append(response.getBody());
log.info(responseBuilder.toString()); //Log your response where you need it
return response;
}
}
然后在 RestAssured 请求中使用它:
Filter logFilter = new CustomLogFilter();
RestAssured.given()
.filter(logFilter)
.when()
.get("/api");
推荐阅读
- python - 无法将 NumPy 数组转换为张量(不支持的对象类型列表)
- c - 调试断言 eroor,流!= nullptr
- sql-server - 日期时间字段不可更新
- sql - 将 SELECT 语句中的所有列添加到 group by 撤消我想要的分组
- javascript - Javascript警报没有消失
- javascript - Redux:更新状态后组件未更新
- google-sheets - 通过公式在 Google 表格中创建超链接
- python - 尝试通过 FMPy 模拟来自 OpenModelica 的 FMU 时出错
- javascript - 请解释下面的 JavaScript 代码,它从数组中返回未配对元素的值?
- r - 我怎么能不丢失我的 foreachR 中途的输出?