1. 程式人生 > >ETL 自動化測試框架

ETL 自動化測試框架

線程 做的 ase test 發送請求 all 自動化測試框架 通過 mon

分享個自己最近在做的自動化測試框架架構圖。
數據的測試,入口一般定時任務。可添加參數選擇執行任務的範圍,也可以選擇默認的執行範圍。驗證測試的為etl測試、數據庫中的字段校驗(通過對應關系、接口或者SQL校驗)。

技術分享圖片

工具類

  • 數據庫工具類:定義一些數據庫相關的操作,主要為操作MySQL。自定義了一些增刪改查操作,簡化SQL;
  • 消息相關工具類:發消息的工具類;
  • 定時任務工具類:暫時使用selenium操作web進行,後續將改成Call jar包的形式,因為公司內部定時任務不支持python;
  • 發送請求工具類:比較簡單,get、post等方法的發請求操作;
  • 斷言工具類:自定義一些特殊的斷言,包括排序、轉換數據格式和字符等;
  • 其他工具類:發郵件、寫日誌等;

核心業務框架

  • 基礎類層:定義了基礎類和一些常規配置項,以便test case可以方便集成;做數據準備工作,包括環境檢查腳本和數據準備腳本;以及在所有測試結束後,恢復之前被破壞掉的數據;在測試因中斷(error或不明原因中斷)後,保持問題現場,並保留恢復初始數據的手段;
  • 類、對象定義層:將所有用到的接口、庫和字段封裝成類和對象;自定義一些異常類型;
  • 業務關系對應定義層:將驗證規則定義到這一層。定義每個對象的驗證規則:對象->對象、對象->SQL、對象->接口返回的json;
  • test case層:定義測試用例,寫入具體的業務邏輯,封裝成test case;
  • test suite/test case對應定義層:組織需要執行測試的test suite,分別支持組執行、正則匹配執行、全部用例執行;支持從外部的web頁進行設置;
  • 測試報告生成器:在全部測試執行完成、或者執行中斷後,發送測試報告郵件給自定義的接受者。

配置文件

  • 多線程執行配置文件:是否使用多線程的執行方式對case執行加速, 並設置線程數;

外圍系統/工具

    • 環境檢查腳本:在執行測試之前,檢查環境是否符合測試開始要求;
    • 數據準備腳本:備份執行前的數據,以便後續恢復;註入特定/隨機的測試數據;
    • 數據恢復腳本:將備份數據進行恢復;
    • mock平臺:模擬接口返回,方便構造一些特定的數據;架構為flask+mongodb;
    • test suite配置頁面:在外部配置頁中,配置需要執行的case;
    • 數據庫:使用MySQL

ETL 自動化測試框架