1. 程式人生 > >基於java介面自動化框架

基於java介面自動化框架

框架簡介

        APIAutoTest是處理API介面的輕量級自動化測試框架,Java語言實現,基於TestNG測試框架,支援持續整合,自動構建與測試。

框架介紹

  1. 資料驅動設計,使用TestNG中的@DataProvider讀取Excel中儲存的自動化測試用例
  2. 基於TestNG測試框架
  3. 使用HttpClient傳送Http請求,並統一介面response返回值為String
  4. 使用fastJson和Jsoup進行資料解析,由於請求返回值的統一,解析資料異常方便,方便接入不同介面型別的資料
  5. 獨立封裝的檢查點“Jsonpath”檢查點,極大方便檢查點的設定
  6. 線上報告以及Email報告
  7. 持續整合、持續交付、自動構建與測試
  8. 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表,後期資料量太大

總結

     介面自動化測試在這個追求效率的時代,逐漸的取代UI自動化測試,而做介面自動化測試的工具很多,比如soapUI,postman,jmeter等等,但是這些通用的工具的可擴充套件性以及跟專案的契合度上並不是十分合適。
框架的作用在於使測試指令碼編寫變得簡單,增強測試指令碼的可維護性,容錯率等,提高測試指令碼的編寫效率,從而提高測試效率。