您的位置:首页 > 移动开发 > Android开发

Android Robotium测试单个的APK方法

2013-09-06 16:21 441 查看


Robotium 在只有APK应用方法讲解


一:Android Robotium测试的环境

Requirements:

1. Android application apk file. Ex: APItoTest.apk. (Package name: com.Ex.APItoTest)

2. Eclipse (eclipse IDE for java EE Developers).

3. ADT (Android Development Tools)

4. SDK (Android SDK)

5. JDK

6. Robotium


二:测试步骤:

步骤一: 在Eclipse 中新建Android Test Project (在Eclipse 中添加Android SDK 请参考

<Android 开发环境搭建.docx>)

File > New > Project > Android > Android Test Project

在New Android Test Project 中填入下面的相应信息后"Finish".

Test Project Name: ExAPITest

Test Target: "This Project"

Build Target: 根据APK 测试需要选择

Application name: ExAPITest

Package name: com. Ex.APITest

步骤二: 在新建的Test Project中修改AndroidManifest.xml,

instrumentation android:targetPackage="com.Ex.APITest"



instrumentation android:targetPackage="com.Ex.APItoTest"

【注意】如果不知道APK 的Pckage name 可以按照下面的方法来获取:

1. 打开Android 模拟器

2. 在CMD 中使用adb instal 命令在模拟器上安装APK

3. 使用adb logcat 命令查看APK 的Package name

或者:在platform-tools目录下使用如下命令:aapt dump badging XXX.apk

步骤三: 在src 中右键com.Ex.APITest,新建一个Class

Class Name: APITest

将下面的代码Copy 到新建的Class APITest.java 中

—————————————————————————————————————————

package com.Ex.APITest;

import com.jayway.android.robotium.solo.Solo;

import android.test.ActivityInstrumentationTestCase2;

@SuppressWarnings({ "unchecked", "rawtypes" })

public class Wallpapertest extends ActivityInstrumentationTestCase2 {

public Wallpapertest(Class activityClass) {

super(activityClass);

// TODO Auto-generated constructor stub

}

private static final String TARGET_PACKAGE_ID = "com.Ex.APItoTest";

private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME =

"com.Ex.APItoTest.MainActivity";

private static Class<?> launcherActivityClass;

static {

try {

launcherActivityClass =

Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);

} catch (ClassNotFoundException e) {

throw new RuntimeException(e);

}

}

public Wallpapertest() throws ClassNotFoundException{

super(TARGET_PACKAGE_ID, launcherActivityClass);

}

private Solo solo;

@Override

protected void setUp() throws Exception {

solo = new Solo(getInstrumentation(), getActivity());

}

@Override

public void tearDown() throws Exception {

try

{solo.finalize();

} catch(Throwable e) {

e.printStackTrace();

}

getActivity().finish();

super.tearDown();

}

#前面的部分是必要的框架,下面就可以开始编写Test Scripts 了

#testCase1 前面的test 一定要用小写

public void testCase1(){

}

public void testCase2(){

}

}

—————————————————————————————————————————

* Note

Private static final String TARGET_PACKAGE_ID = "com.Ex.APItoTest";

Private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME =

"com.Ex.APItoTest.MainActivity";

com. Ex.APItoTest 是package name, MainActivity 是launcher name

LAUNCHER_ACTIVITY_FULL_CLASSNAME = package name.launcher name

步骤四: 代码搞定后就可以导入Robotium.jar了,右键"ExAPITest" folder > Build Path >

Configure Build Path...

在Libraries 中, Add External JARs > 选择robotium jar file > Open > OK

步骤五: 使用robotium做JUnit test需要和APK文件使用相同的签名, 只有APK文件时我们可以用下面的方法来重新签名

1. 将APK 文件的后缀名改为zip, 使用WinRAR 打开后把META-INF folder 删掉

2. 将APK 文件的后缀名改回apk

3. 打开Command prompt,使用下面的命令给APK 重新签名

> jarsigner -keystore ~/.android/debug.keystore -storepass android -keypass android

APItoTest.apk androiddebugkey(重新签名)

> zipalign 4 APItoTest.apk TempAPItoTest.apk(省略该步骤)

* Note

~/.android/debug.keystore "~"匹配虚拟机avd 的path

zipalign 4 APItoTest.apk TempAPItoTest.apk Temp 文件时重新签名后的APK 文件,测试时需

要安装重新签名后的(adb install)

步骤六:在Step 3 的框架中写好Test Scripts后右键ExAPITest > Run as > Android JUnit Test

模拟器启动后, JUnit Test 就开始了

文章来源:/article/8103819.html

作者:pugongying1988
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: