Meter 中使用 JSR223 处理数组并传递给 HTTP 请求
Meter 中使用 JSR223 处理数组并传递给 HTTP 请求
一、问题背景
在 JMeter 测试中,需要从给定的数组中随机取出几个元素,并将处理后的数组传递给 HTTP 请求使用。
二、实现步骤
(一)JSR223 前置处理器处理数组
在 JSR223 前置处理器中,使用以下 JavaScript 代码从给定数组中随机取出指定数量的元素,并将结果存储为字符串形式的变量:
// 给定的数组
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 变量来引用处理后的数组。可以这样设置:
${processedArrayAsString}

浙公网安备 33010602011771号