JMeter-接口自動化測試之數據驅動
- 2020 年 3 月 5 日
- 筆記
前言
之前我們的用例數據都是配置在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 一個個去單獨修改用例了。