Javascript 从HTTP采样器对Beanshell后处理器的响应中获取变量值

Javascript 从HTTP采样器对Beanshell后处理器的响应中获取变量值,javascript,jmeter,Javascript,Jmeter,在HTTP采样器中,我有一个javascript变量 int a=1; 我想在BeanShell后处理器中获取此“a”的值,如何在JMeter中获取它?添加正则表达式提取器作为后处理器的最简单方法 Regular Expression: int a=(\w+); Template: $1$ Match No.: 1 对于Beanshell或更好的JSR 223后处理器,您必须努力获得正则表达式: import java.util.regex.Matcher; import java.util

在HTTP采样器中,我有一个javascript变量

int a=1;

我想在BeanShell后处理器中获取此“a”的值,如何在JMeter中获取它?

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

Regular Expression: int a=(\w+);
Template: $1$
Match No.: 1
对于Beanshell或更好的JSR 223后处理器,您必须努力获得正则表达式:

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));
}
在这个脚本中,我将向变量a添加值,稍后可以称为${a}

请注意,因此我建议改为使用。相关的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) 
}
演示:

参考资料: