Jmeter-访问Beanshell中的正则表达式数组变量

Jmeter-访问Beanshell中的正则表达式数组变量,jmeter,beanshell,Jmeter,Beanshell,我在提取正则表达式设置的变量时遇到问题 豆荚中的提取器 我有一个HTTP请求采样器,它以随机形式(4,2,1,3…50,45)返回50个数字的列表,我通过正则表达式提取了这些数字 现在我想得到一个变量中的每一个数字,所以我再次使用带有表达式(.+?)(,)的正则表达式来表示上面步骤1中的JMeter变量 当我使用BeanShell访问这些值时,我在这一步遇到了问题 我不太确定我用了下面的: long var1 = Integer.parseInt(vars.get("Number_i")); p

我在提取正则表达式设置的变量时遇到问题 豆荚中的提取器

  • 我有一个HTTP请求采样器,它以随机形式(4,2,1,3…50,45)返回50个数字的列表,我通过正则表达式提取了这些数字
  • 现在我想得到一个变量中的每一个数字,所以我再次使用带有表达式(.+?)(,)的正则表达式来表示上面步骤1中的JMeter变量
  • 当我使用BeanShell访问这些值时,我在这一步遇到了问题
  • 我不太确定我用了下面的:

    long var1 = Integer.parseInt(vars.get("Number_i"));
    print("Value of var1: " +var1);
    
    实际上,我想这样做:

    for (i=0; i<50; i++) {
      if (var1==1) {
        do this
      }
    }
    

    for(i=0;i如果您使用正则表达式提取器提取变量,并且有>1个匹配项,那么您已经有了多个变量,您可以使用和侦听器组合来检查它们

    因此,您可以访问JMeter中的变量,如:

    ${number_1}
    ${number_2}
    
    在Beanshell测试元素中,使用代表类实例的
    vars
    速记,如:

    vars.get("number_1");
    vars.get("number_2");
    
    当当前变量值为“1”时,将迭代所有匹配项并“执行某些操作”的示例代码

    int matches=Integer.parseInt(vars.get(“number_matchNr”);
    对于(int i=1;i
    
    int matches = Integer.parseInt(vars.get("number_matchNr"));
    
    for (int i=1; i<=matches; i++) {
    
        if (vars.get("number_" + i).equals("1")) {
            log.info("Variable: number_" + i + " is 1");
            // do something
        }
    }