Jmeter的json提取器(包括提取一个参数的所有值,提取多个参数

jmeter的json提取器(包括提取多个参数,提取一个参数的所有值)https://www.cnblogs.com/jxial/p/15175314.html

在工作中经常遇到这种情况,就是下一个接口需要引用上一个接口返回的值,普遍的方法就是运用后置提取器

常用的就是 json提取器,边界提取器,正则表达式提取器这三种,不能满足时还可以用xpath提取器,Bean Shell后置处理器等等,一般来说这三个就够用了

下面简单使用一下这三种提取器:

1)json提取器:

请求右键添加-后置处理器-json提取器

看下字段含义:

绝对路径提取:

相对路径提取:--上级直接用.代替

提取出来后在后续的接口可以通过${变量名}调用,此处的变量名填写提取器中的Names of created variables中的值

不确定Json表达式是否正确的情况下,可以在查看结果集中进行调试,如下,切换JSON Path Tester,在表达式输入框中输入json提取表达式,点击test,下方显示提取的结果:

验证提取器是否成功提取到数据,还可以在请求右键-添加-后置处理器-调试后置处理器,然后执行,在查看结果集会发现请求多了个子集,点击后响应数据拖到最后可看到提取到的变量值

如果是下一个请求需要关联上一个请求的多个字段,那么可以添加多个提取器,但是jmeter也支持一个提取器提取多个字段的值,只需要原来变量的地方填写多个,中间用分号隔开即可,如下:

如果想匹配到一个字段所有的值(返回结果有多个子集的时候),可以通过配置Match No.(0 for Random)为-1,代表匹配全部

配置完成之后其他接口要提取里面的内容,可以通过${fh_id_0}获取第一个值------规则和python的切片类似

$.data.recordList[*].code[0]----第一个code

$.data.recordList[*].code[0]----倒数第二个code

$.data.recordList[*].code[0,1]----前两个code

注意:提取多个值,提取器的 Match No.(0 for Random)必须是-1

工作中还会遇到需要按照条件取值的情况-----表达式:[?(expression)]

$.data.recordList[*].code[?(@.test)]------提取code中包含test的记录

$.data.recordList[*].code[?(@.voucher_time>'2021-08-01')]------提取reg_time字段大于2021-08-01的记录

$.data.recordList[*].code[?(@.desc=~/.*测试.*?/i)]------提取desc字段中包含测试的记录

$.data.recordList[*].code[?(@.sex)]------提取sex字段为0的记录

得到的值为result={"id":"2391771870614016","code":"66BG-0000000000-20210817-000000"}

勾选compute concatenation var和不勾选的区别:

1、引用变量值的时候,下标从1开始标识提取第一个,不勾选时下标为0表示第一个

2、可以通过变量名_ALL得到全部的值

相关推荐
liangshanbo12153 小时前
写好 React useEffect 的终极指南
前端·javascript·react.js
apocelipes4 小时前
golang unique包和字符串内部化
java·python·性能优化·golang
Full Stack Developme5 小时前
java.text 包详解
java·开发语言·python
哆啦A梦15885 小时前
搜索页面布局
前端·vue.js·node.js
_院长大人_6 小时前
el-table-column show-overflow-tooltip 只能显示纯文本,无法渲染 <p> 标签
前端·javascript·vue.js
刘梦凡呀6 小时前
C#获取钉钉平台考勤记录
java·c#·钉钉
盒马coding6 小时前
第19节-非规范化数据类型-Composite-types
数据库·postgresql
best_virtuoso6 小时前
PostgreSQL 常见数组操作函数语法、功能
java·数据结构·postgresql
yudiandian20146 小时前
02 Oracle JDK 下载及配置(解压缩版)
java·开发语言
-雷阵雨-6 小时前
MySQL——桥梁JDBC
数据库·mysql·oracle