Robotium的手機自動化測試,不少都是利用app源代碼裏的Id定義來開發自動化腳本。而在我開始要爲項目中的app寫自動化測試腳本的時候,開發的環境還很不穩定,app也還處於開發的狀態中,並且,在須要本身搭建Android整個開發環境的時候,也遇到許多須要耗費不少時間去解決的開發問題。所以,我以爲,在這種狀況下,若是本身的自動化腳本環境能和開發徹底獨立,那麼,應該能夠更好地展開自動化腳本的開發。因此,在網上一番探索後,選擇了只須要apk安裝包的方法。html
固然,這樣也會遇到問題,好比,在開發尚未徹底結束前,app的功能會隨時發生變化,而在原有基礎上開發好的自動化腳本也就須要不少的rework。可是,我但願的是,在app的功能尚未徹底穩定前,能夠根據現有的app,把整個自動化開發框架搭好,此後,即可以在這個框架的基礎上,很輕鬆地去改一些細微的功能變更部分的自動化腳本。java
因此,從測試的角度上看,僅須要apk安裝包的方式,主要有如下幾個優勢:android
1. 測試人員無需在Eclipse中搭建複雜的Android開發環境(基本的Android SDK和Java環境仍是必需的。)app
2. 在app還沒開發徹底的狀況下,測試人員能夠根據大體的app功能,把自動化開發框架建好,以利於後期對具體功能展開自動化腳本的開發。框架
3. 在進行自動化測試時,即便不用到持續集成,也能夠較爲方便地測試迭代中的app——只須要在測試設備上(模擬機或者手機)安裝最新的app便可。eclipse
下面就來介紹下,這種僅需apk安裝包版的Robotium手機自動化開發環境的準備。工具
1. 從開發人員處獲取apk安裝包/或者Git等源代碼控制工具中獲取源代碼測試
在個人項目中,是開發的源代碼是使用MVN做爲項目管理工具,因此,只須要打開命令提示符(cmd),而後進入app的源代碼,敲入mvn install,便可獲得apk文件ui
例如:google
1) cd .../TestApp
2) mvn install
3) Build Success後,在TestApp目錄下找到target目錄,在target目錄中,便可找到最新生成的apk文件。
2. Android的apk發佈,須要簽名。具體信息,詳見:http://developer.android.com/tools/publishing/app-signing.html
爲了順利在測試設備上安裝apk,咱們須要對拿到的apk進行從新簽名(Re-sign)。
從新簽名的工具,網上不少,我使用的是re-sign.jar。
在用戶目錄下,會有一個.android的目錄,把re-sign.jar放在該目錄下。
Re-sign步驟以下:
1) 打開命令提示符:cmd
2) cd .../.android
3) 運行java -jar re-sign.jar,打開resign工具
4) 把最新的apk文件拖拽到打開的resign工具中,完成後,就會產生一個從新簽名的apk文件。
Ps: resign後,會獲得一個package name和main activity name,咱們須要記下這兩個名字,在第4步中會用到。
3. 在模擬機中安裝從新簽名後的apk文件,步驟以下:(在真機中安裝與模擬機相似,具體操做,Google或者Baidu便可)
1) 打開Android SDK安裝目錄
2) 找到sdk下的platform-tools目錄
3) 把從新簽名後的apk文件放在該目錄下
4) 打開命令提示符:cmd
5) cd .../sdk/platform-tools
6) 打開要安裝apk的模擬機
7) 運行命令:adb install testedapp.apk。看到Success,說明apk已經安裝成功了。
Ps: 在安裝apk以前,確保舊版的app已經在模擬機中卸載完成。不然,執行該命令,會提示說安裝失敗。
4. 在eclipse中,新建一個Android Test Project,進行配置,使得自動化腳本與要測試的apk進行關聯。
Reference:
https://code.google.com/p/robotium/wiki/RobotiumTutorials