Robotium -- 针对apk包的测试

在使用Robotium测试的时候,有时候,测试人员并没有代码权限,而Robotium也可以在只有apk文件进行测试,下面就介绍一下这个过程。

 

1.设置环境变量

安装jdk环境和sdk环境

2.安装签名文件

 因为robotium要求被测应用和测试代码要有一致的签名, 所以我们需要把下载到的apk,通过re-sign.jar来产生debug key的apk,这个重新生成的apk就会跟测试项目签名一致了。

点我下载re-sign.jar

打开运行cmd,切换到re-sign.jar文件目录下输入命令java -jar re-sign.jar,点击回车即可打开该jar文件。

3.重新签名apk

将apk包,直接拖拽进去,就会自动生成一个debug key的apk,产生新apk的过程中会弹出一个信息框,记得截下图,因为里面有两个信息我们等会的代码中需要用到

4.安装apk

将重新签名后的apk安装到设备上,若能顺利打开,无crash,则说明重新签名成功。

5.创建项目

打开Eclipse,点击File->New一个Android Test Project, 然后点击下一步的时候选择This project(因为我们没有应用的源码),然后选择要在哪个android版本上测试,并引入Robotium.jar包

6,修改manifest.xml文件

将Package名改为被测文件的包名(重签名时截图中有)

7,新建一个junit测试类

代码如下

[java] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. package com.tangbc.test;  
  2.   
  3. import android.app.Activity;  
  4. import android.test.ActivityInstrumentationTestCase2;  
  5.   
  6. import com.robotium.solo.Solo;  
  7.   
  8. @SuppressWarnings("rawtypes")  
  9. public class MomoTest extends ActivityInstrumentationTestCase2 {  
  10.     // 定义变量  
  11.     public Solo solo;  
  12.     public Activity activity;  
  13.     private static Class<?> launchActivityClass;  
  14.   
  15.     // 对应re-sign.jar生成出来的信息框里的两个值  
  16.     private static String mainActiviy = "com.immomo.momo.android.activity.WelcomeActivity";  
  17.     private static String packageName = "com.immomo.momo";  
  18.   
  19.     static {  
  20.         try {  
  21.             launchActivityClass = Class.forName(mainActiviy);  
  22.         } catch (ClassNotFoundException e) {  
  23.             throw new RuntimeException(e);  
  24.         }  
  25.     }  
  26.   
  27.     @SuppressWarnings("unchecked")  
  28.     public MomoTest() {  
  29.         super(launchActivityClass);  
  30.     }  
  31.   
  32.     @Override  
  33.     protected void setUp() throws Exception {  
  34.         super.setUp();  
  35.         this.activity = this.getActivity();  
  36.         this.solo = new Solo(getInstrumentation(), getActivity());  
  37.   
  38.     }  
  39.   
  40.     public void testLogin() {  
  41.         solo.sleep(2000);  
  42.         solo.clickOnText("注册");  
  43.         solo.sleep(2000);  
  44.     }  
  45.   
  46.     @Override  
  47.     public void tearDown() throws Exception {  
  48.         solo.finishOpenedActivities();  
  49.     }  
  50.   
  51. }  

8.最后, run as android junit test,就可以进行测试了

 

【转载:http://blog.csdn.net/tt75281920/article/details/28087583】

posted @ 2014-09-29 12:42  deepstone  阅读(1269)  评论(0编辑  收藏  举报