基於java介面自動化框架
阿新 • • 發佈:2019-01-22
框架簡介
APIAutoTest是處理API介面的輕量級自動化測試框架,Java語言實現,基於TestNG測試框架,支援持續整合,自動構建與測試。框架介紹
- 資料驅動設計,使用TestNG中的@DataProvider讀取Excel中儲存的自動化測試用例
- 基於TestNG測試框架
- 使用HttpClient傳送Http請求,並統一介面response返回值為String
- 使用fastJson和Jsoup進行資料解析,由於請求返回值的統一,解析資料異常方便,方便接入不同介面型別的資料
- 獨立封裝的檢查點“Jsonpath”檢查點,極大方便檢查點的設定
- 線上報告以及Email報告
- 持續整合、持續交付、自動構建與測試
- mock環境
框架元件
- Maven進行專案、依賴管理
- HttpClient進行通訊
- TestNG測試框架管理測試指令碼以及測試驅動
- FastJson/Jsoup用於資料解析
- AssertJ用於檢查點設定
- ExtentReports輸出具備圖表分析的報告
- SVN+Jenkins實現持續整合
框架執行流程
測試執行的流程(程式碼層):
- 測試執行的入口為TestNG的XML檔案
- 獲取測試用例的指令碼,測試用例執行分為測試前(@BeforeTest),測試中(@Test),測試後(@AfterTest)
- @BeforeTest:獲取/解析測試資料(Excel檔案),介面關聯引數化,Cookie裝載等
- @Test:初始化httpclient物件,執行請求,獲取響應並轉換成String等
- @AfterTest:jsonpath檢查點,對於介面正確/錯誤請求的邏輯處理
- 生成線上ExtentReports報告/日誌
- Email報告,測試結果通知測試相關人員
用例設計管理
通過TestNG的@DataProvider獲取Excel測試資料
將資料的表頭與資料儲存在map中,具體使用時方便
jsonpathPoint:jsonpath檢查點,框架特點之一,極大的方便斷言的編寫
前後綴的使用:通過前後綴使用來區分統一作用的資料,如請求引數:params
是否執行/檢查控制:通過編寫測試用例時就可以控制該用例是否執行,是否檢查
不足之處:一個介面的測試資料對應一個Excel檔案/Sheet表,後期資料量太大