在用 JMeter 做測試時,經常需要調用外部 CSV 文件的數據到腳本中使用,如果我們想對 CSV 文件中數據的行數進行統計,這個怎么做呢?
針對上面表格的數據,我們一起來學習一下如何統計數據行數吧。
首先創建一個線程組,在線程組下添加一個僅一次控制器
,為什么添加這個控制器呢?一般我們只需要對表格數據行數進行統計一次就行。
接著在控制器下添加一個前置處理器 BeanShell PreProcessor
,然后在里面編寫統計數據行數的 Script 腳本。
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;
即可。
再次運行一次腳本。
非標題數據的行數已經統計到了。
以上就是 JMeter 讀取 CSV 文件數據行數的方法,希望對大家有幫助。