预处理器/后处理器能否访问User Parameters?变量更新失败求助
JMeter变量更新失败问题解决
问题根源
- 赋值逻辑错误:你在JSR223后处理器中执行
vars.put("varB", "varA");时,是将字符串"varA"赋值给varB,而非变量varA的实际取值。 - 打印逻辑错误:最后打印的是之前通过
vars.get()获取的本地变量varB,这个本地变量不会自动同步JMeter变量池中的更新,必须重新从vars中读取才能看到最新值。
修正后的JSR223后处理器代码
def varA = vars.get("varA"); def varB = vars.get("varB"); log.info("varA = $varA"); log.info("varB = $varB"); // 正确传递varA的变量值,而非字符串字面量 vars.put("varB", varA); // 重新从JMeter变量池获取更新后的varB def updatedVarB = vars.get("varB"); log.info("After change = $updatedVarB");
补充说明
- 修正后,同线程组内后续的测试元件通过
vars.get("varB")就能获取到原varA的值。 - User Defined Variables面板中的初始值仅在线程启动时加载一次,通过
vars.put()更新的是线程本地的变量实例,不会修改面板配置,这属于正常机制,不影响后续元件使用更新后的值。
内容的提问来源于stack exchange,提问作者HopefullyHelpful
相关产品推荐
相关产品推荐

