JMeter:无需Excel文件,单参数循环生成多值是否可行?
在JMeter中实现参数多值轮询(无需Excel)
以下几种方法都能实现单个参数存储多个值,每次调用依次切换为Dog、Cat、Rabbit,生成TEST-Dog、TEST-Cat、TEST-Rabbit这类自定义格式的参数:
方法1:CSV Data Set Config(内联数据,最简便)
直接在配置元件里定义要轮询的值,不用依赖外部文件:
- 给线程组添加「CSV Data Set Config」
- 关键配置:
- Variable Names:填
animal(自定义变量名,后续用这个调用) - Delimiter:设为逗号
, - Recycle on EOF?:按需选择,
False表示轮完所有值就停止,True则循环轮询 - Data:直接输入
Dog,Cat,Rabbit(这就是要轮询的所有值) - 其余选项保持默认即可
- Variable Names:填
- 使用时,在请求参数或其他地方写
TEST-${animal},就会依次生成目标格式的参数
方法2:JSR223元件(灵活扩展)
适合需要自定义逻辑的场景,用Groovy脚本实现:
- 给线程组添加「JSR223 PreProcessor」(放在需要使用参数的请求前面)
- 在脚本框输入以下代码:
// 定义要轮询的动物列表 def animals = ["Dog", "Cat", "Rabbit"] // 获取计数器,初始为0,每次调用自增 def counter = vars.get("animalCounter")?.toInteger() ?: 0 // 按索引取值,取模实现循环(如果需要循环的话) def currentAnimal = animals[counter % animals.size()] // 把当前值存入变量 vars.put("animal", currentAnimal) // 更新计数器 vars.put("animalCounter", String.valueOf(counter + 1))
- 同样用
TEST-${animal}调用参数,后续要加新值直接修改列表即可
方法3:Counter+变量拼接(纯配置无代码)
完全通过配置元件实现,适合不想写代码的情况:
- 添加「User Defined Variables」,定义三个变量:
animal_1=Doganimal_2=Catanimal_3=Rabbit
- 添加「Counter」元件:
- Start:1
- Increment:1
- Maximum:3
- Reference Name:
animalIndex - Recycle?:按需设置是否循环
- 在需要使用参数的地方,用
TEST-${__V(animal_${animalIndex},)}——__V函数用来动态拼接变量名,实现按索引依次取值
内容的提问来源于stack exchange,提问作者Harris
相关产品推荐
相关产品推荐

