从正则表达式中提取后,for循环不显示所有值

时间:2016-05-12 08:52:56

标签: for-loop jmeter beanshell

这些是我正在努力的步骤:

  1. 我有一个HTTP请求采样器,它以随机形式返回35个数字的列表(4,2,1,3 ...... 35,34),这些数字是我通过regEx提取的。
  2. 现在我想获取变量中的每个数字,所以我再次使用regEx,表达式(.+?)(,)和“匹配号”。 (0为Random)值为-1,来自上面步骤#1的'JMeter变量'。
  3. 当我在Beanshell Postprocessor中使用for循环从第2步中提取值时,我只能看到34个值?
  4. Web应用程序显示所有35个值,实际上步骤#1也显示该列表中的所有35个值?

        int i;
        for (i=1;i<=35;i++) {
    
            int matches = Integer.parseInt(vars.get("Number_" +i));
            log.info("Value of matches: " +matches);
    
        }
    

1 个答案:

答案 0 :(得分:0)

最后一个号码后面没有逗号,因此它与正则表达式(.+?)(,)不匹配

由于您期待数字(并且只想匹配数字),我建议您将正则表达式提取器更改为:

Regular Expression: ([0-9]+)

表示您正在提取一个或多个数字。那样你就会得到(如你的例子)

Number_1=4
Number_2=2
Number_3=1
...
Number_35=34
Number_matchNr=35