Jmeter beanshell脚本中csv文件的下一行
我试图在JMeter中创建一个BeanShell脚本,以创建一条XML消息并将其保存为变量(然后让SOAP采样器发送消息,当然,这并不是重点)。在脚本中,我有一个随机创建几行的循环,关键是脚本的每个循环都从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
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)};
不起作用,因为您需要为函数指定列以返回值。可能重复