利器 | REST Assured 实践(二):断言实现

在上一篇文章中,我们初步探讨了 [REST Assured 的应用实践](http://mp.weixin.qq.com/s?__biz=MzU3NDM4ODEzMg==&mid=2247486810&idx=1&sn=4aa41547a92e761699b99928bc132442&chksm=fd326f91ca45e68713627d612d29fecabf1e1f4c5657a19f72dce47c16b695c1dfbe16ce2a02&scene=21#wechat_redirect),还有很多丰富的用法需要慢慢探索研究。而
REST Assured提供的完整断言手段,是测试工程师最常用最重要的功能之一。断言该如何使用呢?

** 1. Json 断言**

1.1 环境准备

这里以 rest-assured 官方给的一个示例做演示学习


        {"lotto":{ "lottoId":5, "winning-numbers":[2,45,34,23,7,5,3], "winners":[{   "winnerId":23,   "numbers":[2,45,34,23,3,5] },{   "winnerId":54,   "numbers":[52,3,12,11,18,22] }]}}

在本地使用 python -m CGIHTTPServer临时搭建起一个服务:

1.2 JsonPath(Groovy’s GPath)

在 Groovy 的官网,虽然并未提及它在 json 中的使用,但实际上只要是树形的层级关系,无论是 json、xml

或者其他格式,就可以使用这种简单的语法帮我们去找到其中的值,rest-assured 也已经帮我们实现支持了 GPath 的断言方式

根节点.子节点
1)我们可以使用根节点.(点)子节点的方式一层层的找下去,例如我们需要对lottoId等于 5 进行断言:


        @Testvoid testGPath(){     given().     when().             log().all().get("http://127.0.0.1:8000/restAssured.json").     then().             log().all().body("lotto.lottoId",equalTo(5)); }

2)如果我们想要断言winners数组下面的winnerId,检查23和54是否包含其中,可以如下lotto.winners.winnerId写法


        @Testvoid testGPath(){    given().    when().            log().all().get("http://127.0.0.1:8000/restAssured.json").    then().            log().all()            .body("lotto.winners.winnerId",hasItems(54,23));}

``

索引取值
**
**
1)如果我们想要取某些相同字段中的某一个,可以使用类似索引的方式获取,例如想要断言 winners数组下面的 winnerId的第一个值是否为23,可以使用 lotto.winners.winnerId[0],写法如下:


        @Testvoid te
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RestAssured是一个流行的Java自动化测试框架,用于编写和执行RESTful API测试。它可以通过简单的API来处理HTTP请求和响应,并且可以轻松地将请求和响应转换为可读性强的代码。RestAssured还可以使用Gherkin语言编写BDD测试,并且支持与JUnit和TestNG等测试框架集成。 使用RestAssured可以快速编写和执行HTTP请求,验证响应状态码、响应头、响应体等细节,并且可以使用各种验证方式进行验证,如JSON Schema验证、XPath验证、正则表达式验证等等。同时,RestAssured还支持多种HTTP身份验证方式,包括基本身份验证、摘要身份验证、OAuth等。 使用RestAssured编写自动化测试用例的步骤如下: 1. 引入RestAssured依赖。 2. 编写测试用例,包括HTTP请求和验证响应的代码。 3. 运行测试用例并查看测试结果。 下面是一个使用RestAssured编写的示例测试用例: ```java import io.restassured.RestAssured; import org.junit.Test; import static io.restassured.RestAssured.given; public class RestAssuredTest { @Test public void testGet() { // 发送GET请求 given() .get("https://jsonplaceholder.typicode.com/posts/1") // 验证响应状态码和响应体 .then() .statusCode(200) .body("title", equalTo("sunt aut facere repellat provident occaecati excepturi optio reprehenderit")); } } ``` 上面的示例测试用例发送了一个GET请求,验证了响应状态码和响应体。使用RestAssured,可以非常方便地编写和执行各种HTTP请求和自动化测试用例。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值