我有一个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参数。 那可能吗?
轻松: 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