Load Runner关联新动态值遇-26377错误,请求专业指导
解决LoadRunner关联错误-26377的方案
问题原因
你遇到的-26377错误,核心是关联规则的边界(LB/RB)设置错误,导致脚本在响应中找不到匹配的目标值:
- 原代码里的
LB=*|写法无效,LoadRunner默认不会把*当成通配符,而是直接将*|作为普通字符串匹配,但你的响应里不存在该序列; - 未开启正则表达式支持,无法用模糊匹配定位动态值。
修复步骤
1. 明确目标值的边界特征
从你的请求体格式来看,要提取的0-jhterv0是被|分隔的字段,位于{c_DynVal}*之后、java.util.HashMap/之前。响应中对应的格式应为:
...|{c_DynVal}*|0-jhterv0|java.util.HashMap/...
2. 修改关联代码
启用正则表达式,设置正确的边界规则:
web_reg_save_param( "ParamName=c_SearchNode", "LB=.*\\|", // 用正则匹配任意字符直到最后一个|(|是正则特殊字符,需转义为\\|) "RB=\\|", // 匹配目标值右侧的| "RegExp=Yes", // 必须开启此参数才能启用正则匹配 "Scope=Body", LAST);
如果担心误匹配其他|分隔的字段,可以用更精准的固定内容做边界:
web_reg_save_param( "ParamName=c_SearchNode", "LB=cl.imp.search.comands.Command/[0-9]*\\|.*\\|", // 匹配command字段后的两个分隔|,精准定位到目标值前的位置 "RB=\\|java.util.HashMap/", // 匹配目标值右侧的固定字符串 "RegExp=Yes", "Scope=Body", LAST);
3. 验证关联效果
- 运行脚本前,开启Extended Log中的
Parameter Substitution和Data returned by server选项; - 执行脚本后查看日志,确认
c_SearchNode是否成功提取到目标值; - 检查请求体中的
0-jhterv0是否被正确替换为参数值。
关键提醒
web_reg_save_param必须放在会返回目标响应的请求之前,LoadRunner的关联函数是前置捕获响应数据的,位置错误会导致无法抓取内容;- 如果响应中的固定字符有变化,需根据实际返回内容调整LB/RB的匹配规则。
内容的提问来源于stack exchange,提问作者Sheena Tyagi
相关产品推荐
相关产品推荐

