1. 程式人生 > >JMeter-介面測試之資料驅動

JMeter-介面測試之資料驅動

前言

之前我們的用例資料都是配置在Http 請求中,每次需要增加,修改用例都需要開啟 jmeter 重新編輯,當用例越來越多的時候,用例維護起來就越來越麻煩,有沒有好的方法來解決這種情況呢?我們可以將用例的資料存放在 csv 檔案中,然後通過 csv 檔案配置來讀取用例中的資料,執行測試。

一:設定測試用例,建立用例資料檔案:testcase.csv

用例名稱變數含義:

${caseSeq}:用例編號

${apiType}:api 型別

${apiSeq} :api 版本號

${apiName}:api 名稱

${priority}:優先順序

${url}:api 路徑

${methods}:請求方法

${parameter}: 請求引數

${expectValue}:期望值,用於斷言

注意:為了避免JMeter讀取CSV檔案出現亂碼的情況,應先建立xls的檔案,然後另存為csv格式的檔案。

二:新建一個執行緒組,命名為:資料驅動,新增配置元件-HTTP請求預設值,配置好IP地址和埠號

三:新增邏輯控制器-迴圈控制器。 迴圈控制器的作用可以控制整個用例迴圈執行的次數。預設值是1根據用例數量可以修改為8

四:在迴圈控制器節點下新增CSV資料檔案設定,具體配置內容如下:

五:新增邏輯控制器——如果(if) 控制器,if 控制器的作用為根據不同條件執行不同的用例,例如這裡根據不同的介面請求型別,分別新增GET和POST兩個控制器。

(1)GET 設定的條件語句為:"${methods}"=="GET",其中 ${methods}表示引用 csv 中的 methods 中的值

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

注:Interpret Condition as Variable Expression?:如果這個選項被選中,將不會使用 js 解析;條件表示式的值必須是 true(忽略大小寫),這裡我們取消勾選狀態。

Evaluate for all children:如果選中這一項,在每個子結點執行前都會計算表示式

六:GET和POST兩個控制器下分別新增請求和響應斷言

(1)新增GET請求型別的用例,用例名稱格式:${caseSeq}_ ${apiSeq}_${apiName}

注:以CSV檔案的引數名稱來組合命名HTTP請求的名稱,這樣在結果樹就會依據用例的編號,介面名稱等顯示每個用例的名稱

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

(3)新增POST請求型別的用例,用例名稱格式:${caseSeq}_ ${apiSeq}_${apiName}

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

(5)POST請求如果傳送的是json格式的引數,需要新增配置元件-HTTP資訊頭管理器,寫入名稱:Content-Type;值:application/json

七:新增監聽器-察看結果樹,點選執行,檢視執行結果

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