JMeter-HTTP请求未看到在BS预处理器中定义的变量

JMeter-HTTP请求未看到在BS预处理器中定义的变量,jmeter,beanshell,Jmeter,Beanshell,已使用Beanshell预处理器使用以下代码定义了HTTPRequest: log.info(vars.get("view_state")); props.put("view_state", vars.get("view_state")); 以下是HTTP请求的配置,即: 但是,最终请求不识别此参数,并显示: ...&javax.faces.ViewState=%24%28view_state%29... 问题是为什么它不能被识别为变量?您正在将值放入JMeter属性,并试图从J

已使用Beanshell预处理器使用以下代码定义了HTTPRequest:

log.info(vars.get("view_state"));
props.put("view_state", vars.get("view_state"));
以下是HTTP请求的配置,即:

但是,最终请求不识别此参数,并显示:

...&javax.faces.ViewState=%24%28view_state%29...

问题是为什么它不能被识别为变量?

您正在将值放入JMeter属性,并试图从JMeter变量中读取它们。属性和变量是不同的,需要以不同的方式访问

解决方案包括:

  • props.put
    语句更改为
    vars.put
    (其他语法保持不变)。
    vars
    是类的缩写,使用它可以操作JMeter变量而不是属性
  • 保持Beanshell脚本不变,并使用类似的
    ${{P(视图状态)}
  • 更多信息: