[Android] Robotium手機自動化測試(僅需apk安裝包版)——環境搭建


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進行關聯。

  1) 修改Android Test Project下的AndroidMainfest.xml文件,使得粗體標注的package名與resign生成的名字一致
    <instrumentation
          android:name = "android.test.InstrumentationTestRunner"
        android:targetPackage = " com.example.mobile.testedapp " />
  2) 在自動化腳本測試類中,聲明初始類,也要與resign生成的main activity類名一致
    private static final String  LAUNCHER_ACTIVITY_FULL_CLASSNAME =" com.example.mobile.testedapp.MainActivity" ;
5. 這樣,就可以在eclipse中的Android Test Project中盡情地開發自動化腳本,並在安裝好的apk基礎上運行了!

  

Reference: 

https://code.google.com/p/robotium/wiki/RobotiumTutorials


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM