首页 > 代码库 > robotium 测试APK<一> 建立测试工程

robotium 测试APK<一> 建立测试工程

  • 1、准备Android开发环境
  • 2、准备签名工具http://www.troido.de/re-sign.jar

 

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
  pu
blic 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" />

 

robotium 测试APK<一> 建立测试工程