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

json串 []表示对象组成的数组,{}表示对象。

对象里包含多个 "属性":属性值。属性值可以是值,或数组,或对象。

JSON Extractor使用json path表达式匹配。$表示响应的根对象。取子对象或对象的属性用.  取数组里的对象用[],数组索引从0开始。

示例:

1  找一个响应结果是json格式的,分析响应结果。

比如下面的响应整个是个数组,其中有4个对象。因此取值用$[索引取0-3或*取所有].属性值

如果响应类似{"属性":[{"sx":1},{},{}]},整个响应是个对象。取sx的值:$.属性[0].sx

2 jmeter添加步骤1分析的请求,并在该请求上点右键添加post processors 》 JSON Extractor

  1 分号分隔多个参数名,json path表达式,匹配第几个,默认值   【分隔符必须是分号】

  2 所有的个数一定要匹配  【试过了除了matchno(有默认值0),其他三个任一个不匹配该请求都没在结果树显示】

names of created variables :接收值的变量名

json path: json path表达式

match no:0随机;n取第几个匹配值;-1匹配所有,后续引用用 变量名_N 取第N个值。

default values: 缺省值,匹配不到值的时候取该值

3 新建一个http请求获取参数值

4 添加结果树,运行,查看结果。

5 修改json extractor 获取数组的所有值   $[*].属性。match no=3取第3个。

6  match no=5,数组越界后,取default values

7  修改json extractor  设置match no =-1 匹配所有值;并修改接收参数的http请求的参数为 ${varname_N}。N=1-4.

8 修改json extractor, ${varname_N}的N越界之后取不到参数 【不会取json extractor里设定的默认值,因为N,P,F,D变量实际取到了值】

官网:http://jmeter.apache.org/usermanual/component_reference.html#JSON_Extractor

json path :https://goessner.net/articles/JsonPath/

the end!

原文地址:https://www.cnblogs.com/dinghanhua/p/9823305.html

时间: 2024-10-13 10:49:56

Jmeter入门13 后置处理器JSON Extractor提取json的多个值的相关文章

JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一)概述及简单实例

上文我们讲述了如何对 HTTP请求 的响应数据进行断言,以判断响应是否符合我们的预期,敬请参阅:JMeter学习-007-JMeter 断言实例之一 - 响应断言 那么我们如何获取 HTTP请求 响应结果中的数据呢?此文以获取类目 手机数码-手机通讯-苹果 结果列表中的第一个商品的系统编号为例演示(脚本基于上篇文章,请知悉). 如下为请求响应数据中的部分数据,我们最终要获取的数据为 "sysNo": "2142717" 中的 2142717. 1 2 3 4 5 6

JMeter学习-009-JMeter 后置处理器实例之 - 正则表达式提取器(二)多参数获取

前文简述了通过后置处理器 - 正则表达式提取器 获取 HTTP请求 响应结果中的特定数据,未看过的亲,敬请参阅 JMeter学习-008-JMeter 后置处理器实例之 - 正则表达式提取器(一). 此文主要对正则表达式提取器的 正则表达式.模板.匹配数字,三者的关系,做进一步的讲解. 截取商品列表响应结果数据中的一段商品数据如下所示: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 {     "s

Jmeter 后置处理器JSON Extractor 提取json的多个值

json串 []表示对象组成的数组,{}表示对象. 对象里包含多个 "属性":属性值.属性值可以是值,或数组,或对象. JSON Extractor使用json path表达式匹配,可以一次取多个变量值.$表示响应的根对象.取子对象或对象的属性用.  取数组里的对象用[],数组索引从0开始. 示例: 1  找一个响应结果是json格式的,分析响应结果. 比如下面的响应整个是个数组,其中有4个对象.因此取值用$[索引取0-3或*取所有].属性值 如果响应类似{"属性"

JMeter学习-011-JMeter 后置处理器实例之 - 正则表达式提取器(三)多参数获取进阶引用篇

前两篇文章分表讲述了 后置处理器 - 正则表达式提取器概述及简单实例.多参数获取,相应博文敬请参阅 简单实例.多参数获取. 此文主要讲述如何引用正则表达式提取器获取的数据信息.其实,正则表达式提取器获取的数据,均可看做一个变量(单个数据,此处指所需获取的测试相关数据)或数组(多个数据),通过引用变量或者数组的数据,达到应用其数据的目的.下面针对此两种方式进行介绍. 第一种:单数据变量 但数据变量的应用比较简单,同我们日常 shell 脚本引用变量相同,引用样式:引用名称.例如要引用下图中的变量,

jmeter后置处理器,正则表达式提取器的使用

[使用场景]:下一个请求参数需要从上一个请求的响应数据中获取 [jmeter正则表达式说明]:使用perl正则表达式(可参考:http://www.runoob.com/perl/perl-regular-expressions.html) [语法]: () 括起来的部分就是要提取的. .   匹配任何字符串. *  表示任意个字符 + 一次或多次. ? 不要太贪婪,在找到第一个匹配项后停止. \d        数字 \w       数字或者字母 {n}       表示n个字符 {n,m}

jmeter-后置处理器-BeanShell PostProcessor-json提取-json值修改-get

1.导入json包 2.import JSON jar包-时间格式的包(修改值用到了) import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; //import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; 3.获取系统变量-responsedat

第三篇 Postman之 Tests(后置处理器,断言)

第二篇里讲了手动设置全局变量及局部变量的方法,但是这有一个缺点,就是每次测试之前,都需要获取相关变量值,手动再填写更新到对应的全局变量或者局部变量里,这对于想进行自动化执行的人或者懒人就不太友好了,本文将继续解决这个问题,主要还是我太懒了. 还是先抛一个问题: 接口B需要用到接口A返回的报文中的某个字段,具体点,接口B是个列表请求接口,它能正常执行,需要携带接口A登录后返回报文里的token值,怎么通过代码设置的方式实现呢?这就需要用到Tests(后置处理器) Tests--后置处理器功能 Te

postman 前置 和 后置 处理器 用法

基本用法 赋予变量 var  body="我是变量的值" ;   -----给body赋值 postman.setEnvironmentVariable("sign",'给sign的值');  设置一个局部变量名sign 赋值'给sign的值',并加入到了局部变量参数里面(postman右上角),给其他请求调用,调用方法{{sign}} postman.setGlobalVariable("AAA",'给sign的值'); 设置一个全局变量名AA

六、Jmeter后置处理器JSON Extractor

一.当接口返回是JSON格式的时候,就可以用JSON Extractor来抓取返回的值,用来关联或者断言. 1.首先,到V2EX中找一个接口,地址为:https://www.v2ex.com/p/7v9TEc53 用一个最新主题的接口: https://www.v2ex.com/api/topics/latest.json Method: GET Authentication: None(没鉴权) 这个接口返回的格式是json格式,直接打开浏览器就可以看到 2.Jmeter中新增接口,运行后在查