JMeter同线程组请求间变量传递报错问题排查
JMeter线程组内变量全局传递报错修复
问题根源
你碰到的断言错误,核心是两个语法问题:
- 函数名写错了:应该是
__setProperty,你写成了__set.Property(多了个不必要的点) - 变量引用格式错了:JMeter里变量得用
${变量名},你用了$(gameID)(括号类型不对)
两种正确实现方式
方式1:修正函数调用语法
把BeanShell断言里的代码改成下面这样:
${__setProperty(GlobalGameID,${gameID},)};
- 第三个参数留空,代表这个属性是全局可见的
- 前提是
gameID已经通过正则提取器、JSON提取器等工具,从第一个请求的响应里正确提取出来了
方式2:用BeanShell原生API(更可靠)
直接用JMeter提供的内置对象写代码,避开函数语法坑:
props.put("GlobalGameID", vars.get("gameID"));
props是JMeter的全局属性容器,调用put就能设置全局属性vars是当前线程的变量容器,vars.get("gameID")能直接拿到你提取的gameID值
验证方法
在第二个请求里用${__property(GlobalGameID,)}引用这个全局属性,或者加个调试取样器,检查GlobalGameID的值是不是56,确认设置成功。
内容的提问来源于stack exchange,提问作者Kavita
相关产品推荐
相关产品推荐

