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

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

 

一、创建测试工程java

打开Eclipse,点击File->New一个Android Test Project ApkTest,而后点击下一步的时候选择This project,如下是新建的空工程android

二、创建文件夹lib放置依赖包,将robotium依赖包放进lib中,再由buildpath导入app

 

三、将被测APK从新签名ide

由于robotium要求被测应用和测试代码要有一致的签名, 因此咱们须要把下载到的apk,经过re-sign.jar来产生debug key的apk,这个从新生成的apk就会跟测试项目签名一致了工具

在命令行下 经过 java -jar re-sign.jar就会出现一个图形界面,而后将apk拖到这个界面中:测试

3.1 会生成一个以debug结尾的APK(这个就是被从新签名APK)ui

3.2 会有一个提示框提示被从新签名的包名以及入口activity的名字this

四、写测试工程spa

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()
  {
  }
}

五、配置AndroidManifest.xml命令行

跑测试用例以前,还须要修改下文件的android:targetPackage为被测应用的根的包名<instrumentationandroid:name="android.test.InstrumentationTestRunner"android:targetPackage="com.xiaomi.channel" />

相关文章
相关标签/搜索