繁体   English   中英

如何配置RestAssured LogConfig以将请求和响应写入文本文件

[英]How to configure RestAssured LogConfig to write request and response to a text file

我完全是RestAssured的新手。 我喜欢将请求和响应写入文本文件。 我不想在每个测试中都重复代码以提取和编写请求和响应,但是我想在设置方法中配置RestAssuredConfig来将请求和响应重定向到文本文件。

有人可以帮我了解我的代码中缺少的内容吗? 我正在尝试配置LogConfig以将请求和响应写入StringWriter,以便可以将其写入所需的文件?

我尝试了谷歌的几个例子,但没有一个帮助。

请注意,下面的示例是一个原型类型,其中我暂时在做sysout,一旦代码工作,我可以将其写入文本文件。

//这是我从中调用configure日志方法的示例代码// 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;
    }

如果要将文件输出与控制台输出分开(例如,提供更多详细信息),则可以创建一个新的日志记录过滤器(接口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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM