當你套用Athrun、Robotium等框架,針對自己的項目寫完了一堆自動化測試腳本后,在Eclipse之外怎么讓它們可以持續(xù)性地跑起來并展現(xiàn)報告呢?
據(jù)我了解,方便的方法大致有兩個:其一,利用Hudson(或Jenkins)持續(xù)集成系統(tǒng);其二、利用Testin或東軟易測云等第三方云測試平臺達成。
本文以Hudson在Windows系統(tǒng)的環(huán)境搭建為例。
一、安裝篇
1、安裝JDK,推薦1.6版本
這個一般做Android的開發(fā)、測試都會裝了,但要注意配好環(huán)境變量,即將jdk的bin目錄加到Path里,將jdk目錄加入JAVA_HOME
2、安裝ant
http://ant.apache.org/bindownload.cgi,解壓到本地合適目錄,如D:apache-ant-1.8.4
3、安裝tomcat
http://tomcat.apache.org/download-70.cgi,解壓到本地適當目錄,如D:apache-tomcat-7.0.30
4、安裝hudson
http://java.net/projects/hudson/downloads/directory/war,將下載到的war包更名為hudson.war(這個名字關(guān)系到訪問的URL地址,也可以是別的),拷貝到tomcat的webapps目錄下,如D:apache-tomcat-7.0.30webapps
至此,只要啟動tomcat/bin/startup.bat,可以在瀏覽器里用http://127.0.0.1:8080/hudson對hudson服務(wù)進行訪問了。
二、配置篇
打開hudson配置界面(主頁 - 系統(tǒng)管理 - 系統(tǒng)設(shè)置)
1、配置好JDK,名稱任意,JAVA_HOME填準確。
2、配置好ANT,名稱任意,ANT_HOME填準確。
3、拉到下面,郵件通知部分,SMTP、用戶默認郵件后綴、系統(tǒng)管理員郵件都按照公司實際情況配好,Hudson URL填成http://本機IP:8080/hudson/,這樣同局域網(wǎng)內(nèi)的其他用戶可以訪問你配置的Hudson服務(wù)了。
同時點開Advanced,勾選"使用SMTP",使用你在公司域內(nèi)的郵箱地址和密碼,SMTP端口一般選擇默認的25,Charset填寫"UTF-8",這樣測試結(jié)果才會以你的郵箱發(fā)出給相關(guān)人。
打開hudson插件界面(主頁 - 系統(tǒng)管理 - 管理插件 - 可選插件)
搜索以下幾個插件并安裝:
1、Hudson Subversion Plug-in,顧名思義,SVN插件。
2、JUnit Attachments Plugin,junit測試報告附件插件。
3、Android Emulator Plugin,如果要用Android模擬器來測試的話,這個是要裝上的。
4、Hudson GIT plugin,如果團隊是用Git來同步代碼的話,那這個也裝上。
5、Email-ext plugin,郵件發(fā)送定制插件。Hudson默認只在構(gòu)建失。ɑ驈氖∞D(zhuǎn)向成功)后發(fā)送提醒郵件;使用這個插件可以定制發(fā)送郵件的不同情景。
其它都按需安裝嘍。
新建任務(wù) - 主項目(被測項目)打包任務(wù)
1、構(gòu)建一個自由風格的項目,名稱合適取。
2、Source Code Management部分,選Subversion,Repository URL里面填寫你主體項目的SVN地址,其它選默認行了。
3、Build trigger部分,勾選Build periodically可以使版本定時構(gòu)建,語法和Unix的crontab一樣。勾選Poll SCM則是定期去SVN或CVS的workspace去檢查,如果有更新更構(gòu)建。
4、Build Environment部分,如果是用模擬器來測試的話,勾選"Run an Android emulator during build"。
5、Build部分,關(guān)鍵的部分來了。
Ant version:選Default行;
Targets:要應(yīng)用的ant target名稱,也可以是名稱列表(多個名稱用空格分隔),如果什么都不寫的話,是build腳本中的默認那個任務(wù);
Build File:有時候我們未必用ant默認找的build.xml來編譯,那用這個選項來自定義腳本路徑和名稱,如build4test.xml;
Properties:這里用來寫build腳本運行時需要的一些參數(shù)。其效果等同于在項目的workspace下建一個ant.properties文件,然后在build腳本里加入<property file="ant.properties" />。其實說起來肯定是后一種方法更靈活,但有時為了安全起見(比如不把key.store.password泄漏出去),把這些屬性寫在Hudson服務(wù)端。(事實上這些屬性都記錄在該項目的config.xml里)