一. CSV數據文件設置
CSV數據集配置用於從文件中讀取行,並將它們拆分為變量。它比CSVRead ()和_ StringFromFile ()函數更容易使用。
它非常適合處理大量變量,對於使用“隨機”和唯一值進行測試也很有用。
默認情況下,文件只打開一次,每個線程將使用文件中的不同行。但是,行傳遞給線程的順序取決於它們執行的順序。
線程組->add Config Element (配置原件) --CSV data set config (CSV數據文件設置)
注意下作用域,放在測試計划下面代表與線程組是同等位置,將作用於所有的線程組。
官方推薦使用這種:因為不會消耗很多系統資源,很多數據csv文件,保存在本地,即存在磁盤中。
最后會拿到內存中,供jmeter程序使用,因為計算機當中任何程序的交互都是cpu和內存進行交互,不會是cpu和磁盤進行交互,
但是數據又是存在磁盤中,所以就會有個過程,cpu和內存交互的過程中發現,如果內存中有些數據沒有,那么內存將會去從磁盤中加載數據取到放在內存中,
然后cpu繼續和內存進行交互,cpu是不會直接和磁盤進行交互的。。如果從磁盤取的話,就會占用很多系統資源,內存資源,所以這個時候csv文件設置避免消耗太多內存資源這種情況。
CSV文件參數解析
1、文件名:指保存信息的文件目錄,選擇文件的路徑(支持相對路徑(也可以,就放在jmeter/bin下面,文件路徑寫死了就是指的bin下面)文件名也支持絕對路徑(推薦使用)文件名。否則會在jmeter日志文件(jmeter.log目錄位置D:\Program Files\apache-jmeter-2.13\bin)中提示:系統找不到指定文件,運行腳本后,登錄失敗。
對於分布式測試,CSV文件必須存儲在分布式服務器主機系統上與JMeter服務器啟動的正確相對目錄中。
分布式測試,csv文件默認放在Linux-jmeter的bin目錄下。
2、文件編碼:保持默認,可不選。默認為ANSI ( ASCII碼的拓展)
3、變量名稱:后續我們引用csv文件的時候,所使用的名稱。給CSV文件中各列起個名字(有多列時,用英文逗號隔開列名)
如下截圖:3列起3個變量名字
4、忽略首行:如果csv文件中設置了參數化數據的名稱,而不是要使用的數據,則可以選擇忽略首行。
第一行數據有用,就不忽略
第一行數據沒用,就忽略
是否忽略首行:false(否,不忽略) true(是,忽略)
5、分隔符:默認因為逗號, 即列與列之間的分隔符 ;
是csv文件中各列與各列之間的分隔符,比如逗號,
與 .csv文件的分隔符保持一致。如文件中使用的是逗號分隔,則填寫逗號;如使用的是TAB,則填寫\t;
6、是否允許帶引號:默認false;如果有引號 是否會帶引號 默認false
單引號不會忽略,只會忽略雙引號,比如“name” name
自己調試一下,即只對雙引號生效。
但是如果請求體是body-json格式,這個必須設置為true
{
"name":"${name}",
"pwd":"${pwd}"
}
7、遇到文件結束符是否再次循環:
默認true
設置為True—繼續從文件第一行開始讀取,
設置為False—不再循環,會有EOF,空值。
舉例:如果文件有10個數據,到最后一行后,下一行沒有數據了,
選擇true的話,就會從01再次開始循環;
選擇false的話,就會停止循環,但是線程數=11的話,數據只有10個,那么第11個數據取值為<EOF>。
8、遇到文件結束符/文件尾是否停止線程: 即到了文件尾是否停止線程?
默認false
false是不停止線程。
true是停止線程。
注:當Recycle on EOF【遇到文件結束符再次循環】設置為True時,此項設置【遇到文件結束符/文件尾是否停止線程】無效。 第11次不會運行
為什么無效?
因為當上面的Recycle on EOF設置為true,下面8也設置的true ,即代表7一直有值沒有結束,會繼續運行,所以值夠的情況下,
Stop thread on EOF? :是true還是false都無所謂。
前提條件:第7項是fasle
(1)
【遇到文件結束符再次循環】即第7項選擇false的話,就會停止循環,就數據10就結束了,不會再循環取數據了。
----遇到文件結束符停止線程:默認false,本次選擇true是停止。
比如線程數=20,但是數據只有10個,那么數據取完運行完10個線程數,第11個不再運行,即停止線程。
(2)
【遇到文件結束符再次循環】即第7項選擇false的話,就會停止循環,就數據10就結束了,不會再循環取數據了。
----遇到文件結束符停止線程:默認false,本次選擇false是不停止線程。
比如線程數=20,但是數據只有10個,那么數據取完運行完10個線程數,第11個仍運行,后面取值全部取的是<EOF>。
9、線程共享模式:默認[所有線程] ,還有[當前線程組] [當前線程]
參數化的取值取決於線程共享模式,默認所有線程,是個難點!!
小知識點:
如果文件是用的excel的話,那么保存文件另存為---文件類型選擇.csv類型。
不要直接修改文件名