jmeter--JSON Extractor 用法
JMeter处理大部分请求返回的结果,都是json。对于请求返回的结果,处理以后作为其他请求的参数,有一个方便使用的插件:JSON Extractor
JSON Extractor中文叫做json提取器。

设置内容如下:
1、names(名称):提取器的名称
2、comments:提取器功能解释
3、Apply to(应用范围):
Main sample and sub-samples:应用于主sample及子sample
Main sample only:默认的是这个,应用于主sample,一般选择这个就可以。
Sub-samples only:应用于子sample
4、变量提取内容设置:
Names of created variables:接收提取值的变量名,建议英文
JSON Path expression: json表达式中最关键的内容是json path expression。语法如下:
|
jsonpath |
表示值 |
jsonpath |
表示值 |
|
$ |
根节点 |
. 或者 [] |
子节点 |
|
@ |
当前节点 |
?() |
过滤条件 |
|
* |
所有子节点 |
() |
支持表达式计算 |
|
.. |
选择所有符合条件的节点 |
[start:stop:step] |
数组切片运算符 |
|
[] |
迭代器下标,例如数组下标 |
[,] |
支持迭代器内多选 |
|
i |
对大小写不敏感 |
=~ |
正则表达式,例如匹配字符串为 /.*指定字符串.*?/i |
用到的逻辑运算符:

举个例子:
{
"code": 0,
"data": {
"loanArray": [{
"name": "test_1",
"priority": 0,
"list": [{
"period": "24期",
"id": 66601
},
{
"period": "36期",
"id": 2792
}
]
},
{
"name": " test_2",
"priority": 1,
"list": [{
"period": "24期",
"id": 66637
},
{
"period": "36期",
"id": 66633
}
]
},
{
"name": " test_3",
"priority": 2,
"list": [{
"period": "24期",
"id": 66646
},
{
"period": "36期",
"id": 66642
}
]
},
……
],
"loanP": [{
"id": 2,
"keys": "CASH_FLOW",
"name": "name_1"
},
……
]
},
"mask": "c1b8333a-732c-4666f-adad-b68b0b275f65",
"msg": "success",
"timestamp": 1575452653
}
要提取loanArray数组下name==" test_1"的list下的id
表达式如下(注意全部是英文格式):
$.data.loanArray[?(@.name==“test_1”)].id
或者$..loanArray[?(@.name==“test_1”)].id
要提取loanArray数组下priority超过1的list下的id值可以写作:
$.. loanArray[?(@.priority>1)].id
要提取loanArray数组下name包含“ test”的list下的id可以写作:
$.. loanArray[?(@.name=~/.*test.*?/i)].id
5、Match No.(0 for Random):匹配数是指匹配第几个。匹配数字(0代表随机,1代表第一个,-1代表所有)如果是-1,则是匹配所有。

如上图:可以一次从json返回中提取多个参数,相互之间按照英文;来隔开;注意:当json提取器要提取两个值(或两个以上)的时候,每一个字段都必填值,且字段值的数量要一致(勾不勾 Compute concatenation var 看需求下面介绍)。字段值数量不一致则没法提取值,会报错“Mismatch between number of variables, json expressions and default values”。
6、 Compute concatenation var(suffix_ALL):是否统计所有,即将匹配到的所有值保存为数组,名为“变量名_ALL”,使用场景需要获取的值有多个,后面需要对这一组数据进行操作,如:

