【总结】

1、新建工程,选择Android Application Project,选择This Project;   PS:新建测试工程时报NULL错误,新建一个Android工程,然后再按上诉步骤建立测试工程即可解决; 2、找到要测试包名和主类名: (1)apk去签名,并且使用debug签名---使用re-sign.jar进行重新签名; (2)eclipse的logcat查看包名; (3)Hierarchy Viewer; 3、修改AndroidManifest.xml: (1)要测试app签名; <instrumentation   android:name ="android.test.InstrumentationTestRunner" android:targetPackage ="com.example.mobile.testedapp"/> 4、编写代码; 【详细过程】: (1)在eclipse里面右键,点击“New”进入创建Android项目界面,选择“Android Test Project”; (2)点击“Next”,输入一个你的测试项目的名字:(比如RobotiumTest),其他默认就可以了,如下图: (3)点击“Next”,选择“This Project”选项,最后“Finish”就可以了; (4)新建好测试程序之后,把Robotium的jar包导入工程里:    ① 去官网下载Robotium版本包( http://code.google.com/p/robotium/downloads/list);    ② 选中项目,右键,点击“Properties”选项,再点击“Resource”选项下的“Java Build Path”,选中“Librararies”选项;    ③ 选择“Add External JARs…”,选中jar包,导入进去;    ④点击最后一个选项栏“Order and Export”选项,把下面的android api版本和你导入的robotium包选项都勾选; (5)在进程测试前需要知道你测试apk的包名和主类名, 这个是必须的,没有源码可以,但是你要找不到这两个,你的robotium测试就进行不下去了;   如何找到要测试的apk的包名和类名:    1)方法一:
把apk装到模拟器或者真机上,然后到eclipse里面查看Logcat界面,进入apk主界面,你会在Logcat里面找到AcativityManager一项,后面会显示出你的主界面的包名和类名。如下图所示。

   2)方法二:
使用Hierarchy Viewer这个工具查看。这个是Android tools下的工具,在eclipse选项里也存在,在eclipse的选项“DDMS--Java”那个选项里可以看到。 不过在eclipse里使用这个工具有时会连接不上真机,我一般都是单独使用“Hierarchy Viewer”这个工具。 这个工具在你的android sdk安装路径下的tools文件包里,名字叫做“hierarchyviewer.bat”。我一般都是把它发送到桌面上一个快捷方式启动,方面连接。这个工具的使用也很简单。连上真机或者打开模拟器,然后双击启动这个工具,两分钟之后,你就会看到如下界面:
这里面会详细显示你操作的模拟器或真机对应的包名和类名。当然,你在真机或者模拟器上,第一次点击apk程序进入主界面,就能找到了apk的包名和主类名。
3)方法三:
使用一个debug去签名工具,也可以轻松找到你要测得apk的包名和主类名,截图如下:


(6)新建测试类:
package com.example.test.test;import org.junit.After;import org.junit.Before;import org.junit.Test;import com.robotium.solo.Solo;import android.test.ActivityInstrumentationTestCase2;import android.util.Log;public class RobotiumTest1 extends ActivityInstrumentationTestCase2 {    public static String log_tag = "RobotiumTest1";    // 此处为你要测试的apk的包名,这里我测得是豌豆荚2    private static final String TARGET_PACKAGE_ID = "com.wandoujia.phoenix2";    // 此处的classname是你要测得apk的主类名,也就是进入apk第一个activity的类名    private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.wandoujia.p4.activity.ExploreActivity";    private static Class<?> launcherActivityClass;    // 定义一个休眠时间 2000毫秒    private static final int Sleeptime1 = 2000;    static {        try {            launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);        } catch (ClassNotFoundException e) {            throw new RuntimeException(e);        }    }    @SuppressWarnings("unchecked")    // 创建与测试类同名的构造方法    public RobotiumTest1() {        super(TARGET_PACKAGE_ID, launcherActivityClass);    }    // 定义一个Solo对象    private Solo solo;    @Before    protected void setUp() throws Exception {        // 创建进入测试apk界面的方法        solo = new Solo(getInstrumentation(), getActivity());    }    // 这是自己定义的一个测试case,只是简单进入界面,点击一下两个选项    @Test    public void test_Watch_001() {        solo.sleep(Sleeptime1);        if(solo.searchText("应用")){            Log.i(log_tag, "找到了文本:应用");            solo.clickOnText("应用",1);            solo.sleep(Sleeptime1);        }else{            Log.i(log_tag, "找不到了文本:应用");        }            }    // 测试类结束的方法    @After    public void tearDown() throws Exception {        try {            solo.finishOpenedActivities();        } catch (Throwable e) {            e.printStackTrace();        }        getActivity().finish();        super.tearDown();    }}
View Code

(7)配置测试程序的AndroidManifest.xml文件:

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.example.test.test"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk android:minSdkVersion="14" />    <instrumentation        android:name="android.test.InstrumentationTestRunner"        android:targetPackage="com.wandoujia.phoenix2" />    <application        android:icon="@drawable/ic_launcher"        android:label="@string/app_name" >        <uses-library android:name="android.test.runner" />    </application></manifest>
View Code

(8)运行你的测试工程:

  右键,点击“Run as”选项,然后选择“Android Junit Test”选项;

参考资料:http://fengbohaishang.blog.51cto.com/5106297/999764

更多相关文章

  1. tcping测试服务器TCP端口
  2. Android判断现在所处界面是否为home主桌面的方法
  3. android 自动化压力测试-monkey 2 获取程序包名
  4. Android初学之------Android(安卓)Studio 运行java程序
  5. [Fuzz]Android模糊测试
  6. Android(安卓)Studio开发环境的配置
  7. Android问题集锦之三十三:避免每次启动AS都要fetching Android(安
  8. Xamarin.Android教程:模拟器选择
  9. Android系统使用global key 一键启动指定APP或者打开WiFi/蓝牙等

随机推荐

  1. android BluetoothAdapter蓝牙BLE扫描总
  2. AutoCompleteTextView 设置了点击事件需
  3. 导航架构组件 - 具有CollapsingToolbar的
  4. android中判断一个点是否在一个封闭Path
  5. 如何在Python中将Google帐户身份验证添加
  6. Google Play服务API(位置服务)是否需要数据
  7. android自定义通知,android自定义Notifica
  8. Android_单元测试_依赖注入_入门
  9. 使用drawables的IntelliJ Android缓存构
  10. Android超级common的Adapter,也就是传说的