我完全是RestAssured的新手。我喜欢写请求和响应文本文件。我不想在每个测试中重复代码来提取和编写请求和响应,但我喜欢在设置方法中配置RestAssuredConfig以将请求和响应重定向到文本文件。
有人可以帮我理解我的代码中缺少的内容吗?我正在尝试配置LogConfig以写入对StringWriter的请求和响应,以便我可以使用它来写入所需的文件?
我尝试了谷歌的几个例子,但都没有帮助。
请注意,下面的示例是一个proto类型,我暂时在其中执行sysout,一旦代码工作,我就可以将其写入文本文件。
//这是我调用配置日志方法// configureRequestLogging
的示例代码RequestSpecification request = given();
RequestSpecification logRequest = configureRequestLogging(request);
//这个方法应该SOP请求和响应。但我总是无效
private static RequestSpecification configureRequestLogging(RequestSpecification request) {
RequestSpecification requestSpec;
final StringWriter writer = new StringWriter();
PrintStream captor = new PrintStream(new WriterOutputStream(writer), true);
requestSpec = request.config(RestAssuredConfig.config().logConfig(LogConfig.logConfig().defaultStream(captor)))
.log().all();
System.out.println(writer.toString());
return requestSpec;
}
答案 0 :(得分:0)
如果要将文件输出与控制台输出分开(例如,提供更多详细信息),则可以创建新的日志记录过滤器(接口Filter
)
在那里你可以指定打印流
@Override
public Response filter(FilterableRequestSpecification requestSpec, FilterableResponseSpecification responseSpec, FilterContext ctx) {
RequestPrinter.print(requestSpec, requestSpec.getMethod(), requestSpec.getUri(), LogDetail.ALL, new PrintStream(new FileOutputStream("example.txt", true)), true);
return ctx.next(requestSpec, responseSpec);
}
此外,您只需添加内置的RequestLoggingFilter和所需的打印流。