Loading

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}

posted @ 2024-09-23 18:06  夷某蓁  阅读(257)  评论(1)    收藏  举报