上一篇主要介紹了命令行執(zhí)行UI自動化測試用例,在上一節(jié)中我們已經(jīng)可以實現(xiàn)通過本地命令行java -jar orange-XXX.jar config.properties的方式實現(xiàn)apk重簽名、UI自動化工程打包、真機(jī)上安裝、解析測試用例xml配置文件、執(zhí)行測試用例等一系列步驟。但是前提是本地已經(jīng)手動執(zhí)行過一次測試工程,也就是在bin目錄下要已經(jīng)生成YourProjectName.apk文件后才能執(zhí)行java -jar本地腳本命令。如何才能把UI自動化測試工程打包成apk的過程也統(tǒng)一起來呢?可以用ant構(gòu)建工具!
關(guān)于安卓UI自動化學(xué)習(xí),我的學(xué)習(xí)路線是這樣安排的:
(一)本地:能夠獨(dú)立完成一個UI自動化工程的建立
(二)本地:命令行執(zhí)行UI自動化測試用例
(三)本地:ant打包測試工程apk+執(zhí)行UI自動化用例一體化
(四)jenkins:持續(xù)集成平臺成功構(gòu)建UI自動化工程
(五)jenkins:真機(jī)換成模擬器
(六)jenkins:持續(xù)集成平臺實現(xiàn)被測apk自動打包編譯+自動化一體化
(七)UI自動化用例編寫語法和規(guī)范
本章內(nèi)容就是第三部分,本地:ant打包測試工程apk+執(zhí)行UI自動化用例一體化
一、ant打包安卓工程原理介紹
ant打包安卓工程的主要步驟如下:
- android update project -p .
該過程主要是在目錄下生成ant編譯需要的文件build.xml。
執(zhí)行完這條指令后,我們在目錄下發(fā)現(xiàn)多了build.xml和local.properties兩個文件,這兩個文件都是自動生成的,前者是編譯需要的文件,其中的內(nèi)容很簡單,主要是做了一些xml配置文件的路徑指定,最關(guān)鍵的就是指定了sdk下的build.xml文件路徑。后者則主要是指定了本機(jī)的sdk所在路徑。(sdk下的build.xml是android自帶的安卓工程ant打包用的配置文件)
2.添加對簽名的支持,新增文件ant.properties,加入簽名信息。
key.store=xxx.keystore
key.alias=xxx
key.store.password=xxx
key.alias.password=xxx
3.執(zhí)行ant release命令,即可在bin目錄生成xxx-release.apk的安裝包。
是不是超簡單?但是簡單的前提是安卓官方的sdk自帶的build.xml中集成好了了復(fù)雜的打包過程,包括各個target的目標(biāo)和不同Target之間的依賴關(guān)系。有興趣的可以找出來這個build.xml研究下內(nèi)部具體的安卓打包過程。
同時ant release可能出現(xiàn)的問題是:
出現(xiàn)這種問題的解決辦法是可以執(zhí)行ant clean release或者在本地eclipse上對工程做一下clean處理就OK了。
另一個問題有可能出現(xiàn):
這種問題通常是由于java執(zhí)行路徑中沒有需要的jar包造成的。ant會默認(rèn)將libs目錄下的jar包都放入class path中,但是如果我們在建立工程的時候沒有生成libs目錄,build path中的jar包都是來源于第三方的jar包。這種情況下,我們可以通過新增custom_rules.xml文件來解決該問題。
添加好后,執(zhí)行ant clean release就OK啦!