【问题标题】:Jmeter - Accessing Regex Array Variables In BeanshellJmeter - 在 Beanshell 中访问正则表达式数组变量
【发布时间】:2016-05-10 09:56:53
【问题描述】:

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

  1. 我有一个 HTTP 请求采样器,它返回一个包含 50 个随机形式(4、2、1、3....50、45)的数字列表,我通过 regEx 提取了这些数字。
  2. 现在我想获取变量中的每一个数字,所以我再次使用了带有表达式 (.+?)(,) 的正则表达式,从上面的第 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,所以请多多包涵。

【问题讨论】:

    标签: jmeter beanshell


    【解决方案1】:

    假设您使用正则表达式提取器提取变量并且您有 >1 个匹配项已经有多个变量,您可以使用 Debug SamplerView Results Tree 侦听器组合检查它们

    所以你可以像这样访问 JMeter 中的变量:

    ${number_1}
    ${number_2}
    

    在 Beanshell 测试元素中使用 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 中开始使用 Beanshell 的更多信息,请参阅 JMeter API - 所有 JMeter 类的 JavaDoc 和 How to Use BeanShell: JMeter's Favorite Built-in Component

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-27
      • 2016-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多