JMeter-JSON提取器(JSON Extractor)

07-11 1545阅读

前言

当取样器返回的数据是JSON格式时,可以用JSONPath提取所需要的值,通过JSON提取器(JSON Extractor)来实现。

一、JSONPath

JSONPath是一种用于在JSON数据结构中定位和提取数据的查询语言。

语法:

$表示根节点

. 代表绝对路径,表示选择子节点,即按照父子级关系进行查找,表达式实例:$.父级.子级.要定位的元素

..代表相对路径,表示选择任意子节点,即直接从子级关系(不考虑层级)进行查找,表达式实例:$..要定位的元素

示例:

假设有以下JSON响应数据:

{

  "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

      }

    ],

    "bicycle": {

      "color": "red",

      "price": 19.95

    }

  }

}

提取store中的bicycle的color值:$.store.bicycle.color或$..color

提取第一本书的作者:$.store.book[0].author

提取所有书的作者:$.store.book[*].author

二、JSON提取器(JSON Extractor)

2.1添加JSON提取器

添加线程组-添加HTTP请求-添加-后置处理器-JSON提取器

JMeter-JSON提取器(JSON Extractor)

2.2设置JSON提取器

JMeter-JSON提取器(JSON Extractor)

(1)引用名称(Name of created variable):设置获取到值的变量名称,用于后期引用;多个变量时用分号分隔

(2)JSON路径表达式(JSON Path expressions): JSONPath表达式,用于查找对应值;多个表达式用分号分隔

(3)匹配数字(0代表随机)(Match No. (0 for Random)):0 代表随机取值,n取第几个匹配值,-1匹配所有,后续引用时采用 变量名_N 取指定的第N个值

(4)缺省值(Default Value):缺省值,当JSONPath表达式未匹配到值时取该值

2.3验证JSON Path表达式提取的值

方法一:在查看结果树中,选择JSON Path Tester查看

JMeter-JSON提取器(JSON Extractor)

方法二:添加调试取样器后,在查看结果树中,查看调试取样器(Debug Sampler)

线程组-右键-添加-取样器-调试取样器

在查看结果树中,查看调试取样器

JMeter-JSON提取器(JSON Extractor)

2.4引用JSON Path表达式提取的值

添加新的HTTP请求,引用JSON Path表达式提取的值。

格式:${引用名称}

JMeter-JSON提取器(JSON Extractor)

出现错误:获取的值引用时是乱码

JMeter-JSON提取器(JSON Extractor)

原因:HTTP请求,设置参数时,多勾选了编码,去掉勾选,即可得到正确结果

JMeter-JSON提取器(JSON Extractor)

2.5JSON Path表达式提取的返回值是数组

JSON Path表达式匹配到多个值,匹配数字需要填写-1

JMeter-JSON提取器(JSON Extractor)

添加新的HTTP请求,引用提取到的值。

JMeter-JSON提取器(JSON Extractor)

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]