自動化必備:自動化持續集成環境搭建(上):git + maven + jenkins


前言

當前,自動化已經是測試必備技能之一了,除了要會設計、開發自動化測試框架,搭建自動化持續集成環境也是必須的,本篇,將演示如何搭建自動化持續集成環境;

因為大多數公司是java項目,所以,我在idea中使用springboot開發了幾個簡單的mock接口,接口自動化測試框架使用【接口自動化測試實戰】中實戰3的框架,代碼倉庫我用gitee演示,如果你的是github或者gitlab,也是可以的;

思路介紹

想必部分公司的情況是:開發先把代碼提交到代碼倉庫、測試再通過jenkins去拉取對應的分支、然后測試運行自動化測試框架執行測試腳本、最后查看報告。。。

可否開發提交了代碼,后續的任務都自動執行呢?當然是可以的,即:(docker版后續更新

  1、開發提交代碼

  2、jenkins自動從代碼倉庫(gitee)拉取對應分支的代碼

  3、自動打包

  4、自動部署

  5、自動從gitee拉取接口自動化測試框架及腳本

  6、自動執行測試腳本

  7、生成測試報告

  8、把報告發布在一個服務下大家通過瀏覽器訪問(也可以發送郵件);

下面就介紹這個流程的具體實現。

環境准備

安裝jdk、tomcat、jenkins、maven、git

  jdk:https://www.cnblogs.com/uncleyong/p/10732951.html

  tomcat:https://www.cnblogs.com/uncleyong/p/10742650.html

  jenkins:https://www.cnblogs.com/uncleyong/p/10742867.html

  maven:https://www.cnblogs.com/uncleyong/p/10743181.html

  git(務必源碼安裝git,yum安裝的版本低,會出問題):https://www.cnblogs.com/uncleyong/p/10767747.html

jenkins安裝插件

安裝gitee插件(因為我的代碼倉庫是gitee)

maven插件和git插件在安裝jenkins的時候已經自動安裝好了

maven插件

git插件

jenkins全局工具配置

系統管理→全局工具配置

git

 

 maven

 

 

 jdk

 

jenkins和gitee通訊方式

這里演示使用https,如果你要使用ssh,需要做配置,即提前將Jenkins所在服務器的key添加到gitee上,配置免密登錄

先生成秘鑰

把公鑰添加到gitee

詳細請參考:https://www.cnblogs.com/uncleyong/p/6891958.html

 

jenkins任務創建及配置

輸入任務名稱、選擇【創建一個maven項目】

 

源碼管理選擇Git、輸入遠程倉庫地址 

遠程倉庫地址獲取方式如下:

點擊添加→Jenkins

輸入gitee的賬號密碼

或者提前在下面通過賬號密碼添加,依次點擊【系統】--【全局憑據】

 

選擇類型為用戶名和密碼、輸入你自己gitee的用戶名和密碼 

 

如果是ssh方式,Private Key填寫Jenkins主機的root用戶私鑰(/root/.ssh/id_rsa),用戶是啟動tomcat服務的用戶,我是用root安裝、啟動的

選擇剛剛添加的認證、選擇master分支

構建

創建一個存放jar包的目錄

 

 構建成功執行shell腳本(里面部分命令是調試用的,可以自行刪除,比如:顯示當前路徑pwd)

 

 

 點擊【應用】、【保存】

 

現在沒項目服務

 

【立即構建】

 

失敗了

 

查看控制台輸出

 

 

 錯誤信息

解決方案:https://stackoverflow.com/questions/59763531/maven-dependencies-are-failing-with-501-error

上面提示,自2020年1月15日起,中央存儲庫不再支持通過純HTTP進行的不安全通信,並且要求對存儲庫的所有請求都通過HTTPS進行加密。

於是我們在構建過程中所依賴的settings文件中,加入以下配置:

內容

參考:https://www.cnblogs.com/flashfish/p/12202305.html

        <mirror>
                <id>central</id>
                <name>Maven Repository Switchboard</name>
                <url>https://repo1.maven.org/maven2/</url>
                <mirrorOf>central</mirrorOf>
        </mirror>

重新構建,構建成功

 

放jar包的目錄下可以看到已經有jar包,且服務也啟動起來了

瀏覽器訪問成功了

 

觸發構建項目

上面,是我們手動點擊構建后,jenkins去gitee拉取的代碼,這一小節,演示觸發構建,即開發提交代碼后就自動化拉取代碼、構建。。。

先把之前的服務停了,jar包刪了

點擊【配置】

 

構建觸發器,可以看到在Gitee webhook中要填寫的url

 

 點擊【生成】

生成密碼 

 

點擊【應用】、【保存】

 

 gitee中配置,在演示的java項目中,【管理】--【WebHooks】--【添加】

 

 填入上面jenkins中的url和密碼

 

上面點擊【添加】后,點擊下方【測試】

 

 可以看到,jenkins自動構建了

 

 構建成功

 

 服務也啟動起來了

瀏覽器訪問成功

 

下面我們模擬開發提交代碼

先把之前的服務停了,jar包刪了

我們將部門改為“持續集成部” 

 

add--commit--push代碼,另外,git基礎請參考:https://www.cnblogs.com/uncleyong/p/10854115.html

 

代碼倉庫可以看到更新

 

 

 jenkins自動構建

 

服務也啟動了

 

url訪問,可以看到部門變成了“持續集成部”

持續集成shell腳本優化

現在遺留的問題是,每次需要先手動停止服務、手動刪除jar包

我們可以寫一個簡單的shell腳本

內容如下(里面部分命令是調試用的,可以自行刪除,比如:顯示當前路徑pwd):

命令中,改為執行這個shell腳本

性別改為“女”

add--commit--push

 

自動構建成功

 

日志

服務啟動起來了

瀏覽器請求,性別顯示是“女”

 

下一篇,將集成自動化測試框架,自動運行測試腳本、生成測試報告、發布報告。

自動化必備:自動化持續集成環境搭建(下):git + maven + jenkins

https://www.cnblogs.com/uncleyong/p/12229900.html


免責聲明!

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



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