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

本文详细介绍了如何使用 REST Assured 进行断言,包括 GPath 和 XML 格式的断言。通过示例展示了如何断言 JSON 和 XML 数据的各种元素,如通过节点路径、索引、findAll 方法等。此外,还提到了使用 JsonSchema 进行复杂断言,以及处理字段类型和 null 值的情况。文章强调了接口返回值断言的重要性,并提供了深入学习的资源链接。
摘要由CSDN通过智能技术生成


在上一篇文章中,我们初步探讨了 REST Assured 的应用实践,还有很多丰富的用法需要慢慢探索研究。而 REST Assured 提供的完整断言手段,是测试工程师最常用最重要的功能之一。断言该如何使用呢?

这里以 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)我们可以使用根节点.(点)子节点的方式一层层的找下去,例如我们需要对lottoId等于 5 进行断言:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0GaTxjPz-1648188475453)(https://ceshiren.com/uploads/default/original/3X/3/7/3770a78cf109b1cc8eb443d8a5472b9ba3653b86.png)]

@Test
void 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写法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J0yvTr3o-1648188476457)(https://ceshiren.com/uploads/default/original/3X/d/4/d4e8ad014ed786cb61ea038719908674e4ad04fe.png)]

@Test
void 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],写法如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-duwP5N6o-1648188477829)(https://ceshiren.com/uploads/default/original/3X/a/3/a3aa8f53907041fdbe8035a0005b64b506b7d607.png)]

@Test
void testGPath(){
    given().
        when().
                    log().all().get("
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值