JMeter JSR223前后置处理器Groovy脚本报错求助
解决JMeter JSR223脚本
upto()方法报错问题 报错原因
你遇到的MissingMethodException是因为Groovy中的upto()是Number类的实例方法,必须通过数字对象调用(比如1.upto(2) { ... }),直接写upto(1, { ... })没有对应的调用者,导致JVM找不到该方法。
更关键的是:你的测试场景完全不需要这两个JSR223处理器。CSV Data Set Config已经会自动将每行的name列值存入同名变量,HTTP请求Body中的${name}会直接引用这个变量,前置/后置处理器的逻辑属于冗余操作。
解决方案
最优方案:直接移除冗余处理器
删除JSR223前置处理器和JSR223后置处理器即可,测试功能不会受影响,同时彻底消除报错。
若需保留脚本(非必要)
如果出于某种原因必须保留脚本,修改为正确的Groovy语法:
修改后的JSR223前置处理器脚本
// 正确调用upto方法 1.upto(1) { it -> def paramKey = 'param' + it if (vars.get(paramKey) != null) { sampler.addArgument(vars.get(paramKey), 'name') } }
修改后的JSR223后置处理器脚本
1.upto(1) { it -> vars.remove("param" + it) }
或者更简洁的写法(既然仅执行1次,无需循环):
// 前置处理器 def param = vars.get('param1') if (param != null) { sampler.addArgument(param, 'name') }
// 后置处理器 vars.remove("param1")
内容的提问来源于stack exchange,提问作者Stpete111
相关产品推荐
相关产品推荐

