在HTTP Sampler中,响应我有一个javascript变量
int a=1;
我希望得到这个' a'的价值。在BeanShell后处理器中,如何在JMeter中获取它?
答案 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)
}
演示:
参考文献:
答案 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));
}