JMeter提取响应数据中指定的id=xxx中的propList字段中的id值,并设为变量

Netron显示自定义属性,按属性设置不同节点的颜色 本文介绍了一种让Netron显示自定义颜色的方法,可根据某些属性,调整节点的颜色 需求背景: 在分析AI模型精度误差时,用不同等级的红色,表示误差的大小.可以直观地看到误差的传递关系 阅读详情

最近在做自动化测试中遇到了提取字段问题,可能我是第一次遇到,经过各大搜索也没搜索到想要的结果,最终还是同ChatGPT来实现了我问题,以下解决过程。


问:假设提取的响应数据结构如下,提取指定的id=25153中的propList字段中的id值,并设为变量,请在jmeter中实现


{
    "resultCode": "0",
    "resultMsg": "success",
    "data": [
        {
            "id": 25152,
            "categoryId": 48529,
            "name": "标关键",
            "source": 3,
            "propList": [
                {
                    "id": 81529,
                    "propId": 25152,
                    "name": "关键值1",
                    "type": 3,
                    "updateTime": 1683773006584
                },
                {
                    "id": 81530,
                    "propId": 25152,
                    "name": "关键值2",
                    "type": 3,
                    "updateTime": 1683773006593
                }
            ],

            "isSelect": 1,
            "type": 3,

            "projectId": null
        },
        {
            "id": 25153,
            "categoryId": 48529,
            "name": "标否定",

            "source": 3,
            "propList": [
                {
                    "id": 81531,
                    "propId": 25153,
                    "name": "固定1",
                    "type": 3
                },
                {
                    "id": 81532,
                    "propId": 25153,
                    "name": "固定2",
                    "type": 3

                }
            ],
            "type": 3,
            "projectId": null
        }
    ]
}

ChatGPT回答:

方式一:

要在 JMeter 中提取指定 ID 值中的 propList 字段中的 id 值,可以使用 JSON 提取器。首先,您需要添加一个 HTTP 请求,并将响应数据存储在一个变量中。然后,您可以添加一个 JSON 提取器,配置如下:

- 变量名称:propId
- JSON 路径表达式:$.data[?(@.id==25153)].propList[*].id
- 默认值:未找到

这将提取 ID 为 25153 的项目的 propList 字段中的所有 ID 值,并将其存储在名为 propId 的变量中。


方式二:

好的,我可以使用 JMeter 中的 BeanShell 脚本来提取所需的值。首先,我需要添加一个正则表达式提取器来从响应中提取 JSON 数据。然后,我可以使用以下 BeanShell 脚本来提取所需的值:

```
import org.json.JSONArray;
import org.json.JSONObject;

String responseData = vars.get("responseData"); // 获取响应数据
JSONObject jsonObject = new JSONObject(responseData); // 将响应数据转换为 JSON 对象
JSONArray dataArray = jsonObject.getJSONArray("data"); // 获取 data 数组
JSONObject targetObject = null;
for (int i = 0; i < dataArray.length(); i++) {
    JSONObject dataObject = dataArray.getJSONObject(i);
    int id = dataObject.getInt("id"); // 获取 ID 值
    if (id == 25153) { // 如果 ID 值匹配
        targetObject = dataObject;
        break;
    }
}
JSONArray propListArray = targetObject.getJSONArray("propList"); // 获取 propList 数组
JSONArray idArray = new JSONArray(); // 创建一个空的 JSON 数组
for (int i = 0; i < propListArray.length(); i++) {
    JSONObject propObject = propListArray.getJSONObject(i);
    int id = propObject.getInt("id"); // 获取 ID 值
    idArray.put(id); // 将 ID 值添加到 JSON 数组中
}
vars.put("propId", idArray.toString()); // 将 JSON 数组转换为字符串,并将其存储在变量中
```

这将从响应数据中提取 JSON 数据,然后查找 ID 值为 25153 的项目,并提取其 propList 数组中的所有 ID 值。最终,它将把这些 ID 值存储在名为 propId 的变量中。

 

通过以上方式实现了我的需求,然而通过各种搜索来的结果确没有一个成功的,也可能是我搜索的有问题,欢迎大家留言讨论! 


PS:直接提问没有给出数据结构参照只会回答使用正则表达式,而且通过各种搜索也是回答用的正则表达式,实际使用测试结果失败,所以会点代码或者熟悉JSON提取规则更好!

