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 用法的更多相关文章

  1. Jmeter --Json Extractor (后置处理器)

    一.使用场景 Json Extractor 后置处理器用在返回格式为json的HTTP请求中, 用来获取返回的json中的某个值.并保存成变量供后面的请求进行调用或者断言等. 二.使用方法 1.创建H ...

  2. Jmeter元件——JSON Extractor后置处理器

    场景使用 json extractor后置处理器用在返回格式为json的HTTP请求中,用来获取返回的json中的某个值.并保存成变量供后面的请求进行调用或断言等. 使用方法 1.常规操作 路径:选择 ...

  3. Jmeter入门14 后置处理器JSON Extractor 提取json的多个值

    json串 []表示对象组成的数组,{}表示对象. 对象里包含多个 "属性":属性值.属性值可以是值,或数组,或对象. JSON Extractor使用json path表达式匹配 ...

  4. 六、Jmeter后置处理器JSON Extractor

    一.当接口返回是JSON格式的时候,就可以用JSON Extractor来抓取返回的值,用来关联或者断言. 1.首先,到V2EX中找一个接口,地址为:https://www.v2ex.com/p/7v ...

  5. JMeter使用JSON Extractor插件实现将一个接口的JSON返回值作为下一个接口的入参

    ##补充## 接口响应数据,一般为JSON,HTML格式的数据. 对于HTML的响应结果提取,可以使用正则表达式,也可以通过XPath来提取:对于JSON格式的数据,可以用正则表达式,JSON Ext ...

  6. Jmeter元件——JSON Extractor后置处理器介绍2

    在前段时间将JSON Extractor元件做了个简单的介绍:Jmeter元件——JSON Extractor后置处理器介绍1,今天以一个具体的json,以不同的方式提取数据做个详细的介绍. 一.模拟 ...

  7. Jmeter 后置处理器--jp@gc - JSON/YAML Path Extractor & JSON Extractor

    后置处理器--jp@gc - JSON/YAML Path Extractor 1.需要下载插件,地址: 解压后把对应jar包放置对应的lib和lib/ext目录下,重启Jmeter: 2.在需要提取 ...

  8. jmeter后置处理器 JSON Extractor取多个变量值

    1.需要获取响应数据的请求右键添加-后置处理器-JSON Extractor 2.如果要获取json响应数据多个值时,设置的Variable names (后续引用变量值的变量名设置)与JSON Pa ...

  9. JMeter 通过JSON Extractor 插件来提取响应结果

    接口响应结果,通常为HTML.JSON格式的数据,对于HTML的响应结果的提取,可以通过正则表达式,也可以通过XPath 来提取. 对于JSON格式的数据,可以通过正则表达式.JSON Extract ...

  10. Jmeter后置处理器之JSON Extractor

    一.使用场景 json extractor后置处理器用在返回格式为json的HTTP请求中,用来获取返回的json中的某个值.并保存成变量供后面的请求进行调用或断言等. 二.使用方法 步骤一:选择HT ...

随机推荐

  1. @RequestParam、@PathVariable、 @RequestBody用法

    Get和Post请求 get方式的请求是没有请求体的.但是get有query string parameter .比如url?name=zhangsan post请求发现了两种请求体.一种是FromD ...

  2. IOS Widget(5):小组件刷新机制

    引言   前面的章节学完已经让我们可以顺利实现一个小组件了,但是小组件里面的数据如何刷新的呢,本节内容将讲解IOS的刷新机制. 大纲 系统如何管理小组件刷新 Timeline刷新机制 Timeline ...

  3. SSM久别遇新坑

    SSM久别遇新坑 久别个锤子,也就几天没看,改bug改到怀疑人生 maven的父子模块问题 众所周知,用maven建立一个空的模块,在它之下,将原本的各层次结构分别新建为一个子模块,就能够将各业务进行 ...

  4. 03.21 ICPC训练联盟周赛:UCF Local Programming Contest 2018正式赛

    B Breaking Branches 题意:两个人比赛折枝,谁剩下最后1,无法折出整数即为输 思路:树枝长n,若是奇数,则Bob胜出,若是偶数,则Alice胜出,且需要输出1: 1 #include ...

  5. C++将数值转换为string

    std::to_string string to_string (int val); string to_string (long val); string to_string (long long ...

  6. Linux常见错误解决办法

    1. 程序运行的一些基础知识 1. 编译程序时去哪找头文件? 系统目录:就是交叉编译工具链里的某个 include 目录:也可以自己指定:编译时用 " -I dir "选项指定. ...

  7. Nginx导航

    简介 最近都在弄微服务的东西,现在来记录下收获.我从一知半解到现在能从0搭建使用最大的感触有两点 1.微服务各大组件的版本很多,网上很多博客内容不一定适合你的版本,很多时候苦苦琢磨都是无用功 2.网上 ...

  8. [刷题] PTA 02-线性结构1 两个有序链表序列的合并

    程序: 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 typedef int ElementType; 5 typedef st ...

  9. ipmitool -I lanplus -H 10.1.81.90 -U admin -P admin mc reset cold

    ipmitool -I lanplus -H 10.1.81.90 -U admin -P admin mc reset cold

  10. Sql Server 课堂笔记

    创建表 --创建学生表 create table student (sno char(8) primary key, sname char(8) not null unique, ssex char( ...