Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将BSF后处理器中使用的变量用作另一个采样器中的参数_Javascript_Jmeter_Load Testing - Fatal编程技术网

Javascript 将BSF后处理器中使用的变量用作另一个采样器中的参数

Javascript 将BSF后处理器中使用的变量用作另一个采样器中的参数,javascript,jmeter,load-testing,Javascript,Jmeter,Load Testing,我在采样器中添加了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); });

我在采样器中添加了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值作为参数

例如

我想将Sampler1的BSF后处理器javascript中的变量用作Sampler2中的参数。这可能吗?

轻松:提供对Jmeter变量/属性的读/写访问:

变量-(JMeterVariables)-提供对变量的读/写访问权限: 变量获取(键);变量放置(键,值);putObject(“OBJ1”,newobject()); 变量getObject(“OBJ2”)

props-(JMeterProperties-class java.util.Properties)-例如。 道具获取(“START.HMS”);道具出售(“道具1”、“1234”)

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

vars.put(patientId,object.patientId.toString());
vars.put(fName,object.fname.toString());
vars.put(lName,object.lname.toString());
在BSF后处理器中设置变量,然后获取它们的值,如

vars.get("patientId")

但是,由于要同时提取foreach循环中的所有记录,因此不能使用这种方法

在这种情况下,您必须更好地使用以下内容:将foreach循环中提取的所有记录值写入csv文件,然后使用例如在循环中逐个读取记录,并将值与采样器一起使用2:

While Controller
    CSV Data Set Config
    Sampler 2

…还有,如果我找到另一种更好的方法,我会很高兴知道的。

你的意思是我应该使用Javascript的文件处理方法直接从BSF后处理器将记录值写入csv文件吗?我可以用这样的东西吗?函数WriteToFile(){var fso=new ActiveXObject(“Scripting.FileSystemObject”);var s=fso.CreateTextFile(“Test.csv”,true);s.WriteLine(object.patientId.toString()+”,“+object.fname.toString()+”,“+object.lname.toString());s.Close();}我尝试了上述代码将记录写入csv文件。我在Ubuntu上使用JMeter,这就是为什么我认为它给了我一个使用ActiveXObject的错误。是否有其他方法可以使用Javascript写入csv文件?我搜索了很多地方,但没有找到任何东西。另外,如果我必须在BSF后处理器中使用Java作为语言,是否有任何jar文件需要我单独复制到JMeter的文件夹中?我尝试在上面的场景中使用Java。它说:BSF脚本org.apache.BSF.BSFException中的问题:无法加载语言:javaUse,然后使用beanshell(读取:java)代码。应适用于开箱即用jmeter安装,无需任何附加库。非常感谢您推荐Beanshell后处理器。:)我能够在其中运行Java代码。将使用它本身将记录写入csv文件,并将其与csv数据集配置一起使用。
${patientId}
While Controller
    CSV Data Set Config
    Sampler 2