【问题标题】:Set restAssured to log all requests and responses globally设置 restAssured 以全局记录所有请求和响应
【发布时间】:2017-10-30 18:54:08
【问题描述】:

我想默认为所有 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()

【问题讨论】:

    标签: java rest logging rest-assured


    【解决方案1】:

    将日志过滤器添加到 RestAssured 默认值,请参阅 filtersdefaults

    要创建过滤器,您需要实现 io.restassured.filter.Filter 接口。要使用过滤器,您可以执行以下操作:
    给定()。过滤器(新的 MyFilter())。 ..

    REST Assured 提供了几个可供使用的过滤器:
    1. io.restassured.filter.log.RequestLoggingFilter:将打印请求规范详细信息的过滤器。
    2. io.restassured.filter.log.ResponseLoggingFilter:一个过滤器,如果响应与给定的状态代码匹配,它将打印响应详细信息。
    3. io.restassured.filter.log.ErrorLoggingFilter:一个过滤器,如果发生错误会打印响应体(状态码在 400 到 500 之间)

    任何过滤器都可以添加到请求、规范或全局默认值中:

    RestAssured.filters(..); // 默认过滤器列表

    【讨论】:

    • 谢谢,我刚刚将 ResponseLoggingFilter 添加到 requestSpecification。 addFilter(new ResponseLoggingFilter())
    【解决方案2】:

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

    RestAssured.enableLoggingOfRequestAndResponseIfValidationFails();

    【讨论】:

    • 在什么情况下?我尝试将该行放入@BeforeClass,但得到java.lang.NoClassDefFoundError: org/apache/groovy/io/StringBuilderWriter
    • 对于JUnit Jupyter,我添加到@BeforeEach
    【解决方案3】:

    将这行代码放在你的@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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-16
        • 2019-10-04
        • 1970-01-01
        • 2018-12-20
        • 2019-03-26
        • 2014-03-22
        • 1970-01-01
        相关资源
        最近更新 更多