標籤:ges style alt conf var alias 密碼 功能 variable
jmeter可以用來做介面、效能測試,原理是類比用戶端向伺服器發送請求,請求裡麵包含兩種不同情況的參數,一種是包含在URL中,一種是請求中需要發送的參數。
包含在URL中的參數,例如:http://blog.imyalost.com/index.php/2016/11/11/jmeter中,“2016/11/11/jmeter”參數為URL的參數。
請求中需要發送的參數(只能列舉GET請求),例如:http://www.it315.org/counter.jsp?name=zhangsan&password=123中,“zhangsan”是參數名,“123”是參數值。
至於POST請求,可以在jmeter指令碼中“隨請求一起發送的參數”和“隨請求一起發送的檔案”中找到。
PS:關於GET和POST要求方法,可以參見之前的部落格:http://www.cnblogs.com/imyalost/p/5630940.html
對於jmeter指令碼裡面的參數進行參數化時,使用參數的地方書寫格式為$。
關於jmeter的參數化,常用的有2種方法:
首先建立一個測試指令碼,可以通過工具(badboy)錄製或者自己手動編寫
登入請求的介面如下:
這裡我們對登入的使用者名稱密碼進行參數化,將使用者名稱密碼寫入txt文檔,儲存為.dat格式,編碼類別型選擇UTF-8,因為配置元件——CSV Data Set Config對參數化的格式要求比較嚴格,使用者名稱密碼一一對應,之間用半形英文逗號隔開
然後將儲存的.dat檔案放入電腦的某個盤裡,這裡我放入路徑為:F:\jmeter\csvtest.dat
下面具體介紹參數化的兩種方法:
一、借用函數助手
點擊jmeter的介面,功能欄選項→ 函數助手對話方塊→ _CSVRead
CSV file to get values from | *alias:CSV檔案取值路徑,即這裡需要寫入之前的需要參數化的參數的檔案路徑
CSV檔案列號| next|*alias:檔案起始列號:CSV檔案列號是從0開始的,第一列為0,第二列為1,以此類推。。。
函數字串:即產生的參數化後的參數,可以直接在登陸請求中的參數中引用,第一列為使用者名稱,函數欄位號為0,第二列為密碼,函數欄位號為1,以此類推進行修改使用即可
替換參數化後的參數,然後修改線程數,執行指令碼,通過監聽器裡結果樹的請求內容,可以看到請求的參數都是參數化後的資料
二、配置元件——CSV Data Set Config
點擊線程組添加配置元件→ CSV Data Set Config:
說明:
Filename:F:\jmeter\csvtest.dat檔案名稱,儲存參數化資料的檔案目錄,可選擇相對或者絕對路徑
File encoding:UTF-8,F:\jmeter\csvtest.dat檔案的編碼格式,在儲存時儲存編碼格式為UTF-8即可
Variable Names(comma-delimited):user,pwd 參數名稱(如:有幾列參數,在這裡面就寫幾個參數名稱,每個名稱中間用分隔字元分割,這裡的 user,pwd,可以被利用變數名來引用:${user},${pwd}
Delimitet:定義分隔字元,用來在“Variable Names”中分隔參數
Allow quote data:選項選為“true”的時候對全形字元的處理出現亂碼
Recycle on EOF?:是否迴圈讀入;因為CSV Data Set Config一次讀入一行,分割後存入若干變數中交給一個線程,如果線程數超過文本的記錄行數,那麼可以選擇從頭再次讀入
True=當讀取檔案到結尾時,再重頭讀取檔案
False=當讀取檔案到結尾時,停止讀取檔案
Stop thread on EOF?:當Recycle on EOF為False時(讀取檔案到結尾),停止進程,當Recycle on EOF為True時,此項無意義
完成之後,將剛才產生的參數寫入參數對應的值裡面:
以上就是2中參數化的方法,推薦使用CSV控制項方法(因為函數助手參數化功能相比其較弱)
相比於loadrunner來說,jmeter參數化有以下不同:
1.jmeter參數檔案第一行沒有列名稱
2.參數檔案的編碼,盡量儲存為UTF-8(編碼問題在使用CSV Data Set Config參數化時要求的比較嚴格)
3.Jmeter的參數化沒有LoadRunner做的出色,它是依賴於線程設定的(只有CSV Data Set Config參數化方法才有)
jmeter(十)參數化