JMeter使用CSV參數(shù)文件
在PTS原生壓測中,如果您需要構(gòu)造動態(tài)變化的業(yè)務(wù)請求,可以通過參數(shù)化實(shí)現(xiàn)。在使用JMeter壓測時,如果有同樣的動態(tài)壓測需求,建議您在JMeter腳本中添加Config Element:CSV Data Set Config,從CSV文件中讀取參數(shù)。同時,JMeter壓測支持切分CSV文件,將CSV文件中的數(shù)據(jù)分配到每個壓測引擎。
背景信息
CSV Data Set Config是JMeter官方提供的配置元件,用于讀取CSV文件中的數(shù)據(jù)并將它們拆分為變量。適用于處理大量變量的場景。
如果上傳的CSV文件在JMeter腳本中沒有對應(yīng)的CSV Data Set Config配置,則切分CSV文件時默認(rèn)作為不包含表頭(即變量名)的CSV文件切分。為方便操作,并避免數(shù)據(jù)被錯誤切分,建議您始終通過配置CSV Data Set Config使用CSV參數(shù)文件。
配置CSV參數(shù)文件
為構(gòu)建動態(tài)變化的壓測請求,需要在JMeter腳本中配置CSV文件。
例如,為測試同時有100人登錄某網(wǎng)站時,該網(wǎng)站登錄接口的性能表現(xiàn)如何,則需要構(gòu)造100條不同的用戶登錄數(shù)據(jù)。操作步驟如下:
在本地新建一份CSV文件,包含100條用戶數(shù)據(jù)。該CSV文件示例中第一行是表頭,表示變量名。基本格式示例如下:
username,password user1,Password1 user2,Password2 user3,Password3
說明如果CSV文件不含表頭,CSV Data Set Config中需要配置變量名。
添加CSV Data Set Config到Thread Group。
在CSV Data Set Config配置區(qū)域,填寫CSV文件名,其他配置項(xiàng)保持默認(rèn)。JMeter會自動從CSV文件的表頭中讀取參數(shù)名作為變量名。
說明如果CSV文件不含表頭,需要在CSV Data Set Config的Variable Names (comma-delimited)中,輸入
username
,password
。配置Sampler
右鍵單擊線程組,選擇Add > Sampler > HTTP Request。根據(jù)具體業(yè)務(wù)接口,填寫配置項(xiàng),示例如下:
Name:接口名。
Web Server:填寫具體的業(yè)務(wù)接口協(xié)議、服務(wù)名或IP地址和端口號。
HTTP Request:選擇請求方法,填寫Path。
Body Data頁簽:使用
${username}
、${password}
,表示讀取CSV文件中的參數(shù)。
保存JMeter測試腳本。
將測試腳本和CSV文件上傳至PTS。具體步驟,請參見創(chuàng)建JMeter場景。
CSV文件切分
選中CSV文件后的切分文件,可將CSV文件中的數(shù)據(jù)切分到每個壓測引擎上。
包含文件頭的CSV文件切分
當(dāng)原CSV帶文件頭時,切分后的每個文件都會包含文件頭,但保證數(shù)據(jù)不重復(fù)。如果數(shù)據(jù)條數(shù)不能完全均分,則部分引擎可能比其他引擎多一條數(shù)據(jù)。
如上述示例文件切分到2個引擎時:
第1個文件內(nèi)容為:
username,password user1,Password1 user3,Password3
第2個文件內(nèi)容為:
username,password user2,Password2
不含文件頭的CSV文件切分
如果CSV文件不包含文件頭(第一行即為CSV數(shù)據(jù)),例如,文件“b.csv”內(nèi)容如下:
user1,Password1
user2,Password2
user3,Password3
則需在JMeter中配置變量名,如下圖所示:
此時如果選擇切分CSV文件,切分后的文件也不包含文件頭。如果數(shù)據(jù)條數(shù)不能完全均分,則部分引擎可能比其他引擎多一條數(shù)據(jù)。如切分到2個引擎時:
第1個文件內(nèi)容為:
user1,Password1 user3,Password3
第2個文件內(nèi)容為:
user2,Password2
更多信息
更多CSV文件配置和使用說明,請參見JMeter官方文檔。