从HTTP Sampler到Beanshell PostProcessor的响应中获取变量值

时间:2017-11-14 02:09:29

标签: javascript jmeter

在HTTP Sampler中,响应我有一个javascript变量

int a=1;

我希望得到这个' a'的价值。在BeanShell后处理器中,如何在JMeter中获取它?

2 个答案:

答案 0 :(得分:1)

请注意since JMeter 3.1 it is recommended to use Groovy for any form of scripting in JMeter所以我建议改为JSR223 PostProcessor。相关的Groovy代码类似于:

def text = prev.getResponseDataAsString()
log.info('Response text is' + text)
def match = text =~ /int a=(\d+)/
if (match.find()) {
    def value = match.group(1)
    log.info('------------------')
    log.info('a value=' + value) 
    vars.put('a', value) 
}

演示:

Groovy Extract Data From Response

参考文献:

答案 1 :(得分:0)

将正则表达式提取器添加为后处理器的最简单方法

sudo ./cloud_sql_proxy -instances=the_full_name_of_the_instance -credential_file=./your_key.json &

对于Beanshell(或更好的JSR 223)后期处理器,你必须工作"得到正则表达式:

Regular Expression: int a=(\w+);
Template: $1$
Match No.: 1

在此脚本中,我将值添加到变量a,稍后可以将其称为import java.util.regex.Matcher; import java.util.regex.Pattern; String stringToSearch=prev.getResponseDataAsString(); Pattern p = Pattern.compile("int a=(\\w+)"); Matcher m = p.matcher(stringToSearch); if (m.find()){ vars.put("a", m.group(1)); }