前言
隨着測試技術的發展,接口自動化測試逐漸成為各大公司投入產出比最高的測試技術。介入時間早,執行效率高,穩定性高的優點,讓越來越多的公司引入接口自動化測試。
框架簡介
APIAutoTest是處理API接口的輕量級自動化測試框架,Java語言實現,基於TestNG測試框架,支持持續集成,自動構建與測試。
框架介紹
1. 數據驅動設計,使用TestNG中的@DataProvider讀取Excel中存儲的自動化測試用例。
2. 基於TestNG測試框架
3. 使用HttpClient發送Http請求,並統一接口response返回值為String
4. 使用fastJson和Jsoup進行數據解析,由於請求返回值的統一,解析數據異常方便,方便接入不同接口類型的數據
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等等,但是這些通用的工具的可擴展性以及跟項目的契合度上並不是十分合適。框架的作用在於使測試腳本編寫變得簡單,增強測試腳本的可維護性,容錯率等,提高測試腳本的編寫效率,從而提高測試效率。
這篇文章主要介紹APIAutoTest框架的構成以及設計理念,為整個系列的開篇,在接下來的時間,會陸續分享框架的細節實現,還請繼續關注。對於測試相關內容的交流,歡迎關注我的公眾號:山丘的測試之道