1. 场景。
想要模拟线上压测真实场景。部分数据打到数据库,部分数据打到redis。
打到数据库的参数,需要是随机数,不重复。
而打到redis 的数据,需要是在数据库中有存在数据,第一次读取出来后写入缓存的。这种参数需要是固定的。
2. 解决方式
使用jmeter的 前置处理器——BeanShell预处理程序
代码内容如下:
import java.util.List;
import java.util.Random;
Integer arg;
List list = new ArrayList();
list.add(856);
list.add(720);
list.add(726);
list.add(723);
list.add(728);
//List list = Lists.newArrayList(856,720,732,743);
Random random = new Random();
int i = random.nextInt(50) % 10;
if(i>4){
arg = random.nextInt(100000);
}else{
arg = list.get(i);
}
vars.put("arg", ""+arg);