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

jmeter的json提取器(包括提取多个参数,提取一个参数的所有值)icon-default.png?t=N7T8https://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得到全部的值

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/531119.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

项目文章| Plant CellDAP-seq解析草莓NAC转录因子FvRIF的调控网络

DAP-seq是一种体外研究蛋白与DNA结合的技术,该技术利用麦胚乳表达体系表达目标蛋白然后与基因组DNA文库体外孵育,得到目标蛋白的结合信息。与ChIP-seq和CUT&Tag不同,DAP-seq不需要抗体,在植物中应用更为广泛。今天我们分享一篇…

c++的STL(8) -- queue

queue容器概述 queue容器实现了实现了和队列相同结构的容器。 如图,队列这种结构有两端: 队首和队尾。 对于队列,我们添加数据只能从队尾添加,删除数据和获取数据只能从队首删除。是一种先进先出的结构。 -- 当然读取数据也只能从队首或者…

RuntimeError: Error(s) in loading state_dict for ZoeDepth解决方案

本文收录于《AI绘画从入门到精通》专栏,订阅后可阅读专栏内所有文章,专栏总目录:点这里。 大家好,我是水滴~~ 本文主要介绍在 Stable Diffusion WebUI 中使用 ControlNet 的 depth_zoe 预处理器时,出现的 RuntimeError: Error(s) in loading state_dict for ZoeDepth 异常…

【Leetcode每日一题】模拟 - 数青蛙(难度⭐⭐)(51)

1. 题目解析 题目链接:1419. 数青蛙 这个问题的理解其实相当简单,只需看一下示例,基本就能明白其含义了。 2.算法原理 一、模拟青蛙叫声的基本逻辑 在模拟青蛙叫声的过程中,我们需要遵循一定的规则来判断何时青蛙会发出声音。…

MySQL 优化总结

目标知识 MySQL执行流程图 MySQL 优化成本路线图 优化成本&#xff1a;硬件>系统配置>数据库表结构>SQL及索引。优化效果&#xff1a;硬件<系统配置<数据库表结构<SQL及索引。 MySQL 五大优化原则 减少数据返回&#xff1a;设置合理字段数据类型、启用压缩…

通往 AGI 的道路上,OpenAI 逐渐构建了全模态的工具集

几天前&#xff0c;OpenAI 公司官宣将发布一个名为“Voice Engine”的小规模模型&#xff0c;引起巨大的声浪。 该模型支持仅使用文本输入和单个 15 秒音频样本来生成与原始说话者非常相似的自然语音。可应用于“语音转录”、“语音克隆”、“语音翻译”等场景。 笔者感叹 AI …

HarmonyOS 开发-MpChart运动健康场景实践案例

介绍 MpChart是一个包含各种类型图表的图表库&#xff0c;主要用于业务数据汇总&#xff0c;例如销售数据走势图&#xff0c;股价走势图等场景中使用&#xff0c;方便开发者快速实现图表UI&#xff0c;MpChart主要包括线形图、柱状图、饼状图、蜡烛图、气泡图、雷达图、瀑布图…

Golang-Gin 框架写的免杀平台,内置分离、捆绑等多种BypassAV方式

Golang-Gin 框架写的免杀平台&#xff0c;内置分离、捆绑等多种BypassAV方式 Golang-Gin 框架写的免杀平台&#xff0c;内置分离、捆绑等多种BypassAV方式。 cool 时间线&#xff1a; Golang Gin 框架写的免杀平台- (2021.11.12)Golang Gin 框架写的免杀平台&#xff0c;更…

分享|人力RPO项目是什么?算得上蓝海项目吗?

在当今竞争激烈的商业环境中&#xff0c;企业为了降低成本、提高效率&#xff0c;纷纷寻求创新的人力资源解决方案。其中&#xff0c;人力RPO(Recruitment Process Outsourcing&#xff0c;招聘流程外包)项目逐渐受到广泛关注。那么&#xff0c;人力RPO项目究竟是什么呢?它是否…

40-软件部署实战(上):部署方案及负载均衡、高可用组件介绍

40-软件部署实战&#xff08;上&#xff09;&#xff1a;部署方案及负载均衡、高可用组件介绍 。 系统缺少高可用、弹性扩容等能力&#xff0c;是很脆弱的&#xff0c;遇到流量波峰、发布变更很容易出问题。在系统真正上线前&#xff0c;我们需要重新调整部署架构&#xff0c;来…

成为嵌入式工程师以后才明白的道理

1. 刚开始&#xff0c;不要太在乎薪水20多岁的年纪&#xff0c;一人吃饱&#xff0c;全家不饿&#xff0c;太看重薪水&#xff0c;反而会错过很多机会&#xff0c;而且经验不足时&#xff0c;薪水相差也不大。在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一…

大数据相关组件安装及使用

自学大数据相关组件 持续更新中。。。 一、linux安装docker 1、更新yum sudo yum update2、卸载docker旧版本 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine3、…

【文件IO】JavaIO详解

一.文件的相关概念 什么是文件? 文件是计算机中存储信息的基本单位。文件通常指的是存储在计算机或其他数字存储设备上的一段信息的集合&#xff0c;这些信息可以是文本、图片、音频、视频等不同格式的数据。 文件路径: 文件的路径可以分为两类 相对路径:先指定一个"当前…

批量把GBK文本编码换成UTF-8

因为工作团队协作原因,有的同事使用gbk,有的使用utf-8,不方便,于是商量便统一换成utf-8,但是项目文件太多,所以百度搜索于是有了用python脚本一键实现的方案,以下为步骤. 本人亲测可用!!!(只在win11上亲测可用) 以下代码只实现对.c和.h文件的编码转换 1.电脑安装python脚本: …

css文字颜色渐变

background: linear-gradient(to top, #C3F8B3, #66FFFF);-webkit-background-clip: text;-webkit-text-fill-color: transparent; 效果

户外骑行存档(图新地球与运动健康App)经验分享

0序 之前天天加班熬夜&#xff0c;身体素质有些下降&#xff0c;在锻炼的过程中喜欢上了骑行&#xff0c;周周骑、天天骑。 骑行会产生很多的轨迹&#xff08;有很多朋友不喜欢装很多app&#xff0c;就用手机自带的运动健康&#xff0c;也有喜欢专业运动app的&#xff0c;道理…

通过 Cookie、Redis共享Session 和 Spring 拦截器技术,实现对用户登录状态的持有和清理(四)

本篇内容对应 “2.5 开发登录、退出功能” 小节 “4.7 优化登陆模块” 小节 2.6 显示登录信息 2.7 账号设置 2.8 检查登录状态 登录功能的流程是什么&#xff1f; UUID为什么不会重复&#xff1f; 因为UUID是基于mac物理地址、时间戳、随机数等信息生成。因此UUID居于极高的唯…

在B站看课的进度助手

效果 代码 BilibiliVideoDurationCrawler import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import java.io.IOException; import java.text.ParseException; import java.util.ArrayList; imp…

【教程】混淆Dart 代码

什么是代码混淆&#xff1f; 代码混淆是一种将应用程序二进制文件转换为功能上等价&#xff0c;但人类难于阅读和理解的行为。在编译 Dart 代码时&#xff0c;混淆会隐藏函数和类的名称&#xff0c;并用其他符号替代每个符号&#xff0c;从而使攻击者难以进行逆向工程。 Flut…

每日一题:有效的数独

请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 &#xff0c;验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&#xff08;请参考示例图&#xff09; 注…