使用正则表达式提取器,步骤如下:

  1. 添加HTTP请求和正则表达式提取器到测试计划中。
  2. 在HTTP请求中设置响应数据的变量名为response。
  3. 在正则表达式提取器中设置如下属性:
  • 变量名:propId
  • 正则表达式:"propList":[{"id":(\d+)
  • 模板:$1$
  • 匹配号:-1
  1. 在接下来的测试中可以使用${propId}来引用该变量。

—The End—
后续有好方法还会继续更新,欢迎大家一起交流互助。
如果对你有帮助请关注哦!
 

界面上下固定_基于ANSYS的胶粘结构界面开裂有限元计算 引言:目前工程上主要有螺栓,过盈,焊接和胶粘四种常用的连接方式,本文基于ANSYS Workbench环境,引入内聚力模型来实现对胶粘结构界面开裂失效的计算,文中的界面失效参数为随意给定,不是工程实际测试数据,仅起到演示作用!1.问题的描述如图所示给出了胶粘结构的三维模型,该胶粘结构由上下钢板组成,中间通过胶粘接到一起。(胶不需要建模,其影响主要通过内聚力模型实现)上下板的材料为结构钢,... 阅读详情

相关推荐

青龙人形机器人硬件平台设计全解析:从构型到控制系统的实战指南

本文深度解析了青龙人形机器人硬件平台的设计全流程,从需求分析、构型设计到核心系统实现。文章详细阐述了其43个自由度的仿生构型、高动态性下肢设计、灵巧作业系统以及分布式控制架构,并探讨了旋转关节与直线关节等关键技术选型,为开发者提供了从理论到实践的完整硬件设计指南。

weixin_29248313的博客 382

jmeter常用的两种提取响应数据的方式

jmeter提取响应数据的两种方式

qq_45058939的博客 6752

通达信短周期指标盘中实时监控与预警选股实战

本文详细介绍了通达信短周期指标在盘中实时监控与预警选股中的实战应用。通过分时指标改造、多股同列监控技巧及预警策略优化,帮助短线交易者捕捉转瞬即逝的交易机会,提升选股效率与准确性。重点解析了如何避免假信号干扰及系统卡顿问题,并探讨了从预警到自动交易的进阶应用。

weixin_29230805的博客 904

jmeter-10-提取多个id拼接请求数据及日期时间偏移,你会了吗?

前言 平时在使用 Jmeter 过程中,可能会遇到各种需求的参数需要处理,比如提取id拼接数组,又如时间日期处理等等 那么接下来将记录平时个人使用时遇到过挺多的场景!go go go! 一、拼接请求数据 1、勾选:Compute concatenation var (suffix_ALL) 会得到 team_ids=id1,id2,id3,idx,这种一般适用于url query入参 2、B......

有话好好说vx:GoGsxl 1107

YOLOv5改进——添加SimAM注意力机制

这样可以使注意力机制看到整个backbone部分的特征图,将具有全局视野,类似于一个小的transformer结构。注意:很多改进教程都是将代码直接复制到common.py文件,如果改进机制多了容易造成混乱。在models文件夹下新建modules文件夹,在modules文件夹下新建一个py文件。这里为simam.py。在models文件夹下,复制yolov5s.yaml文件,粘贴并重命名为yolov5s-simam.yaml。运行yolo.py,出现刚刚加入的SimAM注意力机制,说明加入成功。

2302_80099075的博客 1653

[PCIE5.0] 4.2.3.2 Encoding of Presets

• 发射器预设:发射器预设值用4位二进制编码,表示不同的预设设置(P0 到 P10),这些设置定义了信号的传输特性。• 接收器预设提示:接收器预设提示是通过3位二进制编码告诉接收器建议的增益值,用于调整接收器的灵敏度(适用于8.0 GT/s数据速率)。

系统固件工程师 574

jmeter之正则表达式的提取与应用

一、提取单个字符 分析数据: { "pageSize":20, "totalPageNum":1, "totalItemNum":1, "currentPageNum":1, "data":[ { "domain":"testdomainadd0002.com", "bookEndTime":"2020-08-25 22:50:00", "type":"PreRelease"

1、测试博主技术知识分享 2、pos行业知识技术分享 3、java后端技术知识分享 4、嵌入式技术知识分享 5、运维部署相关知识分享 4831

SD卡烧写Linux kernel——SD卡分区,并烧写uboot,kernel,DTB及filesystem

Linux Ubuntu环境下对SD卡分区(烧写uboot,kernel,及filesystem) 介绍dd命令的使用,SD卡分区、格式化、复制文件等 fdisk命令

weixin_42408707的博客 5056

JMeter正则表达式提取器和JSON提取器基础用法,小白必会!

最近在利用JMeter做接口自动化测试,正则表达式提取器和JSON提取器用的还挺多,想着分享下,希望对大家的接口自动化测试项目有所启发。在 JMeter 中,正则表达式和 JSON 提取器都是用于从响应数据中提取所需内容,但它们的使用场景略有不同。正则表达式提取器适用于处理非结构化或不规则格式的响应数据,而 JSON 提取器适用于处理结构化的 JSON 响应数据。正则表达式提取器:正则表达式提取器是 JMeter 的内置功能,用于从响应数据中提取特定模式的文本。它适用于那些响应数据中的内容没有明确定义结构的

2301_79535544的博客 336

Atlas 300I Duo - vllm部署Qwen3-VL-8B-Instruct

本文介绍了在Ascend NPU环境下部署Qwen3-VL-8B大语言模型的步骤。主要包括:1)安装驱动、docker和vllm镜像;2)创建特权容器并挂载设备与目录;3)进入容器安装指定版本的transformers;4)设置环境变量和NPU卡配置;5)启动vllm服务;6)测试API接口。部署过程涉及多块NPU卡的使用,需注意内存碎片化问题,最终通过vllm框架提供模型推理服务。

