提示:该方法可以解决性能测试中动态数据的问题
一、解决方案
- 设置一个随机变量
- 依据这个随机变量的值,动态组成数组中元素的个数
二、实现步骤
1.下载需要的jar包
fastjson-1.2.76.jar
json.jar
以上传到云盘中,需要的同学自行下载!
2. 设置随机变量
3.在http请求下添加前置处理器
4.在该预处理程序下编写处理代码
// 老规矩先引用
import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.*;
import java.util.Random;
// 获取随机数组长度,并转换成整形
String listnum = vars.get("list_num");
int num = Integer.valueOf(listnum);
log.info("--------num: " + num);
// 声明接收数组
StringBuilder sb = new StringBuilder();
// 声明随机数
Random random = new Random();
// 依据获取的随机数拼装参数
for(int i=0; i < num; i++){
int randNum = random.nextInt(9999);
String id = "625wanghuitest@@"+ randNum;
String param = "OPPO,1,S,"+ id;
// 关键步骤,利用循环动态组装
Map map = new HashMap();
map.put("messageId", id);
map.put("appId", "1000211");
map.put("taskId", id);
map.put("registrationIds", "15820080808");
map.put("eventTime", "timestamp");
map.put("param", param);
map.put("eventType", "push_arrive");
sb.append(JSONObject.toJSONString(map));
// 注意最后一个元素要去掉,
if(i < num-1) {
sb.append(",\n");
}
}
// 把生成后的元素赋值
vars.put("paymentDtoLists",sb.toString());
log.info("-----------list: " + vars.get("paymentDtoLists"));
5.在请求中获取该动态数组内元素
总结
无图无真相,每次运行会根据随机数的值动态生成数组中元素的个数。
所需jar包下载地址:
链接:https://pan.baidu.com/s/1xQH7ElsT_m_p1yxpyPX5_A?pwd=2m9u
提取码:2m9u