JMeter 读取 CSV 文件数据行数

在用 JMeter 做测试时,经常需要调用外部 CSV 文件的数据到脚本中使用,如果我们想对 CSV 文件中数据的行数进行统计,这个怎么做呢?

JMeter 读取 CSV 文件数据行数_第1张图片

针对上面表格的数据,我们一起来学习一下如何统计数据行数吧。

首先创建一个线程组,在线程组下添加一个仅一次控制器,为什么添加这个控制器呢?一般我们只需要对表格数据行数进行统计一次就行。

接着在控制器下添加一个前置处理器 BeanShell PreProcessor ,然后在里面编写统计数据行数的 Script 脚本。

JMeter 读取 CSV 文件数据行数_第2张图片

Script 脚本代码贴一下:

import java.io.BufferedReader;
import java.io.FileReader;
BufferedReader br=new BufferedReader(new FileReader("..\\data\\心知天气.csv"));
String tmpStr="";
int rowCount=0;
while(tmeStr=br.readLine()!=null){
    rowCount++;
}
vars.put("rowCount",String.valueOf(rowCount));
log.info("CSV文件行数:"+rowCount);

上面圈出来的脚本中,第3行后面那个括号内是数据文件的路径,这个路径可以是绝对路径,也可以是相对路径,笔者这里写的是相对路径,大家需要根据自己的实际情况编写。最终统计到的数据行数会存到 rowCount 变量里面,在其他地方想用这个行数值时只需要调用 rowCount 变量即可。

到这里, BeanShell PreProcessor 部分的内容已经配置完成。但还缺一样东西,我们知道这个是取样器的前置处理器,可是现在没有取样器去触发这个前置处理器,所以我们要在控制器下添加一个取样器,这里添加一个调试使用的 java 请求 取样器。

为了看效果,我们在线程组下添加一个 java 请求 取样器和 察看结果树 监听器,另外在这个 java 请求 名称后面加上调用 rowCount 变量。

JMeter 读取 CSV 文件数据行数_第3张图片

接下来运行一下脚本。

JMeter 读取 CSV 文件数据行数_第4张图片

从上图可以看到 CSV 文件中的数据行数已经统计完成而且被调用到了。

这里统计的是表格里面所有数据的行数,但从最开始的表格内容可以看到第一行是标题,如果我们只想统计非标题数据的行数又应该如何写呢?

比较简单,在第8行 Script 脚本后面加一行 rowCount=rowCount-1; 即可。

JMeter 读取 CSV 文件数据行数_第5张图片

再次运行一次脚本。

JMeter 读取 CSV 文件数据行数_第6张图片

非标题数据的行数已经统计到了。

以上就是 JMeter 读取 CSV 文件数据行数的方法,希望对大家有帮助。

你可能感兴趣的:(JMeter 读取 CSV 文件数据行数)