『動善時』JMeter基礎 — 26、使用txt文件實現JMeter參數化


之前我們都是使用.csv格式的數據文件實現了JMeter的參數化,今天我們演示使用.txt格式的數據文件實現JMeter的參數化。

需求:我們以一個登陸接口為例。

發送登錄請求的時候,我們需要傳遞兩個參數:phonepassword

針對這個登錄接口設計5條用例,如下:

  1. 正常登錄。
  2. 手機號未注冊,即:手機號填寫錯誤。
  3. 手機號不合法,即:手機號填寫錯誤位數不對或為空。
  4. 手機號或密碼錯誤,即:密碼錯誤。
  5. 密碼不合法,即:密碼為空。

1、測試計划中的元件

添加元件操作步驟

  1. 創建測試計划。
  2. 創建線程組:選中“測試計划”右鍵 —> 添加 —> 線程(用戶) —> 線程組
  3. 在線程組中,添加配置元件"HTTP信息頭管理器"組件:選中“線程組”右鍵 —> 添加 —> 配置元件 —> HTTP信息頭管理器
  4. 在線程組中,添加配置元件CSV Data Set Config組件:選中“線程組”右鍵 —> 添加 —> 配置元件 —> CSV數據文件設置
  5. 在線程組中,添加取樣器“HTTP請求”組件:選中“線程組”右鍵 —> 添加 —> 取樣器 —> HTTP請求
  6. 在線程組中,添加監聽器“察看結果樹”組件:查看結果,選中“線程組”右鍵 —> 添加 —> 監聽器 —> 察看結果樹

最終測試計划中包含的元件如下:

image

點擊運行按鈕,會提示你先保存該腳本,腳本保存完成后會直接自動運行該腳本。

2、數據文件內容

創建一個.txt文件,名為login_data.txt,然后根據需求編輯數據文件內容,這次我們不加列表明。

然后使用Notepad++打開該文件,點擊“編碼” —> 轉為UTF-8編碼,防止中文亂碼。

最終所得到的.txt格式文件的內容如下:

image

3、線程組元件內容

如果需要使用.txt文件中所有的數據,需要設置線程組的線程數或循環次數。

因為在CSV數據文件設置組件,有Recycle on EOFStop thread on EOF選項的關系,所以設置線程數和循環次數都可以實現,使用數據文件中的每一組數據進行測試。

如下圖所示:

image

4、HTTP信息頭管理器組件內容

因為我們要使用Post請求發送Json數據,所以需要在請求頭中設置Content-Type=application/json

如果我們不在請求頭中進行設置,默認請求頭的Content-Type值為text/plain。(這在前面的Post請求文章中有詳細的說明)

如下圖所示:

image

5、CSV數據文件設置組件內容

如下圖所示:

image

我一般常用操作,簡單說明:

  • 文件名:就直接瀏覽選擇文件即可,也就是使用數據文件的絕對路徑。
  • 文件編碼選擇UTF-8
  • 變量名稱:這里定義的就是參數化變量的引用名稱,要與數據文件中的列相對應,中間用逗號分割。
  • 忽略首行:選擇False,因為這次我們沒有添加列名。如果數據文件中首行寫的是變量名稱,選擇忽略首行。
  • 分隔符:如果.txt文件中的數據,使用的是逗號隔開,就是默認值。如果是制表符,就用\t表示。
  • 是否允許帶引號?:如果變量值中有引號就選擇True,沒有則默認False即可。
  • 其他一般默認選擇。如果需求看上面說明中寫的很詳細,按工作中實際情況選擇。

6、HTTP請求組件內容

在JMeter中使用參數化變量的格式:${變量名}

編輯登錄接口內容,如下圖所示:

image

我們可以看到${變量名}中的引用變量名,是以CSV數據文件設置組件中變量名稱中定義變量名為准。如果不在變量名稱欄中定義任何內容,就以數據文件中的標題列名為引用變量名。

7、腳本運行結果

該測試腳本運行結果如下圖所示:

image

我們可以看到,一共發送了5次請求,每次請求使用的參數值都是不同的,並且返回結果的預期也與我們設想的一樣。

這樣就演示了,使用.txt文件作為數據文件,實現JMeter中的參數化。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM