使用别的采样器BSF后处理器作为参数变量(Using variables used in BSF p

2019-10-16 22:50发布

我有一个BSF后处理器添加到采样。
在处理器后的脚本是:

var array = JSON.parse(prev.getResponseDataAsString());

array.forEach(function(object)
{
  OUT.println("patient_id: "+object.patientId);
  OUT.println("fname: "+object.fname);
  OUT.println("lname: "+object.lname);
});

现在我想用object.patientId,object.fname,object.lname值作为另一个请求的参数的参数。

Thread Group
- Sampler1
    BSF Post-Processor
- Sampler2

我想用在Sampler1的BSF后处理器的JavaScript变量作为Sampler2参数。 那可能吗?

Answer 1:

轻松: BSF PostProcessor中提供读来的JMeter变量/属性/写访问:

瓦尔 - (JMeterVariables) - 给出读变量/写访问:vars.get(键); vars.put(键,VAL); vars.putObject( “OBJ1”,新的对象()); vars.getObject( “OBJ2”);

道具 - (JMeterProperties - 类java.util.Properties) - 例如props.get( “START.HMS”); props.put( “PROP1”, “1234”);

在最简单的情况下,你可以使用

vars.put(patientId,object.patientId.toString());
vars.put(fName,object.fname.toString());
vars.put(lName,object.lname.toString());

在BSF后处理程序设置变量,然后得到他们重视像

vars.get("patientId")

要么

${patientId}

但是,因为你是在foreach循环一次,你不能用这种方式提取的所有记录。

在这种情况下,你必须更好地使用类似以下内容:写在foreach循环提取到的CSV文件中的所有记录的值,然后用如CSV数据集配置来读取记录,一个接一个的循环和利用价值一起您Sampler2:

While Controller
    CSV Data Set Config
    Sampler 2

......同样,如果我找到另一个更好的办法,我会很高兴知道。



文章来源: Using variables used in BSF post-processor as a parameter in another sampler