一,引入問題
-
自動化測試指令碼絕大部分用於迴歸測試,這就需要制定執行策略,如每天、程式碼更新後、專案上線前定時執行,才能達到最好的效果,這時就需要進行Jenkins整合。
-
不像web UI自動化測試可以使用無痕瀏覽器做到無介面,APP UI自動化需要用到真機或模擬器,在完全的linux環境下做Jenkins整合顯得不太可能。
-
可以在自己的工作電腦上搭建Jenkins,並執行APP UI自動化測試專案,但工作電腦關閉後就不能定時執行自動化專案,且工作的電腦還要用來做別的工作,這樣顯得極其不方便。
基於以上等原因,可以考慮向公司申請一臺專門用於做自動化測試的本地電腦,搭建好本地電腦的測試環境,連線真機或模擬器;在公司的測試伺服器上部署Jenkins,新建節點連線本地測試電腦,這樣就可以利用Jenkins設定策略定時在本地測試電腦上構建測試專案。
注意:之所以不直接在專門用於測試的電腦上直接搭建Jenkins,是因為可能除APP自動化專案外,還有web自動化、介面自動化或者其他整合專案,Jenkins搭建在遠端伺服器上方便對所有需要Jenkins構建的專案進行管理。
本篇部落格涉及的環境:遠端Jenkins版本2.176.3,本地電腦 Windows 10
二,搭建思路
1,搭建Jenkins
2,新建節點
3,配置節點
4,節點啟動代理
5,新建任務
6,配置任務(獲取最新程式碼、關聯從節點等)
7,除錯構建
三,具體步驟
1,搭建Jenkins
不多贅述,網上教程很多,大家自行查閱。也有很多公司的測試伺服器已經搭建好Jenkins,直接使用即可。注意,本部落格示例的Jenkins版本為2.176.3
2,新建節點
登入Jenkins --> Manage Jenkins --> Manage Nodes --> 新建節點,具體步驟如下:
點選確定後,會跳轉至節點配置頁面。
3,配置節點
3.1,按下圖中的說明進行配置,未進行說明的預設即可,再點選【儲存】按鈕。
注意:
-
遠端工作目錄,理論上可以填寫本地測試電腦裡的任意目錄路徑,但最好專門新建一個用於Jenkins工作的目錄。
-
我這裡的Jenkins版本為2.176.3,啟動方法中無 Launch agents Java Web Start 選項,網上查詢資料後進入Manage Jenkins --> Configure Global Security 進行如下設定
但啟動方法中仍然沒有展示"Launch agents Java Web Start"選項。但其實這裡選擇"Let Jenkins control this Windows slave as a Windows service"也是可行的。
3.2,點選儲存後,跳轉至Nodes頁面,出現如下節點
4,啟動代理
4.1,Nodes頁面點選節點,跳轉至如下頁面:
4.2,這裡有兩種方法啟動節點,我選擇第一種,點選【Launch】,提示下載slave-agent.jnlp檔案,將該檔案下載儲存至方便後面查詢的目錄裡。
4.3,雙擊slave-agent.jnlp檔案後點選執行,會出現如下圖示
這個時候,在Jenkins主頁我們會看到節點已經連線成功。
5,新建任務
新建一個自由風格的任務,步驟如下:
6,配置任務
對上一步新建的任務進行配置,步驟如下。
6.1,任務關聯節點
標籤表示式裡可以填寫配置時填入的標籤名,也可以直接填寫節點名稱。
6.2,原始碼管理
6.2.1,因為我的程式碼通過git管理,所以選擇Git選項
6.2.2,Repository URL,填入git中該測試專案的地址
6.2.3,Credentials,填入git賬號跟密碼。填寫方法,點選【新增】按鈕進入新增頁面,新增git賬號密碼後,再選中即可,具體如下:
6.2.4,Branch Specifier (blank for 'any'),選擇專案分支,可填寫該專案需要執行的分支,沒有其他分支的話,預設master即可
6.3,構建觸發器(非必選)
可根據自己的需求來選擇不同的項進行配置,也可不配置。如果需要定時構建執行專案,則勾選Build periodically,填入30 23 * * *,則表示每天晚上11點半開始執行專案,如下所示:
6.4,構建
點選【增加構建步驟】按鈕,選擇"Execute Windows batch command"
輸入構建命令,即執行自動化測試專案的命令
注意,第一次配置構建命令時,可以隨意配置,如:python run.py,儲存配置後先進行第一次構建,第一次構建完成後,會在節點配置的遠端工作目錄裡生成workspace資料夾,下面的第一構建步驟會具體介紹。
6.5,進行第一次構建
按照上面的步驟進行配置後,先點選【應用】再點選【儲存】
儲存成功後,跳轉至test任務頁面,點選【Build Now】,進行第一次構建
不用管第一次構建是失敗與否,構建完成後會在節點配置的遠端工作目錄裡生成workspace、remoting兩個資料夾,如下圖
並在workspace中生成兩個以任務名命名的資料夾,如下圖的test、test@temp
其中test資料夾裡會從第6.2步中配置好的git倉庫中下載專案程式碼,如下:
至此,第一次構建的目的達到了。但是我們需要根據專案中run檔案的具體路徑,再次配置任務裡的構建命令,後續才能正確地構建執行測試專案,這裡配置如下,再點選應用、儲存。
注意,執行python命令需要提前在本地測試電腦裡配置好python。
7,除錯
按照第6步配置任務完成後,先除錯是否能跑通,除錯成功後才可進行正式構建執行測試專案,進入任務主頁面,點選【Build New】按鈕。
在構建歷史中,還可選擇點選某次構建進入控制檯檢視構建日誌,如下:
至此,就可以通過遠端Jenkins在本地測試電腦上整合構建測試任務了。
四,總結
注意:
-
配置節點時填寫的遠端工作目錄,是本地測試電腦上的目錄路徑,即該Jenkins節點的工作目錄。
-
配置任務的原始碼管理時,根據實際需求,如果是git倉庫就選擇Git,如果是SVN就選擇subversion
-
進行第一次構建之前,由於還沒有在遠端工作目錄裡生成workspace並拉取程式碼,配置的構建命令並不需要真實的執行命令,如:python run.py
-
第一次構建通常情況下會失敗,但會生成remoting、workspace,並從遠端程式碼倉庫拉取程式碼存放在workspace中以節點名稱命名的資料夾裡
-
第一次構建完成後,需要對任務重新配置正確的構建命令,如:python E:\autoTest\workspace\test\run.py