zoukankan      html  css  js  c++  java
  • rest-assured的日志使用介绍

      在许多测试用例当中,为了帮助我们创建正确的断言和发送正确的请求,打印出详细的响应和请求数据是非常有用的。为此我们可以使用rest-assured提供的预定义过滤器或者使用其中的一些快捷方法。

    一、请求日志

      从1.5版本开始,rest-assured支持请求在发送到服务器之前打印特定请求日志的功能(通过使用RequestLoggingFilter过滤器的方式),这里我们注意到在打印的日志中HTTP Builder 和HTTP Client 会添加额外的头部信息(header)。这个过滤器支持只记录指定请求(RequestSpecification)的指定细节的日志,换句话说,我们可以不关注RequestLoggingFilter过滤器记录的实际发送到服务端的内容,因为在记录完日志之后,过滤器可能会修改请求(request)。如果想要记录实际发送到服务端的内容,可以参考 HTTP Client logging docs 或者使用第三方工具,比如Wireshark。例子如下:

     1 // 打印指定请求所有的请求细节日志,包括请求参数、请求头部以及请求体(body)等
     2 given().log().all(). .. 
     3  //只打印请求参数日志
     4 given().log().params(). ..
     5 //只打印请求体日志
     6 given().log().body(). .. 
     7 //只打印请求头部日志
     8 given().log().headers(). ..
     9 //只打印请求cookies
    10 given().log().cookies(). .. 
    11 //只打印请求方法
    12 given().log().method(). ..
    13 //只打印请求路径
    14 given().log().path(). .. 

    二、响应日志

      同样rest-assured也支持响应体日志的打印,比如:我们这里打印除了状态码之外的所有响应体信息,我们可以这样做:

    1 get("/x").then().log().body() ..

    上面的做法无论是否有异常错误发生响应体都会被打印,如果我们只想当异常错误发生时,才打印响应体信息,我们可以这样做:

    1 get("/x").then().log().ifError(). .. 

    同样我们也可以打印出所有的响应体信息,包括状态行(status line)、响应头(header)、cookies:

    1 get("/x").then().log().all(). .. 

    也可以只打印状态行(status line)、响应头(header)、cookies:

    1 //只打印状态行
    2 get("/x").then().log().statusLine(). .. 
    3  //只打印响应头
    4 get("/x").then().log().headers(). ..
    5 //只打印响应cookies
    6 get("/x").then().log().cookies(). ..

    我们也可以配置只有当响应状态码等于匹配某个值时,才打印响应信息:

    1 //只有当响应状态码等于302时,才会打印响应信息
    2 get("/x").then().log().ifStatusCodeIsEqualTo(302). .. 
    3 //只有当响应状态码匹配提供的Hamcrest matcher,才会打印响应信息
    4 get("/x").then().log().ifStatusCodeMatches(matcher). .. 

    三、验证失败日志

      从rest-assured的2.3.1版本开始,rest-assured支持只有当验证失败时才打印请求信息或响应信息的功能。

    当验证失败时,打印请求日志,我们可以这样做:

    1 given().log().ifValidationFails(). ..

    当验证失败时,打印响应日志,我们可以这样做:

    1 get("/x").then().log().ifValidationFails(). ..

    我们通过使用 LogConfig 可以做到同时启用当验证失败时打印请求信息和响应信息:

    1 given().config(RestAssured.config().logConfig(logConfig().enableLoggingOfRequestAndResponseIfValidationFails(HEADERS))). ..

    上面的做法只会打印当验证失败时的请求头部信息以及响应头部信息(header)。

    这里还有一种针对 同时启用当验证失败时打印请求信息和响应信息 的简单方法:

    1 RestAssured.enableLoggingOfRequestAndResponseIfValidationFails();
  • 相关阅读:
    记录一段QQ关于 UNIGUI 的Session 时间设定
    uniGUI Cannot read property 'remove' of null
    基于kbmMW Configuration Framework 实现配置文件对象化
    每日日报42
    每日日报41
    每日日报40
    解决Ajax无法跳转到其他界面
    每日日报39
    每日日报38
    《软件项目成功之道》阅读笔记01
  • 原文地址:https://www.cnblogs.com/lwjnicole/p/8287348.html
Copyright © 2011-2022 走看看