JMeter中按条件动态捕获指定响应值的方法求助
实现步骤
1. 从Response 1捕获目标Order GUID(26177172834105120)
给返回Response 1的HTTP请求添加JSON Extractor后置处理器,配置如下:
- Reference Name: 自定义变量名,比如
target_order_guid - JSON Path Expression: 根据Response 1的实际JSON结构调整,示例路径(匹配OrderNumber值为
J40000099VAN0001的对象,提取对应order guid):$..[?(@.OrderNumber.value == 'J40000099VAN0001')].NativeMobile.OrderItem_Order - Match No.: 填
1(取第一个匹配结果) - Default Value: 可填
NOT_FOUND作为捕获失败的标识
配置完成后,后续请求可通过${target_order_guid}引用该值。
2. 从Response 2捕获目标GUID(3659174697251947)
给返回Response 2的HTTP请求添加JSON Extractor后置处理器,配置如下:
- Reference Name: 自定义变量名,比如
target_guid - JSON Path Expression: 结合已捕获的
target_order_guid,添加双重条件过滤:$..[?(@.NativeMobile.OrderItem_Order == ${target_order_guid} && @.NativeMobile.OrderItem_CustomerProduct == 28710447624499413)].guid - Match No.: 填
1 - Default Value: 可填
NOT_FOUND
兼容非JSON响应的备选方案
如果响应不是标准JSON格式,改用Regular Expression Extractor:
- 需求1正则示例(匹配OrderNumber与对应order guid的关联关系):
正则表达式:"OrderNumber":{"value":"J40000099VAN0001"}.*?"NativeMobile.OrderItem_Order":(\d+)
模板:$1$ - 需求2正则示例(结合两个条件匹配目标guid):
正则表达式:"NativeMobile.OrderItem_Order":${target_order_guid}.*?"NativeMobile.OrderItem_CustomerProduct":28710447624499413.*?"guid":(\d+)
模板:$1$
配置后可通过Debug Sampler和View Results Tree验证变量捕获结果。
内容的提问来源于stack exchange,提问作者user41456
相关产品推荐
相关产品推荐

