Android 自動化測試—robotium(六)只有APK存在

    之前robotium的測試都是基於有源碼的情況下。當我們無法獲得android源碼時,可以採用另一種方式進行測試。關於這種方式,robotium wiki 有相關資料提供參考 RobotiumForAPKFiles:Use Robotium when only having apk

http://code.google.com/p/robotium/wiki/RobotiumForAPKFiles

 

在實現整個測試過程前,先簡單瞭解下Android應用程序簽名:

Android 應用程序爲什麼要簽名?簽名的作用是什麼?

簽名的作用:

(1) 發送者身份的認證

(2) 保證輸入信息的完整性

(3) 防止交易中的抵賴發生

 

Robotium 開始測試過程:

一、更換APK簽名

根據robotimu wiki介紹:需要利用一個叫 re-sign.jar 的工具,它可以幫助我們重新簽名某個APK.

下載:http://down.51cto.com/data/443499

1.雙擊 re-sign.jar 或 cmd 下 java -jar re-sign.jar

2.將應用程序拖入re-sign中,這裏以“有道詞典 3.1.0.apk”舉例

3.生成新簽名和新APK。

有道詞典 3.1.0_dubug.apk

Package name:com.youdao.dict

Main activity:com.youdao.dict.activity.DictSplashActivity

 

二、將有“有道詞典 3.1.0_dubug.apk”安裝至android虛擬機中

1.進入android-sdk-windows\platform 執行命令:

adb install 有道詞典 3.1.0_dubug.apk

2.安裝成功後,虛擬機將會看到此應用.

 

三、修改 AndroidMainfest.xml 文件

創建Android測試項目:http://luwenjie.blog.51cto.com/925779/908886

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     package="com.luwenjie.helloworld.test" 
  4.     android:versionCode="1" 
  5.     android:versionName="1.0" > 
  6.  
  7. //添加supports-screens
  8.     <supports-screens android:anyDensity="true"/> 
  9.      
  10.     <uses-sdk android:minSdkVersion="10" />  
  11.      
  12. //修改targetPackage爲之前所生產的Package Name
  13.     <instrumentation 
  14.         android:name="android.test.InstrumentationTestRunner" 
  15.         android:targetPackage="com.youdao.dict" /> 
  16.  
  17.     <application 
  18.         android:icon="@drawable/ic_launcher" 
  19.         android:label="@string/app_name" > 
  20.         <uses-library android:name="android.test.runner" /> 
  21.     </application> 
  22.  
  23. </manifest> 

四、修改測試框架:

測試框架 Robotium Wiki已經提供:

 

//TARGET_PACKAGE_ID 和 LAUNCHER_ACTIVITY_FULL_CLASSNAME 使用工具所生成的

private static final String TARGET_PACKAGE_ID = "com.youdao.dict"

private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.youdao.dict.activity.DictSplashActivity"

 

//測試腳本,我們可以修改腳本,利用java特性,創建多個腳本文件進行調用

public void testCanOpenSettings(){
       solo.enterText(0, "test");

}

 

五、運行腳本進行測試

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章