之前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
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.luwenjie.helloworld.test"
- android:versionCode="1"
- android:versionName="1.0" >
- //添加supports-screens
- <supports-screens android:anyDensity="true"/>
- <uses-sdk android:minSdkVersion="10" />
- //修改targetPackage爲之前所生產的Package Name
- <instrumentation
- android:name="android.test.InstrumentationTestRunner"
- android:targetPackage="com.youdao.dict" />
- <application
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name" >
- <uses-library android:name="android.test.runner" />
- </application>
- </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");
}
五、運行腳本進行測試