九、JMeter实战-JSON断言

一、JSON响应断言

该组件使您可以执行JSON文档的验证。
首先,它将解析JSON,如果数据不是JSON则失败。
其次,它将使用https://github.com/json-path/JsonPath中的语法搜索指定的路径。如果找不到该路径,它将失败。
第三,如果在文档中找到JSON路径,并要求针对期望值进行验证,它将执行验证。对于null值,在GUI中有一个特殊的复选框。请注意,如果路径将返回数组对象,则将对其进行迭代,并且如果找到期望值,则断言将成功。要验证空数组,请使用[]字符串。另外,如果patch将返回字典对象,则在比较之前将其转换为字符串。

什么是JSON

JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式。JSON容易理解,便于阅读和编写;同时计算机也易于解析和生成,所以JSON有广泛的应用。

键值对的形式存在:


JSON断言分析:

  1. 返回的数据必须的JSON格式,否则会解析失败。
  2. 他将JsonPath语法搜索指定的路径,找不到路径,则会失败。http://goessner.net/articles/JsonPath/ 这个网址去学习JSON语法。
  3. JSON是键值对形式存在,通过路径找到键,可以对该键的值进行校验。
  4. 如果键的值为null,GUI中有复选框(Expect null),勾选上则表示以null作为预期值。
  5. 如果路径找到的数组对象(在列表页中比较常见这种情况),则会对数组中的数据进行轮询。如果其中有一个值和预期值匹配,那么断言也是成功的。
  6. 返回的是字典对象,则需要转为字符串后再进行比较。

添加 》 断言 》 JSON断言


JSON断言界面参数说明:

  1. 名称:节点的名称,显示在查看结果树中,自己根据实际情况定义。
  2. 注释:对该节点进行注释。
  3. 断言存在JSON路径:断言JSON元素的路径。
  4. 附加断言值:如果要使断言具有某个值,把这个值勾选上。如果写了(3)JSON元素的路径,要把这个值勾选上。
  5. 匹配为正则表达式:如果要使用正则表示式,选中该复选框。
  6. 预期值:JSON元素路径对应的值。
  7. 反转断言:就是否的意思,即如果符合就失败。

可以直接在查看结果树中进行JSON语法的测试。测试ok了再直接放在JSON断言中。

$  表示跟节点。
[] 表示数组,0表示第一个;$[0]   表示跟节点后的第一个对象。
resultcode 即key,这里要获取resultcode的值,所以填写resultcode。


当接口的返回数据比较多的时候,可以去https://www.json.cn/进行解析:


举例:

取第一个id的值,$.data[0].id

原文地址:https://www.cnblogs.com/wwho/p/14133692.html