如何搭建分布式測試執行系統

發表于:2014-09-28來源:uml.org.cn作者:不詳點擊數: 標簽:分布式
隨著一個產品的自動化工作不斷深入,自動化的case積累數量持續增長,絕大部分毫無依賴關系的case由于串行運行,測試執行時間達到小時界別,且不易于優化。另外,ci運行時所需機器

  1 相關說明

  1.1 背景簡介

  隨著一個產品的自動化工作不斷深入,自動化的case積累數量持續增長,絕大部分毫無依賴關系的case由于串行運行,測試執行時間達到小時界別,且不易于優化。另外,ci運行時所需機器資源的搶占互斥,運行機器的不穩定等問題也逐漸擴大。

  Hadoop分布式測試執行方案正是為了解決以上問題而產生,通過分布式執行,可以達到并行運行,提高執行效率的目的;另外,hadoop提供調度,重試等機制功能,可以提供給用戶一個相對透明的計算資源池,減少用戶對機器運行環境的依賴。

  1.2 分布式平臺的選擇

  本方案采用hadoop來作為分布式平臺。首先是Hadoop是一個開源項目,有非常好的技術支持,二就是hadoop有成熟的分布式調度算法,可以很好的利用每臺機器的cpu和內存資源,達到計算資源最優分配,三就是hadoop程序易于編寫,便于維護。

  1.3 名詞解釋

 ?。篴pache基金會的開源分布式框架。

  Mapreduce :hadoop的計算模型,由map任務和reduce任務組成。

  Jobtracker :hadoop計算系統的總控。

  Tasktracker :hadoop計算系統的子節點。

  Slot(槽位) :tasktracker的最小計算分配單元,一個槽位可以對應一個map任務,一個機器啟動一個tasktracker,槽位的話按照機器的cpu核數來分配,一般是”核數-1”。

  2 分布式測試執行方案

  2.1 傳統的單機測試執行流程

  一般的單機測試流程分為5步,如下圖所示:

  1、lib庫安裝。包括測試框架的lib庫安裝以及基于該測試框架的產品業務層lib。

  2、測試環境安裝。主要指被測對象的測試環境安裝,包括數據庫安裝,server端安裝等。

  3、case下載。從svn或者case庫獲取需要執行的case。

  4、case運行。

  5、發送報告。

  單機測試執行的優點在于邏輯簡單,易于實現,缺點就是case要串行執行,無法有效里有機器的cpu和內存資源。舉個例子,現在有一個8核16G的測試機,每個case的平均cpu使用率為10%,內存消耗1G,在這樣的情況,一般可以做到至少6個case并行化,優化效率是不言而喻的。

  2.2 從單機測試到分布式測試執行的邏輯

  有了以上的五個步驟及相關分析,我們考慮其中可以并行執行來進行優化的就是測試執行這塊了,其他lib庫安裝,測試環境安裝等都基本是最小單元,不易切分了。

  所以從單機到分布式主要是Case執行集合的一個拆分。所以簡單說,單機和分布式的區別就是case輸入集合有變“而已,其他單機的測試執行過程基本不變。對于測試工程師來說,這個過程是透明的,只是執行case的環境從單機切換到多機。

  下圖簡要的表示了case從單機到多機的變化(6位的數字是caseid)。

  2.3 分布式運行邏輯

  這里的邏輯主要是兩塊,一部分是本地部分,一部分是分布式節點機器部分。我們將分布式測試執行過程封裝到一個hadoop job里。

  本地部分:

  1、獲取計算資源。這里的計算資源指可用的tasktracker的槽位數,這個槽位是case切分的分母。

  2、根據計算資源生成case列表。有了槽位數,最簡單的切分算法就是:每節點case數=總case數/槽位數。

  3、業務層自定義操作。例如業務層測試執行時需要的程序或者配置獲取,依賴的大數據推送到hdfs等。

  4、配置hadoop的job。包括input,output,執行job所需的文件或者tar包等。這里的input就是case列表。

  5、執行測試執行job。這個實際是個hadoop job。

  6、發送報告。匯總每個節點的運行結果,并發出報告。

  每個tasktracker的map任務輸入是切分后的case列表,通過這種方式將整個測試執行部分分發到每個tasktracker上。

  節點部分:

  1、準備case列表。從map的input獲取。

  2、根據case列表下載case。,這里類似于本地單機版的case獲取,來源仍然是SVN或者CASE庫。

  3、安裝lib庫。同本地單機版。

  4、安裝測試環境。同本地單機版。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97