大家好,我叫董鑫,一個在測試開發道路上的新手,之前一直從事手工功能測試,前段時間抽空又溫習了一遍老師全棧測開訓練營中自動化測試、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的使用有了更加深刻的理解。當然這只是一次小小的實踐,還有很多要學習的。在測試進階的道路上,不斷的知識儲備才是最重要的。