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 ...
随机推荐
- [CTF]ACSII码
[CTF]ACSII码 ----------转自百度百科 https://baike.baidu.com/item/ASCII/309296?fromtitle=ascii码&fromid=9 ...
- 解决@Autowired警告
在使用spring框架中的依赖注入注解@Autowired时,idea报了一个警告 被警告的代码如下: @Autowired UserDao userDao; 警告提示信息:Field injecti ...
- 1、requests基础
一.升级pip版本的命令 : python -m pip install --upgrade pip 二.requests安装 windows系统系cmd运行 pip install request ...
- maven简单入门
maven简单部署webapp项目流程及注意事项 maven了解 简介: Maven 是一个项目管理工具,它包含了一个项目对象模型 (POM: Project Object Model),一组标准集合 ...
- 关于MDI多文档程序的一些思考
MDI程序的框架 客户窗口是一个预定义的窗口类(MDICLIENT),它是框架窗口的子窗口同时也是各个子文档窗口的父窗口.框架窗口和各个子文档窗口都是自定义的窗口类. MDI程序中的一些要点 窗口中的 ...
- C++ primer plus读书笔记——第1章 预备知识
第1章 预备知识 1. Ritchie希望有一种语言能将低级语言的效率.硬件访问能力和高级语言的通用性.可移植性融合在一起,于是他在旧语言的基础上开发了C语言. 2. 在C++获得一定程度的成功后,S ...
- ES6学习-0 前言
本菜鸟做了二十来年的程序开发了,前后台都写过,队伍也带过.大约是2000年左右,是用dephi 写后台CGI,所有的html,js,css基本都是混在CGI里输出到前台的,那时也没有明确的前后台的概念 ...
- [刷题] 235 Lowest Common Ancestor of a Binary Search Tree
要求 给定一棵二分搜索树和两个节点,寻找这两个节点的最近公共祖先 示例 2和8的最近公共祖先是6 2和4的最近公共祖先是2 思路 p q<node node<p q p<=node& ...
- [Java] Git
版本控制 VCS(Version Control System):版本控制系统 主要功能:版本控制.主动提交.中央仓库 中央仓库功能:保存版本历史.同步团队代码 DVCS(Distributed VC ...
- tail -fn 1000 test.log | grep '关键字' 按照时间段 sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log /var/log/wtmp 该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件
Linux 6种日志查看方法,不会看日志会被鄙视的 2020-02-11阅读 7.3K0 作为一名后端程序员,和Linux打交道的地方很多,不会看Linux日志,非常容易受到来自同事和面试官的嘲讽 ...