一、CSV數據文件的作用及格式
CSV(Comma Separated Values)是一種以逗號為分隔符對數據進行存儲的格式,適用於存儲表格數據,易於閱讀和編輯。在JMeter中,CSV數據文件可以為測試腳本提供多個輸入值或者驗證數據。例如登錄場景,可以使用CSV文件來存儲不同的賬號密碼數據,讓測試腳本循環執行來驗證多個賬號的登錄情況。
CSV文件可以使用Excel等工具進行編輯和創建,每列對應一個變數,每行代表一個數據集。在JMeter中,CSV數據文件可以通過以下格式進行定義:
變數1,變數2,變數3,變數4 值1.1,值1.2,值1.3,值1.4 值2.1,值2.2,值2.3,值2.4 值3.1,值3.2,值3.3,值3.4
其中第一行聲明了CSV文件的變數名,後面的每一行都代表一個數據集,對應變數名的值通過逗號進行分隔。另外,如果CSV文件的第一行以「#」開頭,那麼這一行將被JMeter忽略。
二、使用CSV數據文件進行參數化
參數化是JMeter中非常常見的一種需求,它可以讓測試腳本使用不同的輸入值和驗證數據。而CSV數據文件正好可以給我們提供這樣的支持。
下面是使用CSV文件實現參數化的示例:
http://www.example.com/login.html param1=${username} param2=${password}
這個請求中,我們使用了${username}和${password}這兩個變數,它們將會從CSV文件中讀取對應的值。因此,我們需要在測試計劃中添加一個CSV數據文件配置元件,並指定對應的文件路徑。
假設我們的CSV文件的路徑為「D:\test\login.csv」,文件中包含username和password這兩個變數名,則在測試計劃中添加一個CSV數據文件配置元件,路徑設置為「D:\test\login.csv」,變數名稱設置為「username,password」。在HTTP請求中設置參數如下:
http://www.example.com/login.html param1=${username} param2=${password}
JMeter會自動讀取CSV文件,並將每行數據賦值給對應變數。每次請求時,JMeter會循環讀取下一行數據,並將變數值替換到請求參數中。
三、使用CSV數據文件進行斷言驗證
除了參數化,CSV文件還可以用於為測試腳本提供驗證數據。例如訪問一個登錄頁面,需要驗證頁面中是否包含「Welcome」的文字,這個驗證文字可能需要針對不同的用戶進行驗證。
下面是使用CSV文件實現斷言驗證的示例:
http://www.example.com/login.html 斷言:包含關鍵字「Welcome」 期望值:${welcome}
這個請求中,我們使用了一個包含關鍵字的斷言,其中期望值將會從CSV文件中讀取。因此,我們需要在測試計劃中添加一個CSV數據文件配置元件,並指定對應的文件路徑。
假設我們的CSV文件的路徑為「D:\test\validation.csv」,文件中包含welcome這個變數名,則在測試計劃中添加一個CSV數據文件配置元件,路徑設置為「D:\test\validation.csv」,變數名稱設置為「welcome」。在HTTP請求中設置斷言如下:
http://www.example.com/login.html 斷言:包含關鍵字「Welcome」 期望值:${welcome}
每次執行請求時,JMeter會自動讀取CSV文件,將期望值替換為文件中對應的值,並完成斷言驗證。
四、使用CSV數據文件實現循環控制
CSV文件還可以作為循環控制器的控制源,讓測試腳本循環執行直到文件中的所有數據都被使用。
下面是使用CSV文件實現循環控制的示例:
循環控制:循環次數${__CSVRead(D:\test\loop.csv,0)} http://www.example.com/${__CSVRead(D:\test\loop.csv,1)}.html
這個腳本中,循環控制器的循環次數將會從CSV文件中讀取對應的值。因此,我們需要在測試計劃中添加一個CSV數據文件配置元件,並指定對應的文件路徑。
假設我們的CSV文件的路徑為「D:\test\loop.csv」,文件中包含cycle和type這兩個變數名,則在測試計劃中添加一個CSV數據文件配置元件,路徑設置為「D:\test\loop.csv」,變數名稱設置為「cycle,type」。在循環控制器中設置循環次數如下:
循環控制:循環次數${__CSVRead(D:\test\loop.csv,0)} http://www.example.com/${__CSVRead(D:\test\loop.csv,1)}.html
在每次循環執行時,JMeter會自動讀取CSV文件,並將循環次數替換到循環控制器中,然後針對每一行數據執行對應的請求,完成數據循環操作。
原創文章,作者:JSTVI,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/372059.html