1. 程式人生 > >Jmeter介面測試(七)用例資料分離

Jmeter介面測試(七)用例資料分離

  之前我們的用例資料都是配置在 Jmeter Http 請求中,每次需要增加,修改用例都需要開啟 jmeter 重新編輯,當用例越來越多的時候,用例維護起來就越來越麻煩,有沒有好的方法來解決這種情況呢?

  其實我們可以將用例的資料存放在 csv 檔案中,然後通過 csv 檔案配置來讀取用例中的資料,執行測試。用例資料如下圖所示:

 

用例設計:

  這裡以 httpbin 介面為例,建立用例檔案:jmeter-testcase.csv

  用例名稱變數含義:

    •   ${caseSeq}:用例編號
    •   ${apiType}:api 型別
    •   ${apiSeq} :api 版本號
    •   ${apiName}:api 名稱
    •   ${priority}:優先順序
    •   ${url}:api 路徑
    •   ${methods}:請求方法
    •   ${parameter}: 請求引數
    •   ${expectValue}:期望值,用於斷言

Jmeter 設定步驟:

  1.新建一個執行緒組,命名為:資料驅動

  2.建立一個 http 請求預設值,設定如下:

 

 

  3.新增一個迴圈控制器 步驟為:執行緒組——新增——邏輯控制器——迴圈控制器。 迴圈控制器的作用可以控制整個用例迴圈執行的次數。預設值是 1 根據用例數量可以修改為 4

 

  4.在迴圈控制器節點下建立 CSV 檔案設定,具體配置內容如下:

 

  5.建立一個 if 控制器,步驟為:執行緒組——新增——邏輯控制器——if 控制器

  if 控制器的作用為根據不同條件執行不同的用例,例如這裡根據不同的介面請求型別,分別建立了 GET 和 POST 兩個控制器。

  GET 設定的條件語句如下:

  條件語句為:"${methods}"=="GET"其中 ${methods}表示引用 csv 中的 methods 中的值。

  引數:

    • Interpret Condition as Variable Expression?:如果這個選項被選中,將不會使用 js 解析;條件表示式的值必須是 true(忽略大小寫),這裡我們取消勾選狀態。
    • Evaluate for all children:如果選中這一項,在每個子結點執行前都會計算表示式 

  POST 條件語句設定為:"${methods}"=="POST"

 

 

  6.建立 GET 請求型別的用例如下

 

  用例名稱格式:${caseSeq}_ ${apiSeq}_${apiName}

  斷言設定如下:${expectValue}引用 csv 中對應的值。

 

  最後新增檢視結果樹,然後執行可以看到如下執行結果:

 

 

  7.POST 用例設定和 GET 類似,不過引數請求不一樣,是在 body 中,如果傳送的是json格式的引數,需要新增http資訊頭管理器。另外請求方式為:POST

 

  執行結果如下:

  

  8.最後線上程組新增一個檢視結果樹,執行可以檢視全部用例執行情況。

 

 

小結

 

  通過這樣的資料驅動,當面對大量用例時在 jmeter 設定就非常方便,後續的用例維護也非常高效,因為不用在jmeter 一個個去單獨修改用例了。