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


概述&目的

由於中心項目過多,但所有項目特點是持續時間長,變更少,所以易於做CI(持續集成)的build和test,持續檢查每個項目軟件的健康狀況。但前期做持續集成遇到一些問題,在持續集成軟件本身Jenkins設計上出現問題:是由於不同項目(版本分支)過多導致Jenkins環境設置過多,所以需要重新考慮一套有利於測試和項目上的持續集成環境的框架,此設計供大家討論。

方案

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

目前公司持續集成的測試分類很多,不同的人員都有登錄master主機的權限,可能會導致誤操作或者修改,影響jenkins執行過程和和結果。

應對方案

使用一台服務器作為Jenkinsmaster,其余項目均應用在節點機子上,從而節省維護多個Jenkins 的成本,只需要維護主機上的Jenkins配置和插件等,從機器也只需要安裝主機上的節點jar包即可,詳情設計如下:

設置和應用 Jenkins

  • 確認服務器環境(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框架的方案。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM