分享個本身最近在作的自動化測試框架架構圖。
數據的測試,入口通常定時任務。可添加參數選擇執行任務的範圍,也能夠選擇默認的執行範圍。驗證測試的爲etl測試、數據庫中的字段校驗(經過對應關係、接口或者SQL校驗)。python
工具類
- 數據庫工具類:定義一些數據庫相關的操做,主要爲操做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