jmeter設定參數的方法(隨機,讀csv等)
來源:互聯網
上載者:User
本文為整理jmeter設定參數的方法
設定參數值的方法有如下幾種: 1. 用Jmeter中的函數擷取參數值,__Random,__threadNum,__CSVRead,__StringFromFile,具體調用方法如下:
${__Random(,,)},$,${__CSVRead(,)},${__StringFromFile(,,,)}。
參看Jmeter函數的使用,通過菜單“選項”->“函數助手對話方塊”,即可在“函數助手”彈出框上找到Jmeter的函數。
其中${__Random(,,)}方法的第一個參數為隨機數的下限,第二個參數為隨機數的上限,第三個參數為儲存隨機數的變數 名;${__CSVRead(,)}方法中第一個參數是檔案名稱,第二個參數是檔案中的列(列數從0開 始);${__StringFromFile(,,,)}方法中第一個參數是檔案名稱,${__StringFromFile(,,,)}方法中沒有指定讀 取檔案中的哪一列的參數,所以${__StringFromFile(,,,)}只能讀取包含一列的檔案。 2.使用者定義的變數
2.1 添加“配置元件”->“使用者定義的變數”
2.2 “名稱”中輸入變數名稱,此處以登入狀態例,定義兩個變數username和password。“值”中可以直接輸入值,也可以通過Jmeter的函數 __CSVRead,__StringFromFile從csv或dat檔案中讀取,還可以通過首碼加隨機數的方法設定參數。
當參數值是某個首碼加一個數字時,可以用首碼名加${__Random(,,)}或$的方法設定參數值。如進行登入測試之前,先準備了使用者名稱為perf_0到perf_1000的使用者,那麼使用者名稱就可以設為perf_{__Random(0,1000,)}。
當參數值沒有規律的且量不太大時,可以通過${__CSVRead(,)},${__StringFromFile(,,,)}從檔案中讀取,如將使用者名稱和密碼儲存在user.csv檔案中,user.csv的內容如下:
oriana,123456
admin,admin
dandan,123456
因為user.csv檔案中有兩列資料,所以只能用${__CSVRead(,)}函數,username參數後的值設為${__CSVRead(user.csv,0)},password參數後的值設為${__CSVRead(user.csv,1)}。 3. 從csv檔案中讀取
當參數的值沒有規律且量不太大時,可以用這種方法。
具體做法如下:
3.1 建立一個csv檔案,內容為參數的值集,每一個參數佔一列,第一行就開始寫參數值,不要寫參數名
3.2 在測試計劃或線程組中添加一個“配置元件”->“CSV Data Set Config”
3.3 Filename中填寫步驟2.1中csv檔案的完整路徑(當csv檔案在bin目錄下時,只需給出檔案名稱即可)
3.4 Virable Names中填寫變數名,如果csv檔案中有多個變數,則用逗號隔開
4.從資料庫中擷取
當參數的值沒有規律且量比較大時,可以選用這種方法。
具體做法如下:
4.1 下載MySQL JDBC “http://dev. mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.12.zip/from/http://ftp.jaist.ac.jp/pub/mysql/”
4.2 解壓下載的zip包後,將其中的mysql-connector-java-5.1.12-bin.jar放到Jmeter的lib目錄下
4.3 添加“配置元件”->“JDBC Connection Configuration”,設定下列參數:
Database URL:jdbc:mysql://host:port/db(如jdbc:mysql://localhost:3306/testlink
JDBC Driver class:com.mysql.jdbc.Driver
username:串連資料庫的使用者名稱(如root)
password:串連資料庫的密碼
4.4 添加“Sampler”->“JDBC Request”,在SQL Query中輸入查詢語句,如下:
SELECT CONCAT (“[",
GROUP_CONCAT(
CONCAT("{username:'",login,"'"),
CONCAT("{password:'",password),"'}"),"]“) AS json FROM users
4.5 在4.4中的JDBC請求中添加“後置處理器”->“Regex提取器”,以提取3.4中的使用者名稱和密碼為例設定Regex提取器的參數:
引用名稱:user
Regex:username:’(.+?)’\{password:’(.+?)’
模板:$1$$2$
使用時,user_g1即為使用者名稱,user_g2即為對應使用者名稱的密碼;更多Regex提取方法參見JmeterRegex提取器 5.用Regex從前面請求的響應資料中提取,具體操作見JmeterRegex提取器