如果beanshell后处理器中的条件不起作用Jmeter

时间:2018-06-26 14:40:59

标签: multithreading jmeter jmx

我试图基于一个if条件在beanshell后处理器中设置一个标志。如果条件成立,这里总是这样。请帮助解决此问题。我不知道是什么问题。

${__setProperty(access_tok,${access_tok},No)};
${__setProperty(token_typ,${token_typ},No)};

${__setProperty(flag,"false",No)};

if (${__property(token_typ)}.equals("bearer"))
{
${__setProperty(flag,"true",No)};
}

access_tok和token_typ是正则表达式变量。标志是用户定义的,我正尝试在其他线程组的

中使用它

1 个答案:

答案 0 :(得分:0)

  1. 不要将Beanshell用于JSR223 PostProcessorGroovy语言
  2. 不要将JMeter Functions and/or Variables内联到脚本中。根据{{​​3}}文档

      

    使用此功能时,请确保您的脚本代码不直接在脚本代码中使用JMeter变量,因为缓存将仅缓存第一次替换。而是使用脚本参数。

修改后的代码应如下所示:

props.put('access_tok', vars.get('access_tok'))
props.put('token_typ', vars.get('token_typ'))

props.put('flag', 'false')

if (props.get('token_typ').equals('bearer')) {
    props.put('flag', 'true')
}