Jmeter元件——JSON Extractor后置处理器介绍2
在前段时间将JSON Extractor元件做了个简单的介绍:Jmeter元件——JSON Extractor后置处理器介绍1,今天以一个具体的json,以不同的方式提取数据做个详细的介绍。
一、模拟请求
使用java请求来模拟请求,入参json格式数据,以实例来讲解,具体如下
1.在线程组下添加一个java请求

2.类名称选择org.apache.jmeter.protocol.java.test.JavaTest
3.json数据填入ResultData中

4.运行该脚本,在结果树中查看结果
二、数据提取
json示例数据如下:
{"name":"温一壶清酒","url":"https://www.cnblogs.com/hong-fithing/","page":,"isNonProfit":true,"address":{"street":"科技园路","city":"上海","country":"中国"},"data":{"Jenkins系列博客":[{"name":"Jenkins环境搭建(1)-下载与安装","url":"https://www.cnblogs.com/hong-fithing/p/10290315.html","pageview":[,],"keywords":["jenkins"]},{"name":"Jenkins环境搭建(2)-搭建jmeter+ant+jenkins自动化测试环境","url":"https://www.cnblogs.com/hong-fithing/p/10462493.html","pageview":[,],"keywords":["jenkins","ant","jmeter"]},{"name":"Jenkins环境搭建(3)-配置自动发送邮件","url":"https://www.cnblogs.com/hong-fithing/p/10473996.html", "pageview":[,],"page":, "keywords":[ "jenkins", "邮件"]}],"UI自动化系列博客":[{"name":"UI自动化测试(一)简介及Selenium工具的介绍和环境搭建","url":"https://www.cnblogs.com/hong-fithing/p/7622215.html","pageview":,"keywords":[ "selenium","自动化"]},{"name":"UI自动化测试(二)浏览器操作及对元素的定位方法(xpath定位和css定位详解)","url":"https://www.cnblogs.com/hong-fithing/p/7623838.html","pageview":,"keywords":["xpath","css","自动化"]},{"name":"UI自动化测试(三)对页面中定位到的元素对象做相应操作","url":"https://www.cnblogs.com/hong-fithing/p/7625800.html","pageview":,"keywords":["自动化"]}]},"pageview": }
1.基本提取
$['name']
$.name
区别:
使用符号.只能获取一个子节点
使用中括号[]可以获取多个子节点的值
$["name","url"] 获取的是根节点下name节点和url节点,并不是值


$.data.Jenkins系列博客[*]
$.data.Jenkins系列博客
区别:
使用[*],表示获取data节点下 Jenkins系列博客 数组中元素的值
不使用[*] 表示获取data节点下 Jenkins系列博客 的值


$.data.Jenkins系列博客[] 表示获取 Jenkins系列博客 数组中第一个元素
$.data.Jenkins系列博客[,] 表示获取 Jenkins系列博客 数组中第一个/第三个元素

2.切片处理
切片处理,就类似于取数据的一个范围值,格式为:$.data.Jenkins系列博客[n:m]
说明:
n:表示数组元素的起始下标,如果不填写,则默认为0,表示从第一个开始
m:表示数组原因的结束下标,如果不填写,则默认为数组的最后一个
ps:是一个半闭半开区间,即包含起始下标,不包含结束下标
$.data.Jenkins系列博客[:] 提取数组中的所有元素
$.data.Jenkins系列博客[:] 提取第一个开始到最后的元素

$.data.Jenkins系列博客[-n:] 提取倒数n个元素
$.data.Jenkins系列博客[:-m] 提取不包含最后m个元素的其他元素
输入负值说明,如下:

$.data.*
$.data..*
.* 表示获取data节点下的所有子节点
..* 表示获取data节点下所有符合条件的所有节点
如下图所示:


3.过滤表达式
表达式是用于数组节点的过滤处理,用来找到符合要求的节点,因为json是无序的,格式为:[?(表达式)]
$.data.Jenkins系列博客[?(@.name == "Jenkins环境搭建(1)-下载与安装")].url
这个表达式可用sql来表达为:
select url from Jenkins系列博客 where name='Jenkins环境搭建(1)-下载与安装'
同样的取值,只是写法不一样而已

4.表达式操作
==、!= < <= > >=
=~ 正则匹配
in 存在于
nin 不存在于
subsetof 子集 || 或者
&& 并且
示例如下:
$.data.Jenkins系列博客[?(@.pageview > )]
$.data.Jenkins系列博客[?(@.name != "Jenkins环境搭建(1)-下载与安装")].pageview
$.data.Jenkins系列博客[?(@.pageview in [])]
如上简单表达式,就无须过多解释了,一看就明白。
来个正则匹配示例:
$.data.Jenkins系列博客[?(@.name =~ /Jenkins环境搭建(2).+/)]
表示从 Jenkins系列博客 获取 name 为Jenkins环境搭建(2)开头的元素

$.data.Jenkins系列博客[?(@.keywords.length() >= && @.name =~ /Jenkins环境搭建.+/)]
表示从 Jenkins系列博客 获取 keywords大于等于2 并且 name 为Jenkins环境搭建开头的元素

