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 一個個去單獨修改用例了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM