前言json
隨着測試技術的發展,接口自動化測試逐漸成爲各大公司投入產出比最高的測試技術。介入時間早,執行效率高,穩定性高的優勢,讓愈來愈多的公司引入接口自動化測試。 框架
框架簡介ide
APIAutoTest是處理API接口的輕量級自動化測試框架,Java語言實現,基於TestNG測試框架,支持持續集成,自動構建與測試。工具
框架介紹post
1. 數據驅動設計,使用TestNG中的@DataProvider讀取Excel中存儲的自動化測試用例。測試
2. 基於TestNG測試框架jsonp
3. 使用HttpClient發送Http請求,並統一接口response返回值爲String設計
4. 使用fastJson和Jsoup進行數據解析,因爲請求返回值的統一,解析數據異常方便,方便接入不一樣接口類型的數據3d
5. 獨立封裝的檢查點「Jsonpath」檢查點,極大方便檢查點的設置日誌
6. 在線報告以及Email報告
7. 持續集成、持續交付、自動構建與測試
框架技術棧圖
框架組件圖
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表,後期數據量太大
測試報告
結語
接口自動化測試在這個追求效率的時代,逐漸的取代UI自動化測試,而作接口自動化測試的工具不少,好比soapUI,postman,jmeter等等,可是這些通用的工具的可擴展性以及跟項目的契合度上並非十分合適。框架的做用在於使測試腳本編寫變得簡單,加強測試腳本的可維護性,容錯率等,提升測試腳本的編寫效率,從而提升測試效率。