大家好,我叫董鑫,一個在測試開發道路上的新手,之前一直從事手工功能測試,前段時間抽空又溫習了一遍老師全棧測開訓練營中自動化測試、CICD的知識,最近公司正好有一個項目可以實踐練手,趁熱打鐵,將自動化測試腳本接入到Jenkins中,在這里做個簡單分享,同時也是自我的小結。若有不對的地方,還請各位同行,同學,老師及時指正。
1. 背景
本地實現了自動化腳本之后,公司需要統一管理和定時構建執行。所以接到了使用Jenkins來做持續集成管理的任務。下面開始我一步步構建的過程。
當時公司運維的同學已經搭建了jenkins的環境,我們從創建job開始。
1.1 創建job
點擊“新建Item”
輸入名稱(建議不要帶“+”這類的字符),選擇自由風格的類型(紅框標注的),點擊確定。
填寫一般信息,這里我只用到了保存構建天數和構建最大個數。
增加構建步驟,由於我們是在windows系統上執行命令,所以選擇我選擇Execute Windows batch command。
命令框中輸入你要執行的指令,這里的指令就是你本地執行使用的指令。
點擊保存。這樣一個簡單的job就創建好了。可以點擊build now按鈕可以立刻開始構建。
這樣就結束了嗎?當然不是。領導提出我們的腳本需要使用公司的gitlab來管理,不可能手動復制過來。這樣我們的job就需要改造。
1.2 改造一:增加git能力
在創建的job中的源碼管理選擇git,填寫我們自動化腳本的倉庫地址,以及拉取的賬號密碼信息和分支名稱。如下面顯示:
每次寫完腳本提交到倉庫,然后在Jenkins上點擊構建,這樣就可以自動去拉取最新代碼下來執行測試了。
這樣改造之后擁有了git的能力,那我們也需要想想,這樣持續集成之后領導想要看到什么,最起碼需要直接看到測試結果和報告吧,所有還需要接着改造,加入報告的能力。
1.3 改造二:加入直接查看報告的能力
在本地執行時,我們是allure可執行文件來生成報告,那集成到Jenkins,我們需要先安裝allure的插件
- 在插件管理中搜索alluer插件進行安裝
- 在全局工具中配置allure相關
然后繼續改造job,在構建后的操作中添加allure報告的信息。
這樣之后,我們就可以在構建后,在Jenkins上直接查看執行后的報告了。
這樣使用之后,感覺還是差點東西,差什么呢,因為用例很多,每次構建的時間都很長,這就導致我無法知道什么時候結束,來第一時間查看結果並反饋執行情況。所以我們還需要繼續改造,加入通知的能力。
1.4 改造三:增加通知的能力
在和項目組溝通后,確定了兩種方式的通知,企業微信通知郵件通知。
研究一番之后,發現,Jenkins使用插件來實現企業微信通知,只能顯示少量的信息(如:開始時間),並不能達到我們想的顯示大致的執行結果的能力,所以這部分,我就直接使用python腳本來實現了,不使用Jenkins。
這里就不做詳細說明了,大致的思路是:解析執行生成的xml文件來獲取執行結果信息,然后按照企業微信機器人的方式來通知。附上一張我調試的效果圖:
雖然企業微信通知沒有使用Jenkins,但是郵件的通知,Jenkins還是很好用的,我們用Jenkins來進行郵件的通知發送,接着改造job。
在構建后的操作中添加Editable Email Notfication,填寫發送郵件的信息。
這樣改造之后,我們也擁有了通知的能力。
這時候領導又提要求了,現在想晚上使用腳本來巡檢,早上查看結果。這樣不可能每天晚上登錄Jenkins來構建,所以我們需要繼續改造,加入定時構建的能力。
1.5 改造四:增加定時構建
在job的構建觸發器中選擇Build periodically
H 2 * * 1,2,3,4,5表示周一到周五每天凌晨2點左右開始構建,填寫后,可以查看到下面顯示的下次構建的時間
這樣改造之后,每天晚上就自動構建了。
到這里我們就擁有了git,查看報告,郵件通知,定時構建的能力。
這個時候運維的小伙伴又提要求了,給我們自動化測試分配了一台服務器,讓我們在那台設備上測試,不想和開發發布的混在一起。
1.6 改造五:指定節點運行
我們需要在指定節點構建,通過Jenkins來調度。這樣我還需要接着改造了。
1. 添加節點
進入系統管理(configuer system)》管理節點(manage nodes and clouds),點擊新增節點。
注意:節點的標簽不要用中文
再配置節點屬性和工具
如果啟動方式沒有上方選擇的選項,需要到全局安全配置中勾選如圖的地方:
2. 連接節點
新增的節點是沒有連接Jenkins服務的,需要啟動一個agent來主動連接到服務。
按照如下步驟來操作:
到從節點(執行機)上登錄Jenkins,點擊剛剛添加的節點中,會如下圖顯示
點擊紅框標記的圖標,會下載下來一個文件
雙擊打開下載的文件,會顯示一個小窗口,自動連接(需要jdk環境)
連接后會添加到執行機的服務中運行,之后不用再操作。
注意:如果連接提示失敗,可能是端口沒有開放,配置時選擇的隨機生成端口,如果連接提示端口沒有打開,將Jenkins所在的服務器上剛使用的端口打開即可。
- 改造job,配置使用執行的節點
在一般信息中勾選限制項目的運行節點,填寫我們添加的節點的標簽。
到此,我們的job改造就全部完成了。
2. 總結
通過以上操作,就完成了自動化測試使用jenkins來構建管理。從接到任務到一步步搭建完成,中間也遇到了很多坑,通過老師課程的學習以及指導,最終完成了搭建。
有幸得到這次機會將自己的經歷分享出來,也給自己做了一次總結。這次理論與實踐的結合也讓我對Jenkins的使用有了更加深刻的理解。當然這只是一次小小的實踐,還有很多要學習的。在測試進階的道路上,不斷的知識儲備才是最重要的。