zoukankan      html  css  js  c++  java
  • 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】

  • 相关阅读:
    [zt]在XML序列化时去除默认命名空间xmlns:xsd和xmlns:xsi
    线程间操作无效: 从不是创建控件“...”的线程访问它。
    Unity IoC + WCF + wsHTTPBinding + Certificate Authorization
    [转]PowerDesigner使用教程 —— 概念数据模型
    C# Post数据和接收简单示例【摘】
    163相册验证码图片的识别手记之一 去除干扰
    实现WCF和Unity 的集成
    Html.ActionLink 几种重载方式说明及例子
    如何从程序员到项目经理【转帖51cto】
    OSG闪存
  • 原文地址:https://www.cnblogs.com/deepstone/p/3999994.html
Copyright © 2011-2022 走看看