JMeter 5.1.1 CSV Data Set Config
場景一:線程組中設置:單線程執行1次
如上圖所示:變量名稱為空時JMeter默認把new 1.txt的文件首行作為變量名
再如:此時A會被作為變量名,第一次取值為B
場景二:線程組中設置:單線程執行1次
當變量名稱不為空時,忽略首行為false,JMeter會吧參數化文件(new 1.txt)文件首行作為變量值進行讀取。
再如:
當變量名稱不為空時,忽略首行為true,JMeter會把參數化文件(new1.txt)文件首行忽略,從文件第二行開始讀取變量值。
場景三: 線程組中設置:單線程執行5次
執行結果如下:
結果說明:當遇到文件結束符再循環設置為true,遇到文件結束符停止線程為false時,如果線程執行的次數超過文件行數,讀完參數化文件最后一行后再次開始從文件首行進行讀取,如過設置了忽略首行則從文件第二行開始讀取變量值。
將遇到文件結束符再循環設置為false,遇到文件結束符停止線程為false時,執行結果如下圖:
結果說明:當前線程讀取完參數化文件全部行數后,由於設置了不循環讀取參數化文件,當前線程仍是活躍的,本次JMeter會給當前變量一個<EOF>值(也可以理解成標志位,表示線程不循環讀取文件行)。
遇到文件結束符再循環設置為false,遇到文件結束符停止線程為true時,執行結果如下圖:
結果說明:將遇到文件結束符停止線程為true時,當前線程讀取完參數化文件全部行數后,JMeter不會給本次變量值,直接停止線程,即使設置的執行次數超過參數化文件行數,多余的執行次數不會被執行。
場景四:線程共享模式
這里新手可能比較難理解,希望看完能對讀者有所幫助。
- Sharing mode:All threads(所有現場) 適用:多線程組供用CSV Data Set Config
腳本結構如下(為了方便理解:Thread Group1與Thread Group2設置為均是單線程執行1次。):
執行結果如下:
結果說明:Thread Group1 讀取的變量值為A; Thread Group2 讀取的變量值為B ,Thread Group2在Thread Group1基礎上又繼續讀取了文件的第二行(B)
如果將Thread Group1 Thread Group2 設置成2線程,循環次數為1,結果會是什么。。。?
- Sharing mode:Current thread group(當前線程組)
結果說明:Thread Group1 與 Thread Group2 均從文件首行(應該是第二行,次處設置了忽略首行)開始讀取。可以理解成,你讀你的,我讀我的,互不影響。
- Sharing mode:Current thread (當前線程)
執行結果如下圖:
結果說明:每個線程獨享參數化文件,以線程為單位讀取文件,線程之間互不影響。