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

相關文章
相關標籤/搜索