目錄
一、JMeter參數化簡介
1.JMeter參數化的概念
- 當使用JMeter進行測試時,測試數據的準備是一項重要的工作。若要求每次迭代的數據不一樣時,則需進行參數化,然後從參數化的文件中來讀取測試數據。
參數化:是自動化測試腳本的一種常用技巧,可將腳本中的某些輸入使用參數來代替,如登錄時利用GET/POST請求方式傳遞參數的場景,在腳本運行時指定參數的取值範圍和規則。
腳本在運行時,根據需要選取不同的參數值作爲輸入,該方式稱爲數據驅動測試(Data Driven Test),而參數的取值範圍被稱爲數據池(Data Pool)。
2.JMeter參數化方式之使用場景對比
參數化方式
使用場景
- 1 User Parameters 適用於參數取值範圍很小的時候使用
- 2 CSV Data Set Config 適用於參數取值範圍較大的時候使用,該方法具有更大的靈活性
- 3 User Defined Variables 一般用於Test Plan中不需要隨請求迭代的參數設置,如:Host、Port Number
- 4 Function Helper中的函數 可作爲其他參數化方式的補充項,如:隨機數生成的函數${__Random(,)}
二、JMeter參數化的4種主要方式-操作演練
1.User Parameters(用戶參數)
- 操作路徑:HTTP取樣器–>Add–>Pre Processors–>User Parameters
1)添加User Parameters功能模塊
2)設置參數項、參數值
3)配置HTTP取樣器界面的請求參數
4)配置Thread Group
- 設置線程數=2,即2個虛擬用戶數,對應User Parameters中設置的2個用戶
5)添加View Results Tree監控執行過程
執行Run完成之後的效果:
2.CSV Data Set Config(CSV數據配置)
- 操作路徑:HTTP取樣器–>Add–>Config Element–>CSV Data Set Config
1)添加CSV Data Set Config模塊
2)預先準備好要參數化的所有參數值
3)配置CSV Data來源
Configure the CSV Data Source配置項&功能:
- 配置項 取值or選擇項
- Filename 參數化文件的讀取位置,即保存參數化數據的文件目錄。可爲絕對路徑,也可爲相對路徑。在分佈式測試中,還是利用相對路徑比較方便,因爲有的機器可能安裝路徑不一樣,同時可避免腳本遷移時需要修改路徑
- File Encoding 編碼格式,選擇utf-8
- 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
4)設置HTTP取樣器的請求參數
5)設置Thread Group的線程執行的總次數
6)執行Run,查看效果
3.User Defined Variables(用戶自定義變量)
- 操作路徑:Thread Group–>Add–>Config Element–>User Defined Variables
1)添加User Defined Variables模塊
2)配置User Defined Variables界面中的參數及其值
3)配置HTTP取樣器中的請求參數
- 此時可以聯合其他參數化方式(如:User Parameters)一起檢測效果
4)執行Run,觀察效果
4.Function Helper中的函數
- 操作路徑:Options–>Function Helper Dialog