如何利用jenkins來做android自動化

yangxi_001發表於2014-03-14

概述

持續整合是一種軟體開發實踐,即團隊開發成員經常整合他們的工作,通常每個成員每天至少整合一次,也就意味著每天可能會發生多次整合。每次整合都通過自動化的構建(包括編譯,釋出,自動化測試)來驗證,從而儘快地發現整合錯誤。許多團隊發現這個過程可以大大減少整合的問題,讓團隊能夠更快的開發內聚的軟體。其中包含一些程式碼靜態檢查工具,自動打包和自動測試功能。

持續整合流程

環境配置

啟動Jenkins

1、  安裝jdk

從略,建議1.6或以上版本,配置好環境變數。

2、  安裝tomcat

 http://tomcat.apache.org/download-70.cgi

從略,安裝完除錯下tomcat是否正常。

3、  安裝ant

http://ant.apache.org/bindownload.cgi

下載zip包,解壓後配置好環境變數。

4、  安裝jenkins

 http://java.net/projects/hudson/downloads/directory/war

下載war包,命名為Jenkins,拷貝到tomcat/webapps目錄下。

5、  安裝Android SDK

http://developer.android.com/sdk/index.html

下載安裝,完成後配置好Android_SDK_HOME環境變數。此步驟主要用於進行android自動化測試,若不進行此項可略過。

安裝完成後啟動tomcat/bin/startup.bat檔案(linux下是startup.sh),在瀏覽器輸入http://localhost:8080/jenkins,8080為tomcat埠,即可訪問jenkins伺服器。

配置Jenkins

1、  JDK配置

新增JDK,指定JDK名字和JAVA_HOME

2、  ANT配置

新增ANT,指定ANT名字和ANT_HOME

3、  Maven配置

從略,本文未使用到Maven,具體配置方法參考Google。

4、  Subversion

選擇1.6版本SVN,勾選Update default Subversion credentials  cache after successful authentication

5、  郵件通知

填寫SMTP server、Default user E-mail suffix、System Admin E-mail Address、Jenkins URL、勾選Use SMTP Authentication,填寫User Name、Password、Use SSL、SMTP port、Chareset(UTF-8) 、Default Content Type(預設)、Default Recipients(預設收件人),配置完成後可進行測試郵件。

6、  Jenkins URL

配置該URL,用於別人訪問。

       外掛管理

1、  Hudson Subversion Plug-in,jenkins的svn外掛。

2、  Android Emulator Plugin,android模擬器外掛。

3、  JUnit Attachments Plugin,junit測試報告附件外掛。

4、  Email-ext plugin,郵件擴充套件外掛。此處說明下,預設Jenkins只會傳送構建失敗的郵件,我們需安裝此外掛才能自定義不同場景。

5、  Deploy to container Plugin遠端釋出外掛。

自動化測試

打包源工程

ANDROID程式

本小節講訴如何打包一個Android工程,當前使用的是ant進行編譯原始碼。

1、  首先構建一個自由風格的Job。

2、  新增原始碼路徑,選擇所使用的版本控制器,輸入原始碼路徑。

3、  構建觸發器可根據需要選擇是否定時構建。

4、  構建環境,此處Jenkins安裝了Android Emulator Plugin外掛,可以啟動已有模擬器或新增新的模擬器,本文案例中使用真機除錯。

5、  構建,解除安裝手機中原程式 adb –s uninstall com.XXXXXX

6、  生成bulid.xml檔案,-p後面跟工程所在的本地jenkins下路徑

android update project -n *** c:\被測工程Job路徑\workspace

7、  Ant進行編譯程式,並安裝到當前手機中

ant debug install -f c:\被測工程Job路徑\workspace\build.xml

8、  構建後操作,本案例中構建完成後自動啟動構建下一個測試Job

Bulid other projects,選擇測試工程的Job.

打包測試工程

ANDROID程式

本小節講訴如何構建一個Android測試工程,包括郵件傳送和測試報告展示。

1、  構建步驟1-7和Android程式章節一樣,從略。

2、  本文案例中測試程式是通過命令列啟動執行的,所以在此處增加一個批處理執行。P.S. adb shell am instrument -w -e class com.megafon.test.MegafonTest#testDeleteContact com.megafon.test/android.test.InstrumentationTestRunner ,此處是通過批處理來單獨執行一個個的測試用例。避免了Junit3的無序執行的問題。

3、  刪除Workspace中原來存在的測試報告檔案,一般不刪除也會覆蓋。

如何讓測試程式生成xml格式的測試報告,其他文章會重點介紹。

4、  從手機中拷貝測試報告,最終測試是在手機上執行,所以報告也生成在手機中,使用adb pull命令把測試報告全部拷貝到workspace下制定目錄。

5、  構建後操作,釋出測試報告,如果報告中包含附件,此處使用到JUnit Attachments Plugin外掛。

6、  郵件通知,此處使用到Email-ext plugin外掛,前面的預設,直接使用我們在系統管理裡面設定的預設值。

7、  點選右下角高階按鈕,可選擇不同場景下傳送郵件。

8、  測試結果展示,在本次構建的控制檯可以顯示當前所有的構建日誌。

9、測試報告點選Test Result可以顯示所有測試記錄。

相關文章