【JMeter】JSON断言中的JSON Path

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

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

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

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

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

什么是JSON Path?

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

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

JSON Path的操作符和语法

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进行元素的分析:

你可能感兴趣的:(【JMeter】JSON断言中的JSON Path)