Meter 中使用 JSR223 处理数组并传递给 HTTP 请求
1.jmeter拼接变量2.jmeter在同一个线程组内,uuid的复用3.jmeter中beanshell-regex用法-prev.getTime()4.jmeter提取请求报文中的字段并记录到本地文件5.jmeter---prev.getSamplerData()6.使用 JMeter 中的 `prev` 对象7.使用 JMeter 中的 ``vars` 对象8.JMeterContext 对象及其用法9.Jmeter中`props` 对象10.如何使用JMeter 中beanshell sample实现 POST 请求并处理响应
11.Meter 中使用 JSR223 处理数组并传递给 HTTP 请求
Meter 中使用 JSR223 处理数组并传递给 HTTP 请求
一、问题背景
在 JMeter 测试中,需要从给定的数组中随机取出几个元素,并将处理后的数组传递给 HTTP 请求使用。
二、实现步骤
(一)JSR223 前置处理器处理数组
在 JSR223 前置处理器中,使用以下 JavaScript 代码从给定数组中随机取出指定数量的元素,并将结果存储为字符串形式的变量:
copy // 给定的数组
var givenArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// 要随机取出的数量
var numToPick = 3;
// var numToPick = ${__Random(1,10,)};
// 新建一个临时数组,复制给定数组
var tempArray = [];
for (var i = 0; i < givenArray.length; i++) {
tempArray.push(givenArray[i]);
}
// 存储随机取出的元素的数组
var pickedArray = [];
for (var j = 0; j < numToPick; j++) {
if (tempArray.length > 0) {
// 生成随机索引
var randomIndex = Math.floor(Math.random() * tempArray.length);
// 将随机索引对应的元素添加到结果数组
pickedArray.push(tempArray[randomIndex]);
// 从临时数组中删除已选元素
tempArray.splice(randomIndex, 1);
} else {
break;
}
}
// 将处理后的数组转换为字符串并存储在变量中
var arrayAsString = JSON.stringify(pickedArray);
vars.put('processedArrayAsString', arrayAsString);
(二)在 JSR233请求中使用处理后的数组
在请求的参数部分,可以通过 JMeter 变量来引用处理后的数组。可以这样设置:
copy${processedArrayAsString}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步