持续集成实战 —— Jenkins自动化测试环境搭建
閱讀目錄
- 1.目的
- 2.說明
- 3.項目描述&事前準備
- 4.環境介紹
- 5.服務基礎配置
- 5.1 J-Server
- 5.2 S-Server
- 6. Jenkins自動化任務配置與部署
- 6.1 節點創建
- 6.2 啟動并同步節點
- 6.3 自動化任務創建
- 6.4 自動化任務配置
- 6.5 自動化任務運行
1.目的
在日常的項目測試過程中,搭建與維護測試環境是廣大測試同學的一個基礎技能,相信也很少會有公司完全不讓測試去碰自己的測試環境。那么工作中大量的創建、部署、管理、維護等一系列的重復操作就成為了整個測試項目中一個巨大的工作量。
?
面對這樣一種普遍的情況,Jenkins作為持續集成的良好解決方案就可以很好的解決以上的這些問題。對于一些重復的搭建部署操作都可以通過Jenkins來進行自動化完成,無需任何人工干預,有利于減少重復過程以節省時間、費用和工作量,讓測試同學騰出更多的時間與精力來關注并著眼于其他的重要測試環節。
?
?
2.說明
1.此筆記的中所使用的操作系統為CentOS7.9,筆記中所涉及的軟件版本有可能會因為時間的推移而導致不匹配或其他額外的操作,請大家有針對性的選擇閱讀與參考。
2.此筆記中的所有操作均基于root用戶進行,其他用戶如無權限請自行搜索(linux的基礎操作這里不展開討論),友情提示:即使有權限,也千萬別在公司相關生產環境內試驗探索哦。
3.本次實戰中使用的是我們公司相關的業務項目,其中的代碼與產品界面會做相關的脫敏操作。
?
?
3.項目描述&事前準備
1.文中產品項目為微服務架構,其他無關服務都已被簡化省略,僅展示部分模塊。
2.原有服務已簡化,將服務器獨立分為Jenkins服務器與業務服務器,不展示多余集群與節點,只需準備兩臺服務器即可(真機、虛擬機隨意)
3.本文的主題是介紹Jenkins在持續集成中的使用方式,開發環境與所用到的軟件版本可以任意指定,功能沒有太大的區別,也不會影響使用。(文中使用的軟件可以任意替換,任何的技術棧都可以,Jenkins除外)
?
?
4.環境介紹
服務器分為兩臺,Jenkins應用服務器與業務服務器,以下簡稱J-Server與S-Server。本文使用CentOS,J-Server中安裝Jenkins即可,S-Server安裝Java、Tomcat、Maven、Git即可。(這里的技術棧可以根據各自公司的業務與產品來進行隨意調整,我們的項目內也有很多組合,只選取市面上最常見的來講解)
?
?
5.服務基礎配置
5.1 J-Server
服務器內的Jenkins安裝與配置請參看之前的文章:
【Jenkins使用手冊(1) —— 軟件安裝】
【Jenkins使用手冊(2) —— 軟件配置】
?
?
5.2 S-Server
業務服務器內的軟件安裝請自行網絡搜索,網上有很多優秀的教程供大家參考。這里需要介紹的是一些重要的配置操作。
?
1.這里為了方便Git與Server之間進行安全的項目源代碼的安全傳輸操作,我們需要在服務器中進行設置。
在Git安裝完之后使用以下命令進行Git的全局配置
git config --global user.name "你的用戶名" git config --global user.email "你的郵箱"使用ssh-keygen命令進行密鑰的生成
ssh-keygen -C 郵箱 -t rsa?
這里會詢問你要創建的密鑰的文件名,默認名字的話就直接回車
?
接下來詢問是否要為密鑰設定密碼,默認回車跳過
?
完成之后在用戶的主目錄中會有一個影藏文件夾.ssh
進入后查看剛才的密鑰是否生成正確
后綴名.pbu的是公鑰
?
然后我們進入這個公鑰文件,將文件里的內容復制出來
?
2.在GitHub中點擊設置,選擇SSH and GPG keys
?
創建一個新的SSH key
Title輸入你自定義的名字即可
Key輸入剛才在公鑰中復制的那一串字符
確定添加
?
確認添加成功后Git與SSH密鑰配置完成
?
?
6. Jenkins自動化任務配置與部署
6.1 節點創建
在Jenkins工作臺中選擇系統管理 > 節點管理
?
選擇新建節點
?
節點名稱輸入你指定的名稱即可
如果是全新節點的話可選擇固定節點
點擊創建
?
遠程工作目錄指的是S-Server上將執行自動化任務的路徑位置
?
啟動方式選擇Launch agents via SSH
主機填入對應的S-Server的IP
憑證填入對應的S-Server登錄用戶名和密碼(新建憑證看下面的操作)
主機密鑰驗證策略可以選擇Non verifying Verification Strategy
?
沒有憑證的話點擊添加,選擇Jenkins
?
其他選項不動,輸入用戶名和密碼保存即可,之后在Credentials
下拉框里直接選擇即可
?
6.2 啟動并同步節點
添加完成后點擊對應的節點名稱,進入節點
?
點擊重啟代理
?
啟動完成后,日志提示啟動成功后返回列表查看節點狀態,顯示同步則表示節點啟動成功
?
?
6.3 自動化任務創建
點擊節點后選擇新建任務
?
輸入自定義的任務名稱并選擇構建自由風格的軟件項目
確定添加
?
?
6.4 自動化任務配置
描述中輸入任務相關的一些說明(非必須),這里還是推薦大家填寫一下,很多必備的信息甚至備注都可以放在里面,方便其他測試人員快速的對任務有一個了解。
?
如果每個節點內的環境不是集群或業務有所不同的話還是建議勾上限“制項目的運行節點”的選項,并指定對應的服務節點。
?
在源碼管理中選擇Git
?
這里在倉庫URL中輸入項目的源代碼下載地址,基于之前已經添加過SSH key了,下載的方式就在Git上選擇SSH。在此之前大家記得把自己的項目或產品源代碼push至對應的Git倉庫并保證S-Sever可以clone代碼至本地。
(這里根據自己公司的業務來進行選擇,無論是公有倉庫還是私有倉庫,云還是私有化部署的倉庫)
另外如果是第一次在新任務中創建倉庫URL,記得在下面多創建一次倉庫URL
?
憑證之前已經添加過了,直接選擇S-Server的賬密記錄即可
?
這里選擇源代碼在Git上所對應的分支,默認為master分支,我的項目源代碼在main分支上,這邊就輸入*/main
?
在擴展行為中選擇新增
?
選擇“檢出到子目錄”,英文選項(check out to a sub-directory)
?
輸入自己定義的子目錄名字即可
在構建中選擇增加構建步驟,選擇執行shell
?
自動化任務的流程示意圖
?
基于以上的技術棧,我們執行以下shell命令
?
方便Jenkins進行后臺運行
BUILD_ID=dontkillme設置兩個全局變量,第一個可以返回工作目錄所在位置,也就是剛才Jenkins中設置的遠程目錄;第二個可以返回Tomcat的安裝位置,方便后續腳本內的Tomcat相關服務的操作。
export WORK_PATH=`pwd` export TOMCAT_PATH=`S-Server內的tomcat安裝路徑` sh $WORK_PATH/build.sh?
?
6.5 自動化任務運行
點擊保存后,點擊任務名
?
進入后點擊左側的立即構建
?
點擊任務隊列中對應的任務
?
選擇控制臺輸出或直接查看狀態圖標
?
最后顯示Finished: SUCCESS 就表示構建成功了
?
至此一個測試環境就通過Jenkins的自動任務構建完成了,大家可以通過對應的服務IP和端口進行訪問驗證。
以上只是展示了如何通過Jenkins來進行測試環境的快速自動化搭建,后續會對實戰中的一些細節來進行講解。
總結
以上是生活随笔為你收集整理的持续集成实战 —— Jenkins自动化测试环境搭建的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RF 执行测试用例
- 下一篇: 七周学会数据分析|良心教程 第二周