前情介紹:
自動(dòng)化測(cè)試除了需要編寫腳本來自動(dòng)化的模擬用戶的各種操作以外杜恰,自動(dòng)化測(cè)試還需要完成的一項(xiàng)是執(zhí)行時(shí)間自動(dòng)化運(yùn)行和測(cè)試結(jié)果自動(dòng)化生成。
RF其實(shí)已經(jīng)很好的幫我們完成了測(cè)試結(jié)果自動(dòng)化生成的工作电媳。
那我們只剩下一個(gè)腳本可以自動(dòng)化執(zhí)行的需求了症歇∧ㄖ瘢可用的方法很多所袁,比如:
- 寫bat文件來自動(dòng)運(yùn)行robot腳本
- 用python或者其它的語言寫腳本來定時(shí)運(yùn)行robot腳本
- 使用其它的工具來定時(shí)運(yùn)行robot腳本
本小節(jié)呢,我們就選用現(xiàn)在市場(chǎng)上最流行的CI工具Jenkins來完成這一目標(biāo)澈吨。
- 練習(xí)環(huán)境配置
- 實(shí)例1(UI自動(dòng)化-百度搜索)
- 實(shí)例2(有效登錄)
- 實(shí)例3(無效登錄)
- 實(shí)例4 ( Appium )
- 實(shí)例5 ( 連接mysql數(shù)據(jù)庫)
- 實(shí)例6 ( GET/POST請(qǐng)求)
- 實(shí)例7(接口API測(cè)試)
- 實(shí)例8 (數(shù)據(jù)驅(qū)動(dòng))
- 實(shí)例9 (行為驅(qū)動(dòng))
- 實(shí)例10(接口加密)
- Appium Error總結(jié)
- robotframework Error總結(jié)
需求:
用Jenkins來自動(dòng)運(yùn)行Robot自動(dòng)化腳本
因?yàn)橹坝性贚inux(Centos)的環(huán)境下裝Git服務(wù)器把敢,這次也順便把Jenkins的服務(wù)器裝在了Linux的環(huán)境下。(安裝過程請(qǐng)大家自己先百度谅辣,Jenkins支持的環(huán)境其實(shí)很多修赞,有空再寫相關(guān)的文。下載官網(wǎng):http://mirrors.jenkins-ci.org/ 桑阶,找自己想下載的版本進(jìn)行安裝就行了)
設(shè)計(jì):
Master:Jenkins是安裝在Linux服務(wù)器上的柏副,作為Master;
Slave:Win7系統(tǒng)蚣录,上面同時(shí)安裝了Python2和Python3割择,存有之前練習(xí)的所有Python腳本。
Jenkins支持Master/Slave的機(jī)制萎河,也就是我們常說的主從模式荔泳,這樣有利于在多臺(tái)不同測(cè)試環(huán)境上面運(yùn)行測(cè)試腳本。
Jenkins還支持多個(gè)版本控制工具虐杯,比如Git玛歌,SVN等,此次因?yàn)榇罱ōh(huán)境比較復(fù)雜擎椰,暫時(shí)不使用版本控制工具支子。(這些都可以通過安裝插件的方式來實(shí)現(xiàn))
實(shí)現(xiàn):
1 安裝好Jenkins后在Win7的瀏覽器中輸入服務(wù)器地址 http://服務(wù)器ip:端口號(hào)
2 登錄后新建一個(gè)節(jié)點(diǎn) http://服務(wù)器ip:8080/computer,選擇新建一個(gè)節(jié)點(diǎn)SlaveA
注意:我們啟動(dòng)Jenkins服務(wù)的這臺(tái)機(jī)器在Jenkins里叫做master,而其他的連到master上的機(jī)器(物理機(jī)达舒、虛擬機(jī)都可以)都是slave值朋,也叫節(jié)點(diǎn)叹侄。
- Name:需要連上的機(jī)器的名字
-
of executors:表示在slave上可以并行執(zhí)行幾個(gè)線程,也可以點(diǎn)后面的問號(hào)看說明吞歼。對(duì)于RF來說圈膏,建議設(shè)置為1塔猾。
- Remote root Directory(遠(yuǎn)程工作目錄):在slave上創(chuàng)建jenkins工作目錄的路徑篙骡,設(shè)置為D:\JK即可
- Labels(標(biāo)簽):可以給slave加上一個(gè)或多個(gè)標(biāo)簽,通過標(biāo)簽選擇slave
- Launch method(啟動(dòng)方法):啟動(dòng)slave的方法丈甸,推薦選第二個(gè)Launch slave agents via JavaWeb Start(如果這個(gè)選項(xiàng)沒有出來的話糯俗,你需要到Config Global Security里面去設(shè)置開啟對(duì)應(yīng)的協(xié)議,如下圖
)
3 啟動(dòng)Slave和Master之間的聯(lián)系睦擂,剛建好的時(shí)候你會(huì)發(fā)現(xiàn)Slave還處于一個(gè)離線狀態(tài)得湘,此時(shí)點(diǎn)擊Slave,可以看到有一個(gè)Launch的按鈕
點(diǎn)擊后下載slave-agent.jnlp文件顿仇,如果運(yùn)行后發(fā)現(xiàn)鏈接不上的話淘正,可以打開此文件進(jìn)行編輯,主要是master的ip需要是想對(duì)應(yīng)的master ip(因?yàn)槲业膌inux服務(wù)器的ip有時(shí)會(huì)變化臼闻,所以常需要改ip)
4 安裝RF插件
Jenkins是一個(gè)很強(qiáng)大的工具鸿吆,它可以擴(kuò)展許多的插件,大部分的插件安裝方式都類似述呐,主要介紹其中一種惩淳。
回到Jenkins首頁,進(jìn)入系統(tǒng)管理乓搬,點(diǎn)擊管理插件思犁,那里有可更新、可選插件进肯、已安裝和高級(jí)幾個(gè)頁面激蹲。
可選插件里面列了所有的插件和簡單介紹,點(diǎn)擊他的連接可以進(jìn)到插件的主頁江掩,里面有詳細(xì)的介紹学辱。
RF的插件下載路徑http://mirrors.jenkins-ci.org/plugins/robot/
下載得到robot.hpi文件后在高級(jí)-上傳插件中把此插件上傳后即安裝成功,重啟Jenkins以后就可以在首頁的任務(wù)欄最后一列上看到RF的標(biāo)識(shí)频敛。
5 配置Job來完成RF腳本的自動(dòng)化
首頁上New Item(新建)项郊,選擇freestyle風(fēng)格的項(xiàng)目
對(duì)于RF的Job來說,自由風(fēng)格就可以了斟赚。多配置也可以着降,只不過多配置的略有不方便,看各自需要吧拗军,比如你要把一套案例在多個(gè)不同配置的slave上執(zhí)行任洞,就可以用多配置的Job蓄喇。
之后進(jìn)到配置頁面
可配置的地方很多,此次只設(shè)置了必須設(shè)置的地方交掏。
- General部分
Restrict where this project can be run: 前面的標(biāo)簽就在這里用上了妆偏。用來指定這個(gè)Job在哪個(gè)標(biāo)簽的slave上執(zhí)行。 - Source Code Management(源碼管理)部分
此次選擇的是None盅弛,當(dāng)然你可以選擇從SVN或者Git上獲取钱骂,但是這個(gè)也需要相關(guān)的插件支持 - Buid(構(gòu)建)部分
要增加構(gòu)建步驟-Execute Windows batch command
簡單的來說就是你在你的windows的cmd命令行上可以執(zhí)行的命令都可以寫在此處。我們的RF腳本是用Pybot.bat 來驅(qū)動(dòng)執(zhí)行的挪鹏,比如命令行為 :
pybot.bat D:\Python\Robot\03OAInvalidLogin.robot - Post build Actions(構(gòu)建后動(dòng)作)部分
增加構(gòu)建后步驟-Publishes Robot Framework test results见秽,第一個(gè)output默認(rèn)可以為空,如果前面的pybot.bat指定了輸出目錄讨盒,那么這里也要對(duì)應(yīng)進(jìn)行設(shè)置解取,否則他找不到output.xml就沒法解析結(jié)果了。
完成后保存返顺。
6 在首頁可以點(diǎn)擊Build Now的操作禀苦,可以點(diǎn)構(gòu)建的進(jìn)度條直接看到控制臺(tái)輸出,或者在點(diǎn)構(gòu)建的名字在菜單里找控制臺(tái)輸出看結(jié)果遂鹊。
裝了RF插件的效果就是你可以在首頁上看到最后執(zhí)行的結(jié)果和圖形顯示的界面(還能對(duì)于這個(gè)看臉的世界說什么呢振乏,攤手)
Jenkins只是一個(gè)非常好的CI工具,你也可以采用其它的方式來自動(dòng)化執(zhí)行你的robot腳本或者python腳本稿辙。
以上昆码。