设置restAssured以全局记录所有请求和响应

时间:2017-05-30 10:34:59

标签: java rest logging rest-assured

我希望默认情况下为所有restAssured响应和请求启用日志记录。

这就是我的所作所为:

RestAssured.requestSpecification = new RequestSpecBuilder().
        setBaseUri("api").
        setContentType(ContentType.JSON).
        build().
        log().all();
RestAssured.responseSpecification = new ResponseSpecBuilder().
        build().
        log().all();

requestSpecification工作正常,但有了responseSpecification,我得到:

  

由于未定义请求规范,因此无法配置日志记录。   您可能在滥用API。

我真的不想在每次之后使用log()。all()。

4 个答案:

答案 0 :(得分:10)

将这行代码放在您的@BeforeClass方法上,每个给定的调用都将创建一个日志,就像在每个给定之后使用log.all()一样:

RestAssured.filters(new RequestLoggingFilter(), new ResponseLoggingFilter());


保证项目:
https://github.com/rest-assured/rest-assured/blob/master/rest-assured/src/main/java/io/restassured/filter/log/RequestLoggingFilter.java

答案 1 :(得分:7)

将日志记录过滤器添加到RestAssured的默认值,请参阅here

答案 2 :(得分:1)

我认为您需要查看日志然后测试失败,在这种情况下,请放心使用此配置:

RestAssured.enableLoggingOfRequestAndResponseIfValidationFails();

答案 3 :(得分:0)

您可以在类级别定义过滤器

public ClassName() {
    filters(new RequestLoggingFilter(), new ResponseLoggingFilter(), new ErrorLoggingFilter());
}