json php数组 湖面_【接口测试】JSON 断言中的JSON Path

【JSON Assertion】就是JMeter断言中的JSON断言。此组件允许对JSON文档执行验证。它在使用过程中需要注意一下几个内容:

首先,它将解析JSON,如果数据不是JSON,它将失败。

其次,它将使用Jayway JsonPath 1.2.0中的语法搜索指定的路径。如果找不到路径,它将失败。

第三,如果在文档中找到了JSON路径,并且请求了针对预期值的验证,那么它将执行验证。对于空值,在GUI中有一个特殊的复选框。注意,如果路径将返回array对象,则将对其进行迭代,如果找到预期值,则断言将成功。要验证空数组,请使用[]字符串。另外,如果patch返回dictionary对象,则在比较之前将其转换为string。

6451ded4c5d1e13edc0287bf4f222aee.png

在上图中,第一个重要的参数就是【Assert JSON Path exists】,这是什么呢?下面就详细的说明一下:

什么是JSON Path?

JsonPath是一种简单的方法来提取给定JSON文档的部分内容。 JsonPath有许多编程语言,如Javascript,Python和PHP,Java。

JsonPath提供的json解析非常强大,它提供了类似正则表达式的语法,基本上可以满足所有想要获得的json内容。(具体源代码信息和应用可以查看:https://github.com/json-path/JsonPath)

JSON Path的操作符和语法

e7de4a924de19ddae5cabfaa72051f23.png

JsonPath中的“根成员对象”始终称为$,无论是对象还是数组。

JsonPath表达式可以使用点表示法。例如:$.store.book [0].title

或括号表示法。例如:$['store']['book'][0]['title']

看一个具体的JSON案例(案例来自:https://goessner.net/articles/JsonPath/):

{ "store": {
 "book": [ 
      { "category": "reference",
 "author": "Nigel Rees",
 "title": "Sayings of the Century",
 "price": 8.95
      },
      { "category": "fiction",
 "author": "Evelyn Waugh",
 "title": "Sword of Honour",
 "price": 12.99
      },
      { "category": "fiction",
 "author": "Herman Melville",
 "title": "Moby Dick",
 "isbn": "0-553-21311-3",
 "price": 8.99
      },
      { "category": "fiction",
 "author": "J. R. R. Tolkien",
 "title": "The Lord of the Rings",
 "isbn": "0-395-19395-8",
 "price": 22.99
      }
    ],
 "bicycle": {
 "color": "red",
 "price": 19.95
    }
  }
}

针对以上的JSON格式的数据,

下面,通过JSON Path进行元素的分析:

860844bf5227a5490456f76478046afa.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值