m0_50105717的博客 1561

大数据预测分析:精准把握市场趋势

传统市场预测多依赖经验判断(比如“去年卖了1000件,今年加20%”)或小数据统计(比如用近6个月的销量做线性回归)。而大数据预测分析是:利用海量结构化+非结构化数据(销售、用户、社交媒体、天气等),通过机器学习/深度学习模型,挖掘数据中的关联关系与趋势规律,实现对未来市场走势的精准预测。更全面:覆盖内部(企业数据)+外部(行业、环境数据)的全维度数据;更精准:用算法替代人工,避免主观偏差;更实时:支持分钟级/小时级的实时预测(比如直播带货的销量预测)。错误做法。

AI智能探索者的博客 1024

【Jmeter】正则表达式提取及常见技巧

jmeter正则表达式

suancai1993的博客 5439

手把手教你完成YOLOv11分类识别界面搭建,使用Qt6设计YOLOv11分类识别系统,前台系统+后台管理系统开发实战,全网最详细教程

本项目结合YOLOv11分类识别算法和PySide6框架,开发了一套图形化分类识别系统。系统支持图片、视频和摄像头实时分类检测,并具备完善的用户管理功能,包括登录验证、个人信息修改等模块。最新版本新增了管理员后台管理系统,包含用户管理、权限控制等功能。系统采用MySQL数据库存储用户数据,界面设计采用QtDesigner完成,实现了高效的目标分类与友好的交互体验。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1051

jmeter常用的提取器(正则表达式和JSON提取器)

2023接口自动化测试框架必会两大神器:正则提取器和Jsonpath提取器_哔哩哔哩_bilibili。2023接口自动化测试框架必会两大神器:正则提取器和Jsonpath提取器_哔哩哔哩_bilibili。2023接口自动化测试框架必会两大神器:正则提取器和Jsonpath提取器_哔哩哔哩_bilibili。获取后可以将变量token引用到其他所需要的地方。第一步: 拷贝目标数据金额左右边界。第二步: 把目标数据用括号括起来。第三步: 把目标数据用.+?2、正则表达式提取器。

MXB_1220的博客 1177

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JMeter之Json提取器详解

Json提取器属于JMeter的后置处理器, 所谓后置提取器就是请求结束后, 对响应结果进行变量提取,提取变量是为了验证变量是否符合预期或者将变量值作为全局变量, 以供...

weixin_40881502的博客 5118

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

jmeter响应含json列表,如何获取指定参数值的id

jmeter响应列表,如何获取指定参数值的id

qq_43679026的博客 971

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

jmeter获取list中的所有id,并赋值单个id

