提问者:小点点

Jmeter -访问Beanshell中的Regex数组变量


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

  1. 我有一个HTTP请求采样器,它以随机形式(4、2、1、3……50、45)返回我通过regEx提取的50个数字的列表
  2. 现在我想获取变量中的每个数字,所以我在上面的步骤1中对JMeter变量再次使用regEx和表达式(.?)(,)
  3. 在使用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
  }
}

我不擅长Jmeter,所以请多包涵。


共1个答案

匿名用户

假设您使用正则表达式提取器提取变量,并且您有

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

${number_1}
${number_2}

并且在Beanshell测试元素中使用< code>vars简写,它代表JMeterVariables类实例,例如:

vars.get("number_1");
vars.get("number_2");

当当前变量值为“1”时,将迭代所有匹配项并“执行某些操作”的示例代码

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
    }
}

请参阅 JMeter API - JavaDoc 关于所有 JMeter 类和如何使用 BeanShell: JMeter 最喜欢的内置组件,了解有关如何在 JMeter 中开始使用 Beanshell 的更多信息