1. 程式人生 > >Jmeter基礎004----增加引數化

Jmeter基礎004----增加引數化

一、引數化概述

1、引數化概念

      引數化就是動態的獲取並設定資料,當執行批量操作時,如批量插入或批量刪除,之前每執行完一次就需要修改一次,效率太低,引數化可以代替人工獲取並設定資料,安全且高效!

2、Jmeter引數化元件

  • CSV Data Set Config----CSV資料設定元件
  • 使用者引數
  • 使用者定義的變數
  • 函式

二、引數化實現之CSV Data Set Config

1、概述

     CSV Data Set Config----CSV資料設定元件,是引數化的實現元件之一,通過這個元件可以動態獲取並設定資料,實現批量操作,如:批量新增操作(執行一次,將多條資料插入到資料庫)。

2、例項1:引數化登入賬號

      我們錄製的指令碼,內容都是固定的,比如手機號、驗證碼都是我們再錄製過程中輸入的,如果我們希望模擬不同使用者登陸,那麼我們並不需要錄製很多個指令碼,而只要將指令碼中的使用者名稱、密碼變成變數,而執行緒執行時,不同執行緒取得不同的變數值即可。
     下面我們就舉例說明如何引數化登陸賬號。

(1)測試登入介面:如下圖,新建登陸的HTTP請求並執行,確保登入介面執行正常。

 

(2)建立一個文字文件,標準的CSV格式檔案,如下圖包括3條資料,每一行資料對應一條登入資訊,不同欄位之間使用英文逗號分隔。

(3)執行緒組右鍵---新增---配置元件---CSV Data Set Config----CSV,建立一個CSV元件,並宣告資料來源、編碼集以及解析格式,如下圖所示:

(4)設定執行緒組的執行緒數為3(因為檔案中有三條登入資料),並修改HTTP請求中的引數值,呼叫CSV資料檔案設定中定義的變數,呼叫格式${變數名},如下圖所示:

 

 (5)執行測試計劃,檢視結果樹的執行結果,如下圖所示:

 

 

 3、例項2:批量新增

 實現思想:

 

 

 實現步驟:

(1)建立CSV 資料檔案設定,如下圖所示:

 (2)建立HTTP請求,並在請求中呼叫CSV中定義的變數

 (3)編輯文字文件,儲存要新增的三條資料

 (4)設定執行緒組迴圈次數為3,並執行測試計劃,檢視察看結果樹顯示。

 

三、引數化之使用者引數

1、使用者引數與CSV引數化的區別

    使用者引數和CSV都是將資料設定進第三方,然後迴圈讀取資料,區別在於:CSV是將資料設定進外部的文字文件,而使用者引數是將資料設定進Jmeter內建元件。

2、實現流程  

(1)搭建框架:建立測試計劃、執行緒組、HTTP請求(請求的JSON資料先不設定)。注意:執行次數是3次(不是設定迴圈次數,而是設定執行緒數)

(2)建立Jmeter內建元件儲存要插入的資料:測試計劃右鍵----新增----前置處理器----使用者引數,在使用者引數元件介面新增4個變數、3個使用者,如下圖所示:

 注意:因為此處新增的是使用者,每個使用者對應一個執行緒 ,新增幾個使用者就應該設定幾個執行緒,所以這裡設定的是執行緒組而不是迴圈次數。

 

(3)將使用者引數元件中的變數名稱設定進HTTP請求的Json資料格式中,呼叫格式:${變數名},如下圖所示:

 (4)執行測試計劃,檢視察看結果樹。

 

四、引數化之使用者定義的變數

1、需求

     當系統執行增刪改查操作時,資源路徑不一定相同,但存在部分相同,如:都是/api/departments/開頭,為了提高編寫路徑的效率,可以將公共路徑定義成變數,然後再在路徑中使用${變數名}呼叫變數。注:一般定義、儲存全域性使用的變數。

2、實現過程

(1)將公共的路徑資料提取出來使用一個元件儲存,如:/api/departments/。測試計劃右鍵----新增----配置元件----使用者定義的變數,建立使用者定義的變數元件,新增自定義變數,如下圖所示:

(2)分別建立HTTP請求,在路徑中公共部分呼叫定義的路徑變數,非公共部分路徑與原來一致,如下圖所示:

 (3)執行測試計劃,檢視結果樹。

 

五、引數化之函式

1、需求

     函式是程式中最基本的封裝單元,封裝了一些常用的功能,比如計數器。在實際應用中當我們需要迴圈10次查詢資訊時,結果數的請求名稱都是一樣的,我們可以使用計數函式新增標號以示區分。

2、實現流程

(1)開啟Jmeter內建的函式元件,一共有三種方式:

  •  選項+函式助手對話方塊
  •  ctrl+shift+F1
  • 工具欄倒數第二個圖示

(2)選擇要使用的函式,給函式傳參,並用Jmeter生成呼叫格式,如下圖:

 

注:__counter函式的引數:true,每一個使用者單獨一個計數器;false,所有使用者共用一個計數器.

(3)在需要呼叫函式的位置使用Jmeter生成的呼叫格式:${_函式名(引數)}

 

 

 (4)執行測試計劃,檢視結果樹,如下圖所示:

六、總結

1、引數化----CSV Data Set Config

     概念:動態獲取並設定資料,操作資料高效安全(程式代替人工)

     實現思想+具體流程:

2、引數化----使用者引數

實現思想:將資料單獨儲存,然後再將資料讀取到http請求的JSON 資料中

實現流程:

  • 設定執行次數(使用者數)
  • 新增元件使用者引數儲存多條記錄
  • 讀取資料格式: ${變數名 )

3、引數化----使用者定義的變數

作用:儲存全域性性資料 

新增格式:新增使用者定義的變數元件-----鍵和值

呼叫格式:${變數名}

4、引數化----函式

概念:程式中的功能單元,封裝了部分實現 

實現: 

  • 開啟函式功能模組
  • 選擇要呼叫的函式+設定引數+生成呼叫格式
  • 在需要使用的位置呼叫即可

5、四種引數化方案比較

  •   CSV和使用者引數使用思想一致,流程上後者更簡單,但是實際應用中,使用CSV居多,因為資料量大時,CSV更方便
  •   使用者定義的變數一般用來儲存全域性變數,但是使用場景較少
  •   函式實現更為靈活且內建了好多實現。

總結:最常用的是引數化方法是:CSV+函式

&n