1.获取(边界提取器) 获取一个json格式的字符串 2.字符串处理 分割---------获取id字符串的下标,进而得到id号起始下标------截取(参数是要被截取的起始下标) 3.遍历存入到一个集合里面,将集合参数化,以便于在需要的取样器中得到集合 4.在需要用的地方取到集合,转换为数组(集合的toValue方法)例如在删除的时候,前置处理器获得 5.在前置处理器中取到数组中的随机一个值存到变量,作为参数传递就可做到指定id删除。 下标也存到一...

love_yr的博客 3033

Jmeter-把响应信息设置为全局变量

接口返回token值,其他线程组需要用到这个token,这时就需要把token设置成全局变量。1、添加正则表达式提取器,将返回的access_token提取出来,命名为token2、添加BeanShell后置处理器,将正则表达式提取器提取出来的值变成全局变量${__setProperty(token_id,${token},)}; 3、在其他线程组引用,${__P(token_id)}需要注意的是,这个情况的线程组应该是顺序执行的,需要勾选一下测试计划里的Run Thread Groups consecut

weixin_48626846的博客 1926

jmeter提取响应数据的3种方法

返回报文如图所示,提取报文中的access_token 1.Json提取器 添加一个JSON Path Assertion:右键添加→断言→JSON Path Assertion 产生的变量名称:后续引用该响应报文中的参数值的参数名;JSON数组路径描述:$.access_token表示在JSON数组中的的key=access_token的变量;目标值key为需要提取的数据名称;其他匹配值需要输入响应报文中其他的数据;变量默认值为当变量没有获取到时返回的值。 注意: {"stat.

qq_36643889的博客 1万+

jmeter 获取响应结果_Jmeter之正则表达式提取器提取响应结果

1、必备的正则表达式:书写方式为:元字符+限定符元字符意义限定符意义.任意单个字符+匹配至少大于1次\d任意单个数字?匹配0次或1次[0-9]等价0-9*匹配0次或多次,贪婪匹配[a-zA-Z]等价所有的大小写字母{n,} {n,m} {n}匹配限定次数2、如何使用正则表达式提取器?如果想在某个请求的响应结果中拿到某个值3、操作:在HTTP请求上右击->添加->后置处理器->正则...

weixin_39765339的博客 2352

Jmeter 关联之 json 提取器应用

在接口测试中有一个这样的场景:登录之后,需要进行昵称修改,怎么实现? 首先我们分别看下登录、昵称修改的接口说明:

测试萌萌 894

jmeter使用大全

1.正则表达式提取器: 我们要取得actionId的值 1、正则表达式中复制,"actionId":"save_G_1_zdhflow.1","buttonName" 2、把save_G_1_zdhflow.1替换成(.*?)就可以了

weixin_44370171的博客 375

测试学习-126-jmeter的正则表达式提取器和转存学习

前言: 测试中我们会经常遇到要提取响应体返回值的问题,比如提取登陆时返回的token,提取新建任务时产生的唯一标志id,提取新建用户是生成的唯一id,等等之类的问题。这些返回值都在响应体中,大多以json的形式存在。 今天我们就学习使用jmeter的正则表达式提取器来想要的值 1、认识正则表达式提取器 2、提取语法讲解 如上图的正则表达式:"token":"(.+)"}, 其中"token"代表响应体中要提取的变量名,"(.+)" 表示要提取的值,},表示结束符 实例: { "c

流花飞羽的专栏 1万+

chartGPT提问jmeter 使用方法

{"status":200,"message":"成功","data":{"id":"07b140ac-6154-4fcb-93f2-804b3be9fb3d"}}在正则表达式提取器中设置正则表达式、模板和匹配号,并为提取的值指定一个变量名称(例如id)。通过这种方式,可以将上一个接口中的数据传递给下一个接口,实现接口之间的数据交互。可以使用正则表达式提取id值,然后保存到一个变量中,在下一个接口中使用该变量。在下一个接口的请求中,使用${id}引用上一个接口中提取的id值。

bobo的博客 829

【Json字符串转化】将数组包对象的字符串转List输出,输出到某个字段为数组包对象(61)

1.将数组包对象的字符串转List输出,输出到某个字段为数组包对象

qq_42139049的博客 1012

【Jmeter】Jmeter中如何获取响应数据

jmeter获取响应数据的方法

小橘子1112 4117
上一篇: SVN 修改URL路径-使用重新定位(relocate)命令和找不到问题解决
下一篇: 解决VScode下载太慢的问题记录
Vincent_Han
博客等级 码龄10年 2万+粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值