Вы можете использовать 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");
Или вы также можете реализовать Фильтр интерфейс для использования своего собственного.Вот пример для регистрации и запроса, и ответа:
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");