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 @   Z_sun  阅读(1175)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示