标签:des android cWeb style blog http io ar color
1、建立测试工程
打开Eclipse,点击File->New一个Android Test Project ApkTest,然后点击下一步的时候选择This project,以下是新建的空工程
2、建立一个lib文件夹与conf文件夹lib放置依赖包,将robotium依赖包放进lib中,再由buildpath导入
conf放置需要的配置文件
3、将被测APK重新签名
因为robotium要求被测应用和测试代码要有一致的签名, 所以我们需要把下载到的apk,通过re-sign.jar来产生debug key的apk,这个重新生成的apk就会跟测试项目签名一致了
在命令行下 通过 java -jar re-sign.jar就会出现一个图形界面,然后将apk拖到这个界面中:
3.1 会生成一个以debug结尾的APK(这个就是被重新签名APK)
3.2 会有一个提示框提示被重新签名的包名以及入口activity的名字
4、写测试工程
package com.mitalk.test;
//需要导入的包 import android.app.Activity; import android.test.ActivityInstrumentationTestCase2; import com.jayway.android.robotium.solo.Solo;
@SuppressWarnings("rawtypes")
//测试类必须要继承ActivityInstrumentationTestCase2 public class LoginTest extends ActivityInstrumentationTestCase2
{ //定义变量 public Solo solo; public Activity activity; private static Class<?> launchActivityClass;
//对应re-sign.jar生成出来的信息框里的两个值 private static String mainActiviy = "com.xiaomi.channel.ui.ChannelLauncherActivity"; private static String packageName = "com.xiaomi.channel"; static
{ try
{ launchActivityClass = Class.forName(mainActiviy); //驱动APK的入口activity }
catch (ClassNotFoundException e)
{ throw new RuntimeException(e); } }
//初始化资源
@Override
protected void setUp() throws Exception
{ super.setUp(); this.activity = this.getActivity(); this.solo = new Solo(getInstrumentation(), getActivity()); }
//释放资源
@Override
public void tearDown() throws Exception
{ try
{ this.solo.finishOpenedActivities(); }
catch (Throwable e)
{ e.printStackTrace(); } this.activity.finish(); super.tearDown(); }
@SuppressWarnings("unchecked") public LoginTest()
{ super(packageName, launchActivityClass); }
//用例 public void testLoginWithIncorrentUsernameAndPassword()
{
}
}
5、配置AndroidManifest.xml
跑测试用例之前,还需要修改下文件的android:targetPackage为被测应用的根的包名
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.xiaomi.channel" />
标签:des android cWeb style blog http io ar color
原文地址:http://www.cnblogs.com/Pierre-de-Ronsard/p/4123320.html