Jmeter beanshell脚本中csv文件的下一行

Jmeter beanshell脚本中csv文件的下一行,jmeter,beanshell,Jmeter,Beanshell,我试图在JMeter中创建一个BeanShell脚本,以创建一条XML消息并将其保存为变量(然后让SOAP采样器发送消息,当然,这并不是重点)。在脚本中,我有一个随机创建几行的循环,关键是脚本的每个循环都从CSV文件中读取一行新行。循环工作正常,但由于某种原因,CSVread next似乎不起作用,因此每次它都使用CSV文件中的同一行 以下是我正在使用的代码: try{ //Use a random variable to loop for a random amount of times

我试图在JMeter中创建一个BeanShell脚本,以创建一条XML消息并将其保存为变量(然后让SOAP采样器发送消息,当然,这并不是重点)。在脚本中,我有一个随机创建几行的循环,关键是脚本的每个循环都从CSV文件中读取一行新行。循环工作正常,但由于某种原因,
CSVread next
似乎不起作用,因此每次它都使用CSV文件中的同一行

以下是我正在使用的代码:

try{

  //Use a random variable to loop for a random amount of times
  randomnr = vars.get("randomvariable");
  int randomint = Integer.parseInt(randomnr);
  int FiNr = 123456789;

  //I'm using a stringbuilder to create the xml message
  StringBuilder multi =  new StringBuilder();

  for (int i=1; i<randomint; i++){
    multi.append("SomeXML");
    FiNr = ${__CSVRead(data.csv,0)}; //get a line from the csv
    multi.append(""+FiNr);
    multi.append("SomeMoreXML");
    ${__CSVRead(data.csv,next)}; //Go to the next line in the csv - doesn't seem to be working
  }

  vars.put("xmlmessage",multi.toString()); //put all of it in a variable

}
catch(Exception ex){
  log.warn("Something bad happened", ex);
  throw ex;
}
试试看{
//使用随机变量循环随机次数
randomnr=vars.get(“randomvariable”);
int randomint=Integer.parseInt(randomnr);
int FiNr=123456789;
//我正在使用stringbuilder创建xml消息
StringBuilder multi=新的StringBuilder();

对于(int i=1;i不幸的是,
\u csvread()
函数将无法与Beanshell采样器内的循环一起工作。请尝试实现
jmeter
循环控制器并添加
\u csvread()
函数在该函数下。

我不熟悉这个函数,所以我不想把它作为一个答案,但我假设您想要
int FiNr=${{{u CSVRead(data.csv,0)};
在for循环之外,
${u CSVRead(data.csv,next)};
应该是
FiNr=${{{u CSVRead(data.csv,next)}
@RowlandB感谢您指出这一点,这是一个新手编程错误。不幸的是,它没有解决csv文件的问题。我更新了代码。此外,
FiNr=${{u CSVRead(data.csv,next)};
不起作用,因为您需要为函数指定列以返回值。可能重复