JMeter BeanShell - 循环遍历值

时间:2017-11-14 09:39:30

标签: loops jmeter beanshell

我尝试将数组中的变量用作Path HTTP RequestPath应该是这样的:mypath/${act_value}

String[] numbers = mylist.split(",");
String act_value;

for (int i = 1; i <= 25; i++) {
    vars.put(numbers[i], act_value);
}

mylist作为提取器的输出,逗号分隔的字符串:mylist=123,456,343,909

HTTP Request状态无法访问此变量,我收到错误:

  

java.net.URISyntaxException:路径中的非法字符

1 个答案:

答案 0 :(得分:1)

  1. 将您的代码修改为:

    String myList = "123,456,343,909";
    String[] numbers = myList.split(",");
    for (int i = 0; i < numbers.length; i++) {
        vars.put("number_" + i, numbers[i]);
    }
    
  2. 在此脚本之后的某处添加ForEach Controller并按如下所示进行配置:

    • 输入变量前缀:number
    • 输出变量名称:act_value
  3. 将您的HTTP Request采样器作为ForEach控制器的子项

    您的HTTP请求将针对myList

    中的每个值执行

    JMeter Iterate Variables

  4. 同时考虑切换到JSR223 Test ElementsGroovy language,在大多数情况下,有效的Beanshell代码将是有效的Groovy代码,但性能会更高。