Jmeter使用BeanShell PreProcessor提取数据并添加参数

时间:2014-11-24 12:42:58

标签: jmeter beanshell

有以下要求:

enter image description here

从这里我使用正则表达式提取器提取以下字符串:

%5B1172%2C63%2C61%2C66%2C69%2C68%5D

我使用urldecode函数对此进行解码:$ {__ urldecode($ {Groups_g2})}

解码:[1172,63,61,66,69,68]

在以下请求中,我想使用BeanShell PreProcessor提取值以获取如下所示的参数列表:

enter image description here

我知道我必须使用sampler.addArgument,但我无法计算如何从列表中提取数据并将值作为参数添加。

1 个答案:

答案 0 :(得分:3)

尝试以下方法:

  1. ${__urldecode(${Groups_g2})}放入Beanshell PreProcessor' Parameters输入字段
  2. Script区域

    中输入以下代码
    String params = Parameters.substring(1, Parameters.length() - 1); // remove square brackets
    int counter = 1;
    for (String param : params.split(",")) { 
      sampler.addArgument("parameter" + counter, param);
      counter++;
    }
    
  3. 我不知道参数名称需要看起来像什么,希望以上信息会有所帮助。

    没有参数的HTTP请求:

    Empty HTTP Request

    Beanshell PreProcessor

    Beanshell PreProcessor

    View Results Tree Listener

    中的参数

    Parameters in View Results Tree Listener

    有关Apache JMeter中Beanshell脚本编写的更多信息,请查看H ow to use BeanShell: JMeter's favorite built-in component指南。