$.data.Jenkins系列博客[?(@.page == $.pageview)]
表示从 Jenkins系列博客 获取 page == 根节点下的pageview 的元素

再来讲个获取子集的表达式
$.data.Jenkins系列博客[?(@.keywords subsetof ["jmeter","jenkins","ant","邮件"])]
表示从 Jenkins系列博客 数组中,获取keywords为 jmeter jenkins ant 邮件 四者的子集的元素

修改表达式如下:
$.data.Jenkins系列博客[?(@.keywords subsetof ["jenkins","邮件","ant"])]
获取到的值如下:

jmeter中的JSON Extractor就介绍到这了,都是些很基础的使用方式,希望对需要的人有所帮助。
Jmeter元件——JSON Extractor后置处理器介绍2的更多相关文章
- Jmeter元件——JSON Extractor后置处理器
场景使用 json extractor后置处理器用在返回格式为json的HTTP请求中,用来获取返回的json中的某个值.并保存成变量供后面的请求进行调用或断言等. 使用方法 1.常规操作 路径:选择 ...
- jmeter数据关联_后置处理器_正则表达式提取器
- Spring之BeanPostProcessor(后置处理器)介绍
为了弄清楚Spring框架,我们需要分别弄清楚相关核心接口的作用,本文来介绍下BeanPostProcessor接口 BeanPostProcessor 该接口我们也叫后置处理器,作用是在Be ...
- 获取响应数据___JSON Extractor 后置处理器
对于大部分请求返回的结果,都是json,有一个更方便使用的插件:JSON Extractor 不过得首先下载插件 https://jmeter-plugins.org/wiki/JSONPathExt ...
- Jmeter --Json Extractor (后置处理器)
一.使用场景 Json Extractor 后置处理器用在返回格式为json的HTTP请求中, 用来获取返回的json中的某个值.并保存成变量供后面的请求进行调用或者断言等. 二.使用方法 1.创建H ...
- Jmeter 后置处理器
1.JSON Extractor Json extractor 后置处理器用在返回格式为 Json 的 HTTP 请求中,用来获取返回的 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 Path Extractor插件来获取响应结果
学生金币充值接口:该接口有权限验证,需要admin用户才可以做操作,需要添加cookie.cookie中key为登录的用户名,value从登录接口中获取,登陆成功之后会返回sign. 通常做法是在HT ...
- jmeter后置处理器 JSON Extractor取多个变量值
1.需要获取响应数据的请求右键添加-后置处理器-JSON Extractor 2.如果要获取json响应数据多个值时,设置的Variable names (后续引用变量值的变量名设置)与JSON Pa ...
随机推荐
- Integer 数值比较
//Integer 源码 private static class IntegerCache { static final int low = -128; sta ...
- 解决logstash.outputs.elasticsearch[main] Could not index event to Elasticsearch status 404
现象:lostack启动正常,logstack收集输入redis数据,输出到elasticsearch写入失败 提示:去建索引 的时候elasticsearch返回404 [2019-11-12T11 ...
- RabbitMQ之交换机及spring整合
交换机 交换机属性: Name:交换机名称 Type:交换机类型 direct.topic.fanout.headers Durability:是否需要持久化,true为持久化 Auto Delete ...
- [转]JVM参数使用手册
内存分配相关 Xms 英文释义:Initial heap size(in bytes) 中文释义:堆区初始值 使用方法:-Xms2g 或 -XX:InitialHeapSize=2048m Xmx 英 ...
- c++-内联函数和函数重载和默认参数和函数指针
内联函数 C++ 内联函数是通常与类一起使用.如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方. 对内联函数进行任何修改,都需要重新编译函数的所有客户端,因为编 ...
- Django:永别了pycrypto库~
在开发微信登陆功能时,解密用户信息需要使用到 Crypto 包,所以安装了pycrypto库. Linux.OS X 系统均可直接 pip install pycrypto . 最近换到win10下开 ...
- python基础之元组讲解
概念讲解: 1.Python 的元组与列表十分相似,但是元组的元素只可读不可修改: 2.元组使用小括号,列表使用方括号: 3.元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. (1)创建一 ...
- Hyperledger Fabric私有数据
官方文档:点这里 1简介 在同一个通道中,允许某一组织在对同一通道内其他组织保持部分的数据私有.也就是说有一部分被标识为私有的数据只能具有权限的组织查看和操作,而其余组织不具备查看和操作私有数据的权限 ...
- UWP 在ShellPage.xaml.cs 中导航至其他页面引发System.Exception
最近有一个需求,需要App监测网络变化,并在网络变化的同时用户,你切网啦,并且导航至一个切网的特定页面. 和Android.iOS的小伙伴后共同发现,人家有一个类似”拦截器“的框架,可以拦截App发出 ...
- django找不到模板的错误处理django.template.exceptions.TemplateDoesNotExist: blog/list.html
错误提示如下图: 程序出错对于程序员而言是最常见的,一般解决的要点是看清错误提示(读懂英文很重要) 根据错误提示 blog\list.html这个文件不存在,也就是没找到资源 这个时候需要去检查有没有 ...