Rest-Assured实战 REST API之使用 Rest-Assured验证报文内容

报文的正文是 Restful API 测试的主要部分,这里面包含了需要测试的业务内容。

我们先看一看向目标服务器:http://qatools.cn/demon/api/books 发送 GET 请求后服务器响应的报文正文。

 
[
    - {        id: 1,
        name: "Selenium从入门到实战",
        publisher: "TOOLSQA",
        version: "第1版",
        releaseDate: "2018-05-03"
    },
    {        id: 2,
        name: "REST und HTTP",
        publisher: "O'Really",
        version: "第1版",
        releaseDate: "2011-06-01"
    }
]


可以看到返回的 JSON 格式的报文是很有层级结构的。我们可以理解为一个树型结构的不同节点。每一个节点包含了一个对象信息或一个属性信息。我们可以测试返回的报文中是否包含了某些信息,例如 “Selenium 从入门到实战”。

测试代码编写如下:

 
@Test
public void testMessageBody(){    
    //设置服务器基准地址
    RestAssured.baseURI = "http://qatools.cn/demon/api";  
      
    //获取请求HTTP请求对象
    RequestSpecification httpRequest = RestAssured.given(); 
      
     //获取服务器响应报文
    Response response = httpRequest.get("/books");    
    
    // 获取报文正文
    ResponseBody body = response.getBody();    
    
    //把报文正文的JSON转化为字符串,
    String bodyAsString = body.asString();       
    
     //通过字符串方法查找是否包含具体的验证内
    
 Assert.assertEquals(bodyAsString.contains("Selenium 从入门到实战") /_ 报文返回的实际值_ /, true /_ 期望返回值_ /, "报文正文包含 Selenium 从入门到实战");
}




我们也可以使用 JsonPath 的方式精确验证某一个 JSON 报文节点:

 
@Test
public void testJsonPathResponse(){    

      //设置服务器基准地址
    RestAssured.baseURI = "http://qatools.cn/demon/api";
    
    //获得HTTP请求对象
    RequestSpecification httpRequest = RestAssured.given();
    
    //获得服务器响应报文
    Response response = httpRequest.get("/books");
    
    //把响应报文转化为JsonsPaht对象
    JsonPath jsonPathEvaluator = response.jsonPath();
    
    // 获取报文对象中指定节点的值
    String articleTitle = jsonPathEvaluator.get("$[0].name");// 验证节点至Assert.assertEquals(articleTitle, "Selenium 从入门到实战", "返回报文包含Selenium 从入门到实战");
}




GITBOOK CHAT : Rest-Assured 实战 REST API 自动化测试



敏捷社区微信公众号:

微信.jpg

敏捷测试微信公众号:

qrcode_for_gh_2d53be29b2f6_258.jpg

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值