Jmeter作為雖然作為一款和LoadRunner相媲美的性能測試工具,但參數化功能實在不咋地,這里我大概總結了一下Jmeter的參數化方法!
至於參數化的用途,我這里就不多說了,做測試的都明白吧!本文主要介紹最全、最強大的參數化方法,對參數化有一個徹底的認識,這里提供了多種參數化方法,
先看一下沒有參數化的腳本:這里隨便寫一個Beanshell 作為測試代碼!不懂代碼的沒關系,只要知道print 就是打印信息的意思~!
文章結尾我會上傳測試代碼,注意運行的時候修改腳本里面的路徑哦!
運行結果:按照代碼中寫死的:Hello,Test!輸出!
Jmeter參數化之用戶變量
在測試計划里面添加一個用戶自定義的變量,變量名:tmpStr,變量值:你好,測試!
或者新建一個用戶自定義變量元件,來添加自定義變量,這里不做演示:
代碼:
print(vars.get("tmpStr"));
vars 是Jmeter提供的一個全局變量對象,用戶操作Jmeter中的變量!
運行結果如圖所示:
Jmeter參數化之用戶動態設置變量
通過腳本,可以隨時注冊Jmeter變量,這樣就可以增加變量來源的靈活性!
代碼:
vars.put("tmpStr2","你好,祖國!");//動態注冊一個變量tmpStr2
print(vars.get("tmpStr2"));
運行結果:前面的報錯信息是因為Jmeter腳本框對中文的支持不是很好,這個不影響運行結果,對於這個錯誤,我也是無語,目前用的版本是:2.13 r1665067,只要在BeanShell 腳本框輸入一個中文字符,保存的時候就會在控制台報一大堆錯誤!畢竟工具是老外開發,對中文還是有瑕疵啊!
Jmeter參數化之函數讀取數據
隨便選取了幾個函數作為實例,函數具體參數和百度查詢
__Random:生成隨機數
__RandomString:生成隨機字符串
__time:獲取當前時間
__UUID:生成唯一UID
__threadNum:線程ID
__CSVRead:從文件中讀取一列
_StringFromFile:從文件中讀取一行
代碼:
運行結果:
Jmeter參數化之從文件中讀取數據
添加一個CSV Data Set Config 配置元件
線程組循環次數設置為10
運行結果:
Jmeter參數化之從數據庫讀取數據
如圖所示,bd_user表結構:
JDBCconfig:
JDBC request:
正則表達式提取器:
運行結果:
附上測試腳本,腳本我全部都禁用了,測試的時候需要啟用,啟用步驟:右鍵,啟用