Jmeter body传参数组中元素的个数动态随机生成方法

提示:该方法可以解决性能测试中动态数据的问题


一、解决方案

  • 设置一个随机变量
  • 依据这个随机变量的值,动态组成数组中元素的个数

二、实现步骤

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值