2016-05-10 25 views
1

我在用Beanshell中的正则表达式提取变量时遇到问题 。Jmeter - 在Beanshell中访问正则表达式数组变量

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

回答

3

给你提取使用正则表达式提取的变量,你必须> 1轮的比赛,你已经有多个变量,则可以使用Debug SamplerView Results Tree听众组合

Debug Sampler

所以,你可以访问变量检查他们在JMeter中如:

${number_1} 
${number_2} 

and in Beanshell test elements using vars shortha ND其代表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 
    } 
} 

Beanshell compare variables

JMeter API - 所有JMeter类上的JavaDoc和How to Use BeanShell: JMeter's Favorite Built-in Component有关如何在JMeter中使用Beanshell入门的更多信息

+0

这就像光滑的工作!谢谢德米特里。 –