1. 程式人生 > >分享個最近在做的自動化測試框架

分享個最近在做的自動化測試框架

分享個自己最近在做的自動化測試框架架構圖。
資料的測試,入口一般定時任務。可新增引數選擇執行任務的範圍,也可以選擇預設的執行範圍。驗證測試的為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