5、執行case。同本地單機版。
6、推送報告。
這里hadoop還會根據每個map任務的返回值,來進行重試運行的調度。
從以上的描述可以看到,在hadoop集群節點機器上(tasktracker),測試執行的邏輯和單機版基本無差別,所以整個改造的過程也是比較簡單的
2.4 分布式測試集群架構設計
整個分布式測試執行依托于一個公共的計算集群,這個計算集群由兩部分組成,一部分是hadoop相關的,包括hadoop的總控,子節點的 tasktracker服務。另外一部分就是公共環境,包括測試框架,公共工具例如valgrind等。前者通過jobtracker來管理,后者通過統一運維系統來管理,其功能基本就是公共環境的安裝和維護。
3 收益
經過我們的實際項目實踐,這部分的收益主要體現在如下兩點:
1、測試執行時間大幅優化。15臺機器的情況,所有原測試執行時間要1-2小時的模塊,優化到10分鐘以內。
2、機器資源的節省。通過公共集群的維護,保證所有機器cpu滿負荷運作,避免了以往單機測試執行的cpu浪費。
4 準入原則及發展方向
4.1 分布式改造的準入原則
并不是所有的測試執行都可以分布式化,在我們的實際操作過程中,總結出以下幾點準入原則,供參考:
1、空白機器可運行。通過一個總控腳本就可以做到依賴環境準備,lib庫安裝,測試case執行等。
2、測試框架允許case并行。
3、業務層case對外部不存在固定依賴,例如依賴于某個寫死的目錄。
4、業務層case依賴的server端口,最好是隨機的。
5、不允許業務層去操作公共環境。
4.2 后續可能的技術方向
1、case按照執行時間切分。按照時間切分來替代按照case數切分。
2、從分布式測試執行過渡到云測試服務。
原文轉自:http://www.anti-gravitydesign.com