@RequestMapping("/test")
@RestController
public class PersonController {
@PostMapping("/add")
public Person save(@RequestBody Person person1){
System.out.println("姓名"+ person1.getName() + "\n" +"年龄" + person1.getAge() + "\n" +"工作" + person1.getJob());
return person1;
}
}
}
import lombok.Data;
@Data
public class Person {
public String name;
public int age;
public String job;
}
{
"name": "sicy",
"age":29,
"job":"test"
}
假设这三个字段分别可输入
| name | na1 | na2 | na3 | na4 |
| — | — | — | — | — |
| age | 1 | 2 | 3 | 4 |
| job | job1 | job2 | | |
那么一共需要遍历442的这32中情况
beanshell脚本如下:
//import java.util.Arrays;
//定义name,age和job数组
String[] name = new String []{"na1","na2","na3","na4"};
int[] age = new int []{1, 2, 3, 4};
String[] job = new String []{"job1","job2"};
//分别获取name,age和job的长度
int name_num = name.length;
int age_num = age.length;
int job_num = job.length;
//将name,age和job的长度设置变量传到线程组
vars.put("name_num",name_num.toString());
vars.put("age_num",age_num.toString());
vars.put("job_num",job_num.toString());
//将name,age和job每个值都设置为对应下标的变量:枚举赋值和循环赋值
int i = 0;
//循环方式将值传到线程组中
for(i = 0; i < name_num ; i++){
//定义带下标的变量名。这里必须是(i+1),因为数组下标从1开始,为了好辨认对应关系,这里+1保持一致
String si = "name_"+ (i+1).toString();
//打印变量名称
log.error(si);
//将name每个索引的值赋给线程组里面可用的name_对应下标的变量
vars.put(si, name[i]);
//打印对应下标变量值
log.error(vars.get(si));
}
//age循环赋值,产生age_下标的线程组内变量
int j = 0;
//循环方式将值传到线程组中
for(j = 0; j < age_num ; j++){
//定义带下标的变量名。这里必须是(j+1),因为数组下标从1开始,为了好辨认对应关系,这里+1保持一致
String si = "age_"+ (j+1).toString();
//打印变量名称
log.error(si);
vars.put(si, age[j].toString());
log.error(vars.get(si));
}
int k = 0;
//循环方式将值传到线程组中
for(k = 0; k < job_num ; k++){
//定义带下标的变量名。这里必须是(j+1),因为数组下标从1开始,为了好辨认对应关系,这里+1保持一致
String si = "job_"+ (k+1).toString();
//打印变量名称
log.error(si);
vars.put(si, job[k]);
log.error(vars.get(si));
}
枚举赋值
//vars.put("name_1",name[0]);
//vars.put("name_2",name[1]);
//vars.put("name_3",name[2]);
//vars.put("name_4",name[3]);
//vars.put("age_1",age[0]);
//vars.put("age_2",age[1]);
//vars.put("age_3",age[2]);
//vars.put("age_4",age[3]);
//vars.put("job_1",job[0]);
//vars.put("job_2",job[1]);
//先定义三个数组,把值放进去,如name
String[] name = new String []{"na1","na2","na3","na4"};
//再分别获取这三个数组的长度,使用.length
//使用vars.put将长度传入线程组,作为计数器的max值
//然后通过循环的方式,创建多个线程组变量,每个变量通过下标标记值和数组元素之间的对应关系。
//用到的方法:
.length
vars.put()
log.error()
toString()
线程组如下:
通过函数助手中的__V方法实现变量的嵌套引用
通过这种方法就可以实现多个参数之间的组合遍历了