JMeter中使用Foreach Controller处理UUID数组报错求助
解决JMeter中Groovy遍历UUID数组的报错问题
错误原因
你的报错源于Groovy语法使用错误:each方法仅支持接收单个参数(遍历的元素),但你在each闭包中声明了两个参数(元素和索引),导致方法签名不匹配,触发MissingMethodException。要遍历带索引的集合,需使用eachWithIndex方法。
修正后的Groovy代码
def UUID_List = vars.getObject("UUID_List"); log.info('Total Number of UUID: ' + UUID_List.size()) // 使用eachWithIndex遍历,参数顺序为:元素、索引 UUID_List.eachWithIndex { myListItem, index -> vars.put('json_'+ (index + 1), new groovy.json.JsonBuilder(myListItem).toPrettyString()) }
后续使用说明
- 修正后,每个UUID会被存储为
json_1、json_2……json_N格式的JMeter变量,后续请求中可通过${json_1}这类语法直接引用。 - 若后续请求需要批量传递所有UUID(如URL参数的逗号分隔字符串或JSON数组),可直接转换整个数组,避免生成大量变量:
def UUID_List = vars.getObject("UUID_List"); // 转为逗号分隔字符串,后续用${UUID_String}引用 vars.put("UUID_String", UUID_List.join(",")) // 转为JSON数组字符串,后续用${UUID_JSON_Array}引用 vars.put("UUID_JSON_Array", new groovy.json.JsonBuilder(UUID_List).toPrettyString())
内容的提问来源于stack exchange,提问作者Jyoti Prakash Mallick
相关产品推荐
相关产品推荐

