JMeter - HTTP请求未看到BS PreProcessor中定义的变量

时间:2017-01-19 10:13:44

标签: jmeter beanshell

使用BeanShellPreProcessor定义了HTTPRequest,代码如下:

log.info(vars.get("view_state"));
props.put("view_state", vars.get("view_state"));

以下配置HTTP请求: enter image description here

enter image description here

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

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

问题是为什么它不被认为是变量?

1 个答案:

答案 0 :(得分:1)

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

解决方案在:

  1. 将您的props.put语句更改为vars.put(其他语法保持不变)。varsJMeterVariables类的简写,使用它您将操纵JMeter变量属性
  2. 保持Beanshell脚本不变,并使用__P() function ${__P(view_state)}
  3. 访问属性中的值

    更多信息:How to Use BeanShell: JMeter's Favorite Built-in Component