7、Default Values:缺省值。即如果未匹配到数值,默认是多少。
jmeter--JSON Extractor 用法的更多相关文章
- Jmeter --Json Extractor (后置处理器)
一.使用场景 Json Extractor 后置处理器用在返回格式为json的HTTP请求中, 用来获取返回的json中的某个值.并保存成变量供后面的请求进行调用或者断言等. 二.使用方法 1.创建H ...
- Jmeter元件——JSON Extractor后置处理器
场景使用 json extractor后置处理器用在返回格式为json的HTTP请求中,用来获取返回的json中的某个值.并保存成变量供后面的请求进行调用或断言等. 使用方法 1.常规操作 路径:选择 ...
- Jmeter入门14 后置处理器JSON Extractor 提取json的多个值
json串 []表示对象组成的数组,{}表示对象. 对象里包含多个 "属性":属性值.属性值可以是值,或数组,或对象. JSON Extractor使用json path表达式匹配 ...
- 六、Jmeter后置处理器JSON Extractor
一.当接口返回是JSON格式的时候,就可以用JSON Extractor来抓取返回的值,用来关联或者断言. 1.首先,到V2EX中找一个接口,地址为:https://www.v2ex.com/p/7v ...
- JMeter使用JSON Extractor插件实现将一个接口的JSON返回值作为下一个接口的入参
##补充## 接口响应数据,一般为JSON,HTML格式的数据. 对于HTML的响应结果提取,可以使用正则表达式,也可以通过XPath来提取:对于JSON格式的数据,可以用正则表达式,JSON Ext ...
- Jmeter元件——JSON Extractor后置处理器介绍2
在前段时间将JSON Extractor元件做了个简单的介绍:Jmeter元件——JSON Extractor后置处理器介绍1,今天以一个具体的json,以不同的方式提取数据做个详细的介绍. 一.模拟 ...
- Jmeter 后置处理器--jp@gc - JSON/YAML Path Extractor & JSON Extractor
后置处理器--jp@gc - JSON/YAML Path Extractor 1.需要下载插件,地址: 解压后把对应jar包放置对应的lib和lib/ext目录下,重启Jmeter: 2.在需要提取 ...
- jmeter后置处理器 JSON Extractor取多个变量值
1.需要获取响应数据的请求右键添加-后置处理器-JSON Extractor 2.如果要获取json响应数据多个值时,设置的Variable names (后续引用变量值的变量名设置)与JSON Pa ...
- JMeter 通过JSON Extractor 插件来提取响应结果
接口响应结果,通常为HTML.JSON格式的数据,对于HTML的响应结果的提取,可以通过正则表达式,也可以通过XPath 来提取. 对于JSON格式的数据,可以通过正则表达式.JSON Extract ...
- Jmeter后置处理器之JSON Extractor
一.使用场景 json extractor后置处理器用在返回格式为json的HTTP请求中,用来获取返回的json中的某个值.并保存成变量供后面的请求进行调用或断言等. 二.使用方法 步骤一:选择HT ...
随机推荐
- 【phpstorm】Server's certificate is not trusted
问题描述 phpstorm 一直跳出 问题解决 file-->Settings然后搜索Server Certificates,选中框打钩
- 使用TK框架中 insert与insertSelective区别
insertSelective会对字段进行判断再更新(如果为Null就忽略更新),如果你只想插入某些字段,可以用这个方法. insert对你注入的字段全部插入
- 精选Hive高频面试题11道,附答案详细解析(好文收藏)
1. hive内部表和外部表的区别 未被external修饰的是内部表,被external修饰的为外部表. 区别: 内部表数据由Hive自身管理,外部表数据由HDFS管理: 内部表数据存储的位置是hi ...
- opencv——感兴趣区域(ROI)的分析和选取[详细总结]
引言 在利用OpenCV对图像进行处理时,通常会遇到一个情况,就是只需要对部分感兴趣区域进行处理.因此,如何选取感兴趣区域呢?(其实就是"抠图"). 在学习opencv的掩码运算后 ...
- 逆向工程初步160个crackme-------2
有了第一个crackme的经验后,这个crackme用了半个小时就验证成功了.(思路和第一个crackme相似) 动态调试工具:ollydbg (2.10) 文件分析工具:PEID (0.95) 同样 ...
- 北航OO(2020)第四单元博客作业暨学期总结
一.第四单元架构设计 1.第一次作业 我在本次作业中设置了多个储存结构:Directory,ElementsInName,ElementsInId,Cache. Directory: 顾名思义,这是个 ...
- [Linux] Linux命令行与Shell脚本编程大全 Part.3
Shell Shell 是管理命令行的程序(包在内核外的壳) 不同Shell版本演化关系如下,一般Linux中会自动安装Sh和Bash(Bash比Sh好写,Zsh最好用) .bashrc:Bash 的 ...
- 怎么用CMD命令进入D盘
怎么用CMD命令进入D盘 太平洋电脑网 已认证的官方帐号 6 人赞同了该文章 大家都知道win操作系统想要打开D盘,直接点我的电脑就能进d盘了,有时候只能使用dos的情况下也利用系统自带的cmd命 ...
- n/a或N/A是英语“不适用”(Not applicable)
n/a或N/A是英语"不适用"(Not applicable)等类似单词的缩写,常可在各种表格中看到. N/A比较多用在填写表格的时候,表示"本栏目(对我)不适用&quo ...
- BUUCTF(九) [ACTF2020 新生赛]Exec 1
baidu.com & ls .. baidu.com & ls ../.. baidu.com & ls ../../.. 发现flag 查看 baidu.com & ...