1. 程式人生 > >Jmeter參數化方法

Jmeter參數化方法

spl 表達 直接 amp string rec 相關 read str

用Jmeter測試時包含兩種情況的參數;一種是在url中,一種是請求中需要發送的參數。

設置參數值的方法有如下幾種:

一、函數助手

用Jmeter中的函數獲取參數值,__Random,__threadNum,__CSVRead,__StringFromFile,具體調用方法如下:
${__Random(,,)},$,${__CSVRead(,)},${__StringFromFile(,,,)}。

參看Jmeter函數的使用,通過菜單“選項”->“函數助手對話框”,即可在“函數助手”彈出框上找到Jmeter的函數。如下圖:技術分享

技術分享

其中${__Random(,,)}方法的第一個參數為隨機數的下限,第二個參數為隨機數的上限,第三個參數為儲存隨機數的變量名;

${__CSVRead(,)}方法中第一個參數是文件名,第二個參數是文件中的列(列數從0開始);

${__StringFromFile(,,,)}方法中第一個參數是文件名,該方法中沒有指定讀取文件中的哪一列的參數,所以只能讀取包含一列的文件。

二、用戶定義的變量

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的內容如下:
技術分享

因為user.csv文件中有兩列數據,所以只能用${__CSVRead(,)}函數,username參數後的值設為${__CSVRead(user.csv,0)},password參數後的值設為

${__CSVRead(user.csv,1)}。

三、從csv文件中讀取

當參數的值沒有規律且量不太大時,可以用這種方法。
具體做法如下:
3.1 創建一個csv文件,內容為參數的值集,每一個參數占一列,第一行就開始寫參數值,不要寫參數名
3.2 在測試計劃或線程組中添加一個“配置元件”->“CSV Data Set Config”;如圖:

技術分享

CSV Data Set Config各個參數使用說明:

  • Ignore first line (only used if Variable Names is not empty):忽略第一行(僅在變量名不為空時才使用)
  • Allow Quoated data: 雙引號相關(例:如果參數中需包含,或者”等),該項選擇True後,效果如下:

技術分享

  • Recycle on EOF: 設置為True後,允許循環取值
  • Stop Thread EOF: 當Recycle on EOF為false並且Stop Thread EOF 為true,則讀完csv文件中的記錄後,停止運行,線程數及執行次數無效。
  • Sharing Mode:共享模式:
    • All threads:所有線程,所有線程循環取值,線程1取第一行,線程二取下一行。
    • Current thread group:當前線程組,各個線程組分別循環取值。
    • Current thread:當前線程,該測試計劃內的所有線程都取第一行。

3.3 Filename中填寫步驟2.1中csv文件的完整路徑(當csv文件在bin目錄下時,只需給出文件名即可)
3.4 Virable Names中填寫變量名,如果csv文件中有多個變量,則用逗號隔開

四、從數據庫中獲取

當參數的值沒有規律且量比較大時,可以選用這種方法。
具體做法如下:
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”,設置下列參數,如圖:

技術分享

4.4 添加“Sampler”->“JDBC Request”,在SQL Query中輸入查詢語句,如下圖:

技術分享

4.5 在4.4中的JDBC請求中添加“後置處理器”->“正則表達式提取器”,以提取3.4中的用戶名和密碼為例設置正則表達式提取器的參數:

技術分享

使用時,user_g1即為用戶名,user_g2即為對應用戶名的密碼;更多正則表達式提取方法參見Jmeter正則表達式提取器

五、用正則表達式從前面請求的響應數據中提取,具體操作見Jmeter正則表達式提取器

Jmeter參數化方法