Jmeter----JSON提取器

1.说明

有时候需要将前一个请求返回的数据作为下一个请求的参数时,我们就需要 JSON提取器 / 正则表达式提取器。使用JSON提取器去提取我们想要的部分再传入后面的请求中。

 

2.步骤

第一步:添加JSON提取器

HTTP请求 鼠标右键 =>添加 后置处理器 =>JSON提取器

在察看结果树中选择JSON Path Tester,输入表达式即可拿来测试书写的Json提取器表达式是否正确,是否获取到了我们想要的数据

 

第二步:提取请求返回的我们需要的内容

返回数据(需要提取加粗的数据出来),可以使用 json.cn 方便查看格式

{"data":{"customer":{"cart":{"cartItems":[{"quantity":5,"lineId":"1502177237219287043","sku":{"product":{"extAttribute":[{"code":"logistics_description"}],"images":[{"images":null,"url":"x"}],"code":"AA9C08571T441_507","skus":[
{"code":"6199f9b283496a0001b8115b","options":[]}],"subTitle":null},"isEnabled":true},"selected":true},{"quantity":3,"lineId":"1481162053185445894","sku":{"product":{"extAttribute":[{"code":"logistics_description"}],"images":[{"images":[],"url":"x"}],"code":"AA1S00431CA155_999","skus":[{"code":"61b71e5008dd700001d1b90f","options":[]}],"subTitle":null},"isEnabled":true},"selected":true}]}}}
}

 标准写法为$.key

 其中key为返回结果map中的一个键,如果是多层则继续用.key进行即可

 如果遇到key的value值为一个List,则使用.key[n],其中n为list中元素的编号

 

第三步:取值

取值使用 ${JSON提取器中的参数名称}

即${cart_skuCode_0}

 

 第四步:更多取值用法

 

 

获取取得的值中的第一个:${cart_quantity_1}     值:5

获取取得的值中的第二个:${cart_quantity_2}     值:3

勾选compute concatenation var的情况下,可以使用${cart_skuCode_ALL}获得全部的值    值:5,3

 

JsonPath 说明
$ 根对象/元素
@ 当前对象/元素
. or [] 子操作符
.. 递归下降
* 通配符,代表所有对象/元素
[] 下标运算,通过数组元素的下标访问数组元素
[,] Union操作符,使用间隔的名字或数组下边生成子集
[start:end:step] 数组切片
?() 使用过滤表达式
() 脚本表达式

 

 

举例说明:

 { "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

  }

  }

  }

$.store.book[*].author 商店里所有书籍的作者
$..author 商店里所有书籍的作者
$.store.* 商店里的所有东西(包括一些书和一辆红色的自行车)
$.store..price 商店里的所有价格(包括每一本书的价格和自行车的价格)
$..book[2] 第三本书的所有信息
$..book[-1:] 最后一本书的所有信息
$..book[0,1] 前2本书的所有信息
$..book[:2] 前2本书的所有信息
$..book[?(@.isbn)] 找出所有有isbn编号的书籍信息
$..book[?(@.price<10)] 找出所有价格小于10的书籍信息

 

 

 

 

 

posted @ 2022-03-11 16:32  Z_sun  阅读(938)  评论(0编辑  收藏  举报