jmeter中使用正则提取器实例----处理相似数据

本文介绍了在JMeter中使用正则提取器处理复杂接口返回数据的实例,特别是面对返回报文内存在多个相同字段时的解决办法。通过分析报文结构,利用正则表达式的差异性匹配,成功提取所需id。强调了深入理解返回报文和正则表达式的重要性,以应对各种挑战。
摘要由CSDN通过智能技术生成

今天需要调两个接口,第一个接口的返回值,作为第二个接口的入参。那么思路就是把返回报文用正则提取器提取出来,这点网上应该都有很多资料会说怎么使用正则提取器。

问题就出在这次遇到的接口返回报文有点复杂,我要取的一个字段是id,结果报文里面有N个id,比如:

{  id:xxxxx,name:"xxxx",data{id:123123,test:xxxxx,data{id:123123,test:xxxxx}}}

因为json同级目录下不能重复,而且这个返回报文就跟老太太的裹脚布一样又臭又长

那用网上介绍的办法肯定就会把这些id全部拿出来,我只要取最外面的id,简单对比一下就用{"id":"(.*?)","name":"  简单应付一下。结果又给我搞一堆数据出来

没办法就还是乖乖用调式取样器,结果发现里面还有

1.data里面套了id:X,"name":" 

2.id:XX,test:123,"name":" 

这种网上查了很多资料,好像都没有介绍这种怎么处理,最多解释一下(.*?)里面的是干嘛的

所以只能自己想办法了,找到各id的差异

对比长度不一样,所以第一个问题就很好解决了。第二个问题就只要用正则取英文数字就能解决,所以最终改成{"id":"([A-Za-z0-9_\-\u4e00-\u9fa5]{32})","name":"  解决问题

经过这么一波操作以后,遇到再困难的也不怕。

size:xx,name:xx     size:xx,test:xx

思路就是把正则替换成"size":([1-9]\d*),"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值