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

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

  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

相關文章
相關標籤/搜索