Robotium的手機自動化測試,很多都是利用app源代碼里的Id定義來開發自動化腳本。而在我開始要為項目中的app寫自動化測試腳本的時候,開發的環境還很不穩定,app也還處於開發的狀態中,而且,在需要自己搭建Android整個開發環境的時候,也遇到許多需要耗費很多時間去解決的開發問題。因此,我覺得,在這種情況下,如果自己的自動化腳本環境能和開發完全獨立,那么,應該可以更好地展開自動化腳本的開發。所以,在網上一番探索后,選擇了只需要apk安裝包的方法。
當然,這樣也會遇到問題,比如,在開發還沒有完全結束前,app的功能會隨時發生變化,而在原有基礎上開發好的自動化腳本也就需要很多的rework。但是,我希望的是,在app的功能還沒有完全穩定前,可以根據現有的app,把整個自動化開發框架搭好,此后,便可以在這個框架的基礎上,很輕松地去改一些細微的功能變動部分的自動化腳本。
所以,從測試的角度上看,僅需要apk安裝包的方式,主要有以下幾個優點:
1. 測試人員無需在Eclipse中搭建復雜的Android開發環境(基本的Android SDK和Java環境還是必需的。)
2. 在app還沒開發完全的情況下,測試人員可以根據大致的app功能,把自動化開發框架建好,以利於后期對具體功能展開自動化腳本的開發。
3. 在進行自動化測試時,即使不用到持續集成,也可以較為方便地測試迭代中的app——只需要在測試設備上(模擬機或者手機)安裝最新的app即可。
下面就來介紹下,這種僅需apk安裝包版的Robotium手機自動化開發環境的准備。
1. 從開發人員處獲取apk安裝包/或者Git等源代碼控制工具中獲取源代碼
在我的項目中,是開發的源代碼是使用MVN作為項目管理工具,所以,只需要打開命令提示符(cmd),然后進入app的源代碼,敲入mvn install,即可得到apk文件
例如:
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