Jmeter-重新读取CSV文件

Jmeter-重新读取CSV文件,csv,jmeter,performance-testing,Csv,Jmeter,Performance Testing,在我的项目中,我需要在从开始到EOF的每个循环迭代中读取CSV文件。当第二个循环找不到文件的开头时,就会出现问题。它总是将EOF设置为file变量 情景: 在jmeter中,我分配了1个线程和10个循环计数 我的要求是,我想在每次循环迭代中读取CSV文件的所有行 例如: 在csv文件中,我声明如下: 1360 1363 1468 在执行期间,第一次循环计数应该总是读取1360到1468之间的数据,然后第二次迭代应该再次读取整个数据。我有点好奇,您是将整个内容读入一个变量还是读入不同的变量?我想看

在我的项目中,我需要在从开始到EOF的每个循环迭代中读取CSV文件。当第二个循环找不到文件的开头时,就会出现问题。它总是将EOF设置为file变量

情景:

在jmeter中,我分配了1个线程和10个循环计数

我的要求是,我想在每次循环迭代中读取CSV文件的所有行

例如: 在csv文件中,我声明如下:

1360

1363

1468


在执行期间,第一次循环计数应该总是读取1360到1468之间的数据,然后第二次迭代应该再次读取整个数据。

我有点好奇,您是将整个内容读入一个变量还是读入不同的变量?我想看到你的脚本,以更好地回答

在这种情况下,若您使用的是CSV数据集配置,那个么您需要确保“在EOF上回收”设置为True

当第二个循环找不到文件的开头时,就会出现问题。 它总是将EOF设置为file变量。 ---我不明白当循环计数为10且csv中的值大于1时,它如何总是得到EOF

我的建议是在线程组(1个用户1个迭代)中使用beanshell采样器,并将所有值传递给prop变量

可能的代码是:

//ExtrenalCSVTd=path of your csv file

LineNumberReader lineReader = new LineNumberReader(new FileReader(new File(vars.get("ExtrenalCSVTd"))));

int count=0;

while((line=lineReader.readLine())!= null)
{

String[] ExtrenalCSVTd = line.split(",");
props.put("ContentFirstColumn_"+count,ExtrenalCSVTd[0]);
props.put("COntentSecondColumn_"+count,ExtrenalCSVTd[1]);
/*
.
.
.
*/
count++;
}
使用
jp@gc-设置变量操作
并使用
Counter=${uu BeanShell(vars.getIteration();,)}
获取当前循环计数(线程数)

然后您可以使用
contentName=${\uu p(ContentFirstColumn{Counter},)}