首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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 从入门到实战”。

测试代码编写如下:

@Testpublic 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 报文节点:

@Testpublic 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 自动化测试

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180611G185HH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券