Jenkins 使用slave管理進行持續集成測試說明

概述&目的linux

因爲中心項目過多,但全部項目特色是持續時間長,變動少,因此易於作CI(持續集成)的build和test,持續檢查每一個項目軟件的健康情況。但前期作持續集成遇到一些問題,在持續集成軟件自己Jenkins設計上出現問題:是因爲不一樣項目(版本分支)過多致使Jenkins環境設置過多,因此須要從新考慮一套有利於測試和項目上的持續集成環境的框架,此設計供你們討論。sql

方案windows

針對項目過多和Jenkins分支過多不善於管理,每一個項目都登陸jenkins進行操做,沒有多線的感念,管理混亂,從而分析了其中問題從而整理了對於此Jenkins框架的方案。 安全

目前公司持續集成的測試分類不少,不一樣的人員都有登陸master主機的權限,可能會致使誤操做或者修改,影響jenkins執行過程和和結果。服務器

應對方案app

使用一臺服務器做爲Jenkinsmaster,其他項目均應用在節點機子上,從而節省維護多個Jenkins 的成本,只須要維護主機上的Jenkins配置和插件等,從機器也只須要安裝主機上的節點jar包便可,詳情設計以下:框架

設置和應用 Jenkins ide

  • 確認服務器環境(windows,linux)
  • 確認維護項目(NDS,拿鐵等)
  • 確認項目負責人(開發,測試)主要由測試去維護,詳情請見4章框架

設置主從機器工具

  • 準備一臺配置較好服務器做爲 Jenkins master,主機能夠作hosts映射,局域網內用域名維護。
  • 準備從機器,在主機(Jenkins master)上設置節點(slave),不一樣的項目應用不一樣的節點,節點命名規則:姓名簡拼+服務器後綴IP+項目名稱,例如從機器的IP10.38.29.101.維護的項目NDS,維護者謝超,節點名稱與標籤則爲:XC101NDS
  • 工程目錄設置在從機器上,由於涉及數據測試過多,從而也節省主機的硬盤消耗。
  • 權限分配,不一樣user只能訪問本身的在主機上Jenkins project的配置,但會有admin帳號管理全部的Jenkins project,遊客(未登陸者)只能夠瀏覽測試結果(全部項目的)
  • 測試過程監控,製做sql數據,保存每次測試記錄和結果,好比記錄字段爲:ID、項目名稱、啓動本來因、啓動者、測試結果等,其他的待完善TBD

流程測試

此流程附帶開發交付階段(紅框內),不考慮開發部署也能夠。標準流程以下:

 

  • 獲取軟件/工具等
  • 運行自動化測試
  • 發送測試報告

開發流程被置灰了,將來若是測試部署也可考慮。

 

項目 1

 

從代碼管理工具上(aligi,SVN)t上獲取branch/trunk的代碼。

 

項目 2

 

檢查項目 1 中下載的源代碼是否有安全性等問題,運行開發檢查測試。

 

項目 3

 

檢查項目完成後,構建工做開始。

 

項目 4

 

成功構建完成後,是在構建驗證測試(Build Verification TestBVT)環境中安裝該構建版本。在 BVT 環境中運行 BVT 測試案例。若是 BVT 測試成功經過,能夠輸出到開發或者測試應用服務器

 

項目 5

 

測試可經過successful郵件或者測試本身的jenkins去獲取開發對應的輸出軟件/工具,此留也能夠做爲測試的流程1,製做測試本身的測試環境Jenkins

 

項目 6

 

在測試環境中下載開發版本。應用軟件/工具後,Jenkins 會觸發項目 7,以便運行功能驗證測試(Functional Verification TestFVT)。

 

項目 7

FVT 是一個自動測試列表,其中包括不少測試:校驗,檢查,統計等。FVT 測試經過後,會發送測試經過郵件,相似一封Successful的郵件,告知相關人員。 

下圖1則是顯示了總體流程。若該項目成功完成後,會觸發開始下一個項目。若是項目失敗,那麼流程將會結束並向相關人員發送電子郵件。

持續構建框架的拓撲結構

  • 2 的左側顯示了開發組部署服務器和Jenkins
  • 2的右側展現了測試組持續集成測試構建框架,添加 Jenkins 之後,會有一個 Jenkins 主機器。構建工具和插件已安裝在該服務器上。不一樣的項目對應着不一樣的Jenkins 代理(節點)--不一樣的節點對應着不一樣的slave服務器,不一樣的slave服務器又有不一樣的Tester去維護,固然全部的Tester也能夠訪問主機上的Jenkins Master進行project配置。工做動做在從機器上運行,FVT 項目在 Jenkins 主機器上運行。全部測試環境都做爲 Jenkins 從機器提供服務。它們由 Jenkins 主機器控制,並運行安裝項目。測試環境則運行功能驗證。
  • 再將不一樣項目與不一樣從服務器綁定,就能更輕鬆地跟蹤各類任務,由於不一樣的機器擁有不一樣的角色。

結束語

 

這樣作持續集成會幫助測試和開發自動部署和測試的各類工做,從而節約其寶貴的時間。該框架還能幫助你們儘早發現流程中的任何問題或缺陷,優點以下:

1.      減小多項目的溝通成本,可讓組內人員看到其餘人員在作的項目

2.      利於維護、跟蹤

3.      方便管理,減小配置環境成本

 

 

 

 

 

 

 

 

 

針對項目過多和Jenkins分支過多不善於管理,分析了其中問題從而整理了對於此Jenkins框架的方案。

相關文章
相關標籤/搜索