如果 bechel 后处理器内部的条件不工作 Jmeter



我正在尝试根据一个 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. 不要使用 Beanshell,用于 JSR223 PostProcessor 和 Groovy 语言
  2. 不要将 JMeter 函数和/或变量内联到脚本中。根据 JSR223 采样器文档

    使用此功能时,请确保脚本代码不直接在脚本代码中使用 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')
}

最新更新