參數化:當使用JMeter進行測試時,測試數據的准備是一項重要的工作。若要求每次迭代的數據不一樣時,則需進行參數化,然后從參數化的文件中來讀取測試數據。
JMeter的四種參數化方式包括:
1.用戶參數(User Parameters):適用於參數取值范圍很小的時候使用
2.函數助手(Function Helper):可作為其他參數化方式的補充項,如:隨機數生成的函數${__Random(,,)}
3.CSV Data Set Config/CSV數據配置文件:適用於參數取值范圍較大的時候使用,該方法具有更大的靈活性
4.用戶自定義變量(User Defined Variables):一般用於Test Plan中不需要隨請求迭代的參數設置,如:Host、Port Number
示例:
登錄接口需要輸入兩個參數:手機號(loginId)和密碼(password),模擬2個用戶來登錄系統
一、用戶參數(User Parameters)
1.添加方式:HTTP取樣器-->Add-->Pre Processors-->User Parameters
2.設置參數項、參數值
3.配置HTTP取樣器界面的請求參數
4.配置線程組
設置線程數=2,即2個虛擬用戶數,對應User Parameters中設置的2個用戶

二、函數助手(Function Helper)
1.添加方式:tools-->函數助手對話框
打開函數助手,可以從下拉列表中選擇一個函數,並為其參數設定值,不同函數要求的參數也不同;表格的左邊一列是函數參數的簡要描述,右邊一列是供用戶填充參數的值。
可點擊【幫助】進入官網具體函數的使用或參考https://www.jianshu.com/p/c66b846e2ada
2.預先准備好要參數化的所有參數值
3.選擇參數化所需的函數,配置函數(這里選擇__CSVRead函數)
4.配置HTTP取樣器的請求參數,拷貝函數字符串替換要參數化的值
設置線程數=2,即2個虛擬用戶數,對應User Parameters中設置的2個用戶
三、CSV Data Set Config
1.添加方式:右鍵-->添加-->配置元件-->cvs數據文件配置
Configure the CSV Data Source配置項&功能:
配置項 | 取值or選擇項 |
---|---|
文件名(Filename) | 參數化文件的讀取位置,即保存參數化數據的文件目錄。可為絕對路徑,也可為相對路徑。在分布式測試中,還是利用相對路徑比較方便,因為有的機器可能安裝路徑不一樣,同時可避免腳本遷移時需要修改路徑 |
文件編碼(File Encoding) | 編碼格式 |
變量名稱(Variable Names) | 變量名稱。這里定義的變量名稱,后面就可以直接用來引用了。(多個變量名稱以逗號隔開,例如username,passwd。參數化文件中同樣有對應的兩列數據。) |
忽略首行(Ignore first line) | 忽略第一行數據(類似LR中第一行數據是變量名稱,如果你的配置文件中為了記憶第一行也是變量名,可以選擇是忽略該行數據) |
分隔符(Delimiter) | Variable Names中的參數分隔符,默認為英文逗號 |
是否允許帶引號?(Allow quoted data?) | 是否允許引用數據,默認false。選項為“true”時對全角字符的處理可能會出現亂碼 |
遇到文件結束符再次循環?(Recycle on EOF?) | 是否循環讀取參數文件內容;因為CSV Data Set Config一次讀入一行,分割后存入若干變量中交給一個線程,如果線程數超過文本的記錄行數,那么可以選擇從頭再次讀入 |
遇到文件結束符再次循環?(Stop thread on EOF?) | 當Recycle on EOF為False時(讀取文件到結尾),停止進程,當Recycle on EOF為True時,此項無意義 |
線程共享模式(Sharing mode) | 共享模式,即參數文件的作用域:All Threads;Current Thread Group;Current Thread |
2.預先准備好要參數化的所有參數值
3.配置HTTP取樣器界面的請求參數
4.配置線程組
設置線程數=2,即2個虛擬用戶數,對應User Parameters中設置的2個用戶
5.添加查看結果樹,運行后查看結果
四、用戶自定義變量(User Defined Variables)
1.添加方式:右鍵線程組-->配置元件-->用戶定義的變量(User Defined Variables)
2.配置HTTP取樣器中的請求參數
3.添加查看結果樹,運行后查看結果