全部產品
Search
文件中心

Performance Testing Service:JMeter使用CSV參數檔案

更新時間:Feb 16, 2025

在PTS原生壓測中,如果您需要構造動態變化的業務請求,可以通過參數化實現。在使用JMeter壓測時,如果有同樣的動態壓測需求,建議您在JMeter指令碼中添加Config Element:CSV Data Set Config,從CSV檔案中讀取參數。同時,JMeter壓測支援切分CSV檔案,將CSV檔案中的資料分配到每個壓測引擎。

背景資訊

CSV Data Set Config是JMeter官方提供的配置元件,用於讀取CSV檔案中的資料並將它們拆分為變數。適用於處理大量變數的情境。

如果上傳的CSV檔案在JMeter指令碼中沒有對應的CSV Data Set Config配置,則切分CSV檔案時預設作為不包含表頭(即變數名)的CSV檔案切分。為方便操作,並避免資料被錯誤切分,建議您始終通過配置CSV Data Set Config使用CSV參數檔案。

配置CSV參數檔案

為構建動態變化的壓測請求,需要在JMeter指令碼中配置CSV檔案。

例如,為測試同時有100人登入某網站時,該網站登入介面的效能表現如何,則需要構造100條不同的使用者登入資料。操作步驟如下:

  1. 在本地建立一份CSV檔案,包含100條使用者資料。該CSV檔案樣本中第一行是表頭,表示變數名。基本格式樣本如下:

    username,password
    user1,Password1
    user2,Password2
    user3,Password3           
    說明

    如果CSV檔案不含表頭,CSV Data Set Config中需要組態變數名。

  2. 添加CSV Data Set ConfigThread Group

    image

  3. CSV Data Set Config配置地區,填寫CSV檔案名稱,其他配置項保持預設。JMeter會自動從CSV檔案的表頭中讀取參數名作為變數名。

    image

    說明

    如果CSV檔案不含表頭,需要在CSV Data Set ConfigVariable Names (comma-delimited)中,輸入username,password

  4. 配置Sampler

    按右鍵線程組,選擇Add > Sampler > HTTP Request。根據具體業務介面,填寫配置項,樣本如下:

    • Name:介面名。

    • Web Server:填寫具體的業務介面協議、服務名或IP地址和連接埠號碼。

    • HTTP Request:選擇要求方法,填寫Path。

    • Body Data頁簽:使用${username}${password},表示讀取CSV檔案中的參數。

      image

  5. 儲存JMeter測試指令碼。

  6. 將測試指令碼和CSV檔案上傳至PTS。具體步驟,請參見建立JMeter情境

CSV檔案切分

選中CSV檔案後的切分檔案,可將CSV檔案中的資料切分到每個壓測引擎上。image

包含檔案頭的CSV檔案切分

當原CSV帶檔案頭時,切分後的每個檔案都會包含檔案頭,但保證資料不重複。如果資料條數不能完全均分,則部分引擎可能比其他引擎多一條資料。

如上述樣本檔案切分到2個引擎時:

  • 第1個檔案內容為:

    username,password
    user1,Password1
    user3,Password3                   
  • 第2個檔案內容為:

    username,password
    user2,Password2                

不含檔案頭的CSV檔案切分

如果CSV檔案不包含檔案頭(第一行即為CSV資料),例如,檔案“b.csv”內容如下:

user1,Password1
user2,Password2
user3,Password3        

則需在JMeter中組態變數名,如下圖所示:image

此時如果選擇切分CSV檔案,切分後的檔案也不包含檔案頭。如果資料條數不能完全均分,則部分引擎可能比其他引擎多一條資料。如切分到2個引擎時:

  • 第1個檔案內容為:

    user1,Password1
    user3,Password3
                    
  • 第2個檔案內容為:

    user2,Password2
                       

更多資訊

更多CSV檔案配置和使用說明,請參見JMeter官方文檔