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

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

接着在控制器下添加一个前置处理器 BeanShell PreProcessor ,然后在里面编写统计数据行数的 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 变量。

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

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

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