一,引入問題
- 自動(dòng)化測試腳本絕大部分用于回歸測試,這就需要制定執(zhí)行策略,如每天、代碼更新后、項(xiàng)目上線前定時(shí)執(zhí)行,才能達(dá)到最好的效果,這時(shí)就需要進(jìn)行Jenkins集成。
- 不像web UI自動(dòng)化測試可以使用無痕瀏覽器做到無界面,APP UI自動(dòng)化需要用到真機(jī)或模擬器,在完全的linux環(huán)境下做Jenkins集成顯得不太可能。
- 可以在自己的工作電腦上搭建Jenkins,并運(yùn)行APP UI自動(dòng)化測試項(xiàng)目,但工作電腦關(guān)閉后就不能定時(shí)運(yùn)行自動(dòng)化項(xiàng)目,且工作的電腦還要用來做別的工作,這樣顯得極其不方便。
基于以上等原因,可以考慮向公司申請(qǐng)一臺(tái)專門用于做自動(dòng)化測試的本地電腦,搭建好本地電腦的測試環(huán)境,連接真機(jī)或模擬器;在公司的測試服務(wù)器上部署Jenkins,新建節(jié)點(diǎn)連接本地測試電腦,這樣就可以利用Jenkins設(shè)置策略定時(shí)在本地測試電腦上構(gòu)建測試項(xiàng)目。
注意:之所以不直接在專門用于測試的電腦上直接搭建Jenkins,是因?yàn)榭赡艹鼳PP自動(dòng)化項(xiàng)目外,還有web自動(dòng)化、接口自動(dòng)化或者其他集成項(xiàng)目,Jenkins搭建在遠(yuǎn)程服務(wù)器上方便對(duì)所有需要Jenkins構(gòu)建的項(xiàng)目進(jìn)行管理。
本篇博客涉及的環(huán)境:遠(yuǎn)程Jenkins版本2.176.3,本地電腦 Windows 10
二,搭建思路
1,搭建Jenkins
2,新建節(jié)點(diǎn)
3,配置節(jié)點(diǎn)
4,節(jié)點(diǎn)啟動(dòng)代理
5,新建任務(wù)
6,配置任務(wù)(獲取最新代碼、關(guān)聯(lián)從節(jié)點(diǎn)等)
7,調(diào)試構(gòu)建
三,具體步驟
1,搭建Jenkins
不多贅述,網(wǎng)上教程很多,大家自行查閱。也有很多公司的測試服務(wù)器已經(jīng)搭建好Jenkins,直接使用即可。注意,本博客示例的Jenkins版本為2.176.3
2,新建節(jié)點(diǎn)
登錄Jenkins --> Manage Jenkins --> Manage Nodes --> 新建節(jié)點(diǎn),具體步驟如下:
點(diǎn)擊確定后,會(huì)跳轉(zhuǎn)至節(jié)點(diǎn)配置頁面。
3,配置節(jié)點(diǎn)
3.1,按下圖中的說明進(jìn)行配置,未進(jìn)行說明的默認(rèn)即可,再點(diǎn)擊【保存】按鈕。
注意:
- 遠(yuǎn)程工作目錄,理論上可以填寫本地測試電腦里的任意目錄路徑,但最好專門新建一個(gè)用于Jenkins工作的目錄。
- 我這里的Jenkins版本為2.176.3,啟動(dòng)方法中無 Launch agents Java Web Start 選項(xiàng),網(wǎng)上查找資料后進(jìn)入Manage Jenkins --> Configure Global Security 進(jìn)行如下設(shè)置
但啟動(dòng)方法中仍然沒有展示"Launch agents Java Web Start"選項(xiàng)。但其實(shí)這里選擇"Launch agent by connecting it to the master"也是可行的。
3.2,點(diǎn)擊保存后,跳轉(zhuǎn)至Nodes頁面,出現(xiàn)如下節(jié)點(diǎn)
4,啟動(dòng)代理
4.1,Nodes頁面點(diǎn)擊節(jié)點(diǎn),跳轉(zhuǎn)至如下頁面:
4.2,這里有兩種方法啟動(dòng)節(jié)點(diǎn),我選擇第一種,點(diǎn)擊【Launch】,提示下載slave-agent.jnlp文件,將該文件下載保存至方便后面查找的目錄里。
4.3,雙擊slave-agent.jnlp文件后點(diǎn)擊運(yùn)行,會(huì)出現(xiàn)如下圖標(biāo)
這個(gè)時(shí)候,在Jenkins主頁我們會(huì)看到節(jié)點(diǎn)已經(jīng)連接成功。
5,新建任務(wù)
新建一個(gè)自由風(fēng)格的任務(wù),步驟如下:
6,配置任務(wù)
對(duì)上一步新建的任務(wù)進(jìn)行配置,步驟如下。
6.1,任務(wù)關(guān)聯(lián)節(jié)點(diǎn)
標(biāo)簽表達(dá)式里可以填寫配置時(shí)填入的標(biāo)簽名,也可以直接填寫節(jié)點(diǎn)名稱。
6.2,源碼管理
6.2.1,因?yàn)槲业拇a通過git管理,所以選擇Git選項(xiàng)
6.2.2,Repository URL,填入git中該測試項(xiàng)目的地址
6.2.3,Credentials,填入git賬號(hào)跟密碼。填寫方法,點(diǎn)擊【添加】按鈕進(jìn)入添加頁面,添加git賬號(hào)密碼后,再選中即可,具體如下:
6.2.4,Branch Specifier (blank for 'any'),選擇項(xiàng)目分支,可填寫該項(xiàng)目需要運(yùn)行的分支,沒有其他分支的話,默認(rèn)master即可
6.3,構(gòu)建觸發(fā)器(非必選)
可根據(jù)自己的需求來選擇不同的項(xiàng)進(jìn)行配置,也可不配置。如果需要定時(shí)構(gòu)建運(yùn)行項(xiàng)目,則勾選Build periodically,填入30 23 * * *,則表示每天晚上11點(diǎn)半開始運(yùn)行項(xiàng)目,如下所示:
6.4,構(gòu)建
點(diǎn)擊【增加構(gòu)建步驟】按鈕,選擇"Execute Windows batch command"
輸入構(gòu)建命令,即執(zhí)行自動(dòng)化測試項(xiàng)目的命令
注意,第一次配置構(gòu)建命令時(shí),可以隨意配置,如:python run.py,保存配置后先進(jìn)行第一次構(gòu)建,第一次構(gòu)建完成后,會(huì)在節(jié)點(diǎn)配置的遠(yuǎn)程工作目錄里生成workspace文件夾,接下來會(huì)對(duì)第一次構(gòu)建步驟具體介紹。
6.5,進(jìn)行第一次構(gòu)建
按照上面的步驟進(jìn)行配置后,先點(diǎn)擊【應(yīng)用】再點(diǎn)擊【保存】
保存成功后,跳轉(zhuǎn)至test任務(wù)頁面,點(diǎn)擊【Build Now】,進(jìn)行第一次構(gòu)建
不用管第一次構(gòu)建是否成功,構(gòu)建完成后會(huì)在節(jié)點(diǎn)配置的遠(yuǎn)程工作目錄里生成workspace、remoting兩個(gè)文件夾,如下圖
并在workspace中會(huì)自動(dòng)生成兩個(gè)以任務(wù)名稱命名的文件夾,如下圖的test、test@temp
同時(shí)會(huì)從第6.2步中配置好的git倉庫中下載項(xiàng)目代碼保存在test文件夾中,如下:
至此,第一次構(gòu)建的目的達(dá)到了。但是我們需要根據(jù)項(xiàng)目中run文件的具體路徑,再次配置任務(wù)里的構(gòu)建命令,后續(xù)才能正確地構(gòu)建運(yùn)行測試項(xiàng)目,這里配置如下,再點(diǎn)擊應(yīng)用、保存。
注意,執(zhí)行python命令需要提前在本地測試電腦里配置好python。
7,調(diào)試
按照第6步配置任務(wù)完成后,先調(diào)試是否能跑通,調(diào)試成功后才可進(jìn)行正式構(gòu)建執(zhí)行測試項(xiàng)目,進(jìn)入任務(wù)主頁面,點(diǎn)擊【Build New】按鈕。
在構(gòu)建歷史中,還可選擇點(diǎn)擊某次構(gòu)建進(jìn)入控制臺(tái)查看構(gòu)建日志,如下:
至此,就可以通過遠(yuǎn)程Jenkins在本地測試電腦上集成構(gòu)建測試任務(wù)了。
四,總結(jié)
注意:
- 配置節(jié)點(diǎn)時(shí)填寫的遠(yuǎn)程工作目錄,是本地測試電腦上的目錄路徑,即該Jenkins節(jié)點(diǎn)的工作目錄。
- 配置任務(wù)的源碼管理時(shí),根據(jù)實(shí)際需求,如果是git倉庫就選擇Git,如果是SVN就選擇subversion
- 進(jìn)行第一次構(gòu)建之前,由于還沒有在遠(yuǎn)程工作目錄里生成workspace并拉取代碼,配置的構(gòu)建命令并不需要真實(shí)的執(zhí)行命令,如:python run.py
- 第一次構(gòu)建通常情況下會(huì)失敗,但會(huì)生成remoting、workspace,并從遠(yuǎn)程代碼倉庫拉取代碼存放在workspace中以節(jié)點(diǎn)名稱命名的文件夾里
- 第一次構(gòu)建完成后,需要對(duì)任務(wù)重新配置正確的構(gòu)建命令,如:python E:\autoTest\workspace\test\run.py