1. 程式人生 > 其它 >【質量工具】 某專案Jenkins工具的最佳實踐

【質量工具】 某專案Jenkins工具的最佳實踐

1.   Jenkins的介紹

     Jenkins是一個開源的、提供友好操作介面的持續整合(CI)工具,起源於Hudson(Hudson是商用的),主要用於持續、自動的構建/測試軟體專案、監控外部任務的執行。Jenkins用Java語言編寫,可在Tomcat等流行的servlet容器中執行,也可獨立執行,關於 Jenkins的相關材料網上也比較多,大家可以搜尋學習瞭解。本次分享主要介紹下咪咕專案團隊藉助Jenkins持續整合工具形成了一套行之有效的方法:實現了程式碼自動編譯釋出、單元測試自動執行、靜態程式碼質量分析、自動化功能測試等,為某專案敏捷管理提供了基礎保障。

2

、Jenkins的專案實踐

 

   2.1 自動化部署:Jenkins+git+maven

某專案有多個團隊組成,每個團隊配置1~3名測試人員。基於和網際網路大環境接軌的業務需要,選擇jenkins+git+maven,可以幫助我們快速應對spring cloud架構下,每個專案下三位數的微服務的持續整合,助力開發環境、測試環境、準生產環境以及生產環境的無縫結合,縮短業務釋出的時間,幫助測試人員將更多的時間和精力投入在功能,效能,自動化等等工作中,關於使用Jenkins進行自動化部署的簡單配置步驟如下:

               1)建立一個自由風格專案,如下圖;

                

 

              2)選擇引數化構建過程,新增SERVER_NAME 和 BRANCH_NANE 選項,如下圖:
                

 

                3)增加構建步驟,編寫Execute shell指令碼,如下圖,具體指令碼可以參考附件。

            

               4)配置完成結果展示如下:
                
   2.2 程式碼單元測試覆蓋率:Jenkins+JaCoCo+sonarqube

  通過Jenkins觸發單元測試任務執行,並使用JaCoCo外掛來統計單元測試用例覆蓋率,並生成檔案在sonarqube中展示。幫助團隊及時掌握程式碼單元測試與質量情況,簡單配置步驟如下,詳細可以參考附件。 

2.2.1部署:jenkins+JaCoCo

 

        1)、在工程中的pom檔案新增 JUNT 和 jacoco外掛依賴 ,用JUNT 編寫完測試類之後,程式碼上傳到 git 倉庫。

                  

              2)、在Jenkins頁面 , 對工程中的程式碼進行程式碼編譯並test,使用帶這個引數的命令列進行構建。

                 

 

 2.2.2展示:sonarqube

         SonarQube是一個用於程式碼質量管理的開源平臺,用於管理原始碼質量, 且展示不同工程的覆蓋率,詳細可參考網路上的安裝手冊。

                  

           選擇其中一個工程目錄點選,跳轉的頁面會詳細顯示該工程中覆蓋率資訊。

                  

   2.3自動化測試:Jenkins+robotframework

  

  某專案迭代週期短,版本多,環境多,人力少,迴歸測試是測試人員的一項重要工作,專案採用了robotframework自動化測試框架整合到Jenkins進行版本日常回歸可以有效提升基礎功能驗證的正確率,減少每次版本釋出在基礎功能驗證上的時間和人力投入。

 2.3.1 robotframework

        Robot Framework是一個基於Python的,可擴充套件的關鍵字驅動的測試自動化框架,用於端到端驗收測試和驗收測試驅動開發(ATDD)。它可用於測試分散式異構應用程式,相關架構如下,具體安裝與配置可以到網上搜索資料進行參考。

                      

       2.3.2 進行Jenkins配置

     

                  新建執行任務,配置任務資訊。配置資訊包括原始碼管理、觸發器、構建步驟、構建步驟後操作資訊。

               

              1)原始碼管理:配置RF自動化指令碼下載路徑。(注:使用git需提前安裝Git client plugin 和 Git plugin外掛)

                  

             2)構建觸發器:設定定時任務執行規則,如下圖;

                      

    
              3)構建:配置執行密令和執行指令碼路徑(注:目錄層級儘量避免中文、下劃線等),如下圖:

                  

             4)構建步驟後操作:

                 Publishes Robot Framework test results配置:設定任務執行報告路徑及設定執行結果是否通過閾值範圍,如下圖

                


                Editable Email Notification配置:設定任務結果通知責任人郵箱及郵件內容,如下圖

                

        2.3.3 結果展示

     

                選擇待發布的子專案進行構建,待構建完成後,可在jenkins查詢測試指令碼通過率。詳細執行報告以郵件的方式通知相關責任人;

                

    

                 

關於Jenkins在專案中的幾個場景的使用,步驟及其使用由於篇幅原因沒有詳細介紹,有需要的可以直接聯絡作者進行線下交流。