• [Android] Robotium手机自动化测试(仅需apk安装包版)——环境搭建


    Robotium的手机自动化测试,很多都是利用app源代码里的Id定义来开发自动化脚本。而在我开始要为项目中的app写自动化测试脚本的时候,开发的环境还很不稳定,app也还处于开发的状态中,而且,在需要自己搭建Android整个开发环境的时候,也遇到许多需要耗费很多时间去解决的开发问题。因此,我觉得,在这种情况下,如果自己的自动化脚本环境能和开发完全独立,那么,应该可以更好地展开自动化脚本的开发。所以,在网上一番探索后,选择了只需要apk安装包的方法。

    当然,这样也会遇到问题,比如,在开发还没有完全结束前,app的功能会随时发生变化,而在原有基础上开发好的自动化脚本也就需要很多的rework。但是,我希望的是,在app的功能还没有完全稳定前,可以根据现有的app,把整个自动化开发框架搭好,此后,便可以在这个框架的基础上,很轻松地去改一些细微的功能变动部分的自动化脚本。

    所以,从测试的角度上看,仅需要apk安装包的方式,主要有以下几个优点:

    1. 测试人员无需在Eclipse中搭建复杂的Android开发环境(基本的Android SDK和Java环境还是必需的。)

    2. 在app还没开发完全的情况下,测试人员可以根据大致的app功能,把自动化开发框架建好,以利于后期对具体功能展开自动化脚本的开发。

    3. 在进行自动化测试时,即使不用到持续集成,也可以较为方便地测试迭代中的app——只需要在测试设备上(模拟机或者手机)安装最新的app即可。

    下面就来介绍下,这种仅需apk安装包版的Robotium手机自动化开发环境的准备。

    1. 从开发人员处获取apk安装包/或者Git等源代码控制工具中获取源代码

      在我的项目中,是开发的源代码是使用MVN作为项目管理工具,所以,只需要打开命令提示符(cmd),然后进入app的源代码,敲入mvn install,即可得到apk文件

      例如:

      1) cd .../TestApp

      2) mvn install

      3) Build Success后,在TestApp目录下找到target目录,在target目录中,即可找到最新生成的apk文件。

    2. Android的apk发布,需要签名。具体信息,详见:http://developer.android.com/tools/publishing/app-signing.html

      为了顺利在测试设备上安装apk,我们需要对拿到的apk进行重新签名(Re-sign)。

      重新签名的工具,网上很多,我使用的是re-sign.jar。

      在用户目录下,会有一个.android的目录,把re-sign.jar放在该目录下。

      Re-sign步骤如下:

      1) 打开命令提示符:cmd

      2) cd .../.android

      3) 运行java -jar re-sign.jar,打开resign工具

      4) 把最新的apk文件拖拽到打开的resign工具中,完成后,就会产生一个重新签名的apk文件。

      Ps: resign后,会得到一个package name和main activity name,我们需要记下这两个名字,在第4步中会用到。

      

    3. 在模拟机中安装重新签名后的apk文件,步骤如下:(在真机中安装与模拟机类似,具体操作,Google或者Baidu即可)

      1) 打开Android SDK安装目录

      2) 找到sdk下的platform-tools目录

      3) 把重新签名后的apk文件放在该目录下

      4) 打开命令提示符:cmd

      5) cd .../sdk/platform-tools

      6) 打开要安装apk的模拟机

      7) 运行命令:adb install testedapp.apk。看到Success,说明apk已经安装成功了。

      Ps: 在安装apk之前,确保旧版的app已经在模拟机中卸载完成。否则,执行该命令,会提示说安装失败。

    4. 在eclipse中,新建一个Android Test Project,进行配置,使得自动化脚本与要测试的apk进行关联。

      1) 修改Android Test Project下的AndroidMainfest.xml文件,使得粗体标注的package名与resign生成的名字一致
        <instrumentation
              android:name ="android.test.InstrumentationTestRunner"
            android:targetPackage ="com.example.mobile.testedapp" />
      2) 在自动化脚本测试类中,声明初始类,也要与resign生成的main activity类名一致
        private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME ="com.example.mobile.testedapp.MainActivity" ;
    5. 这样,就可以在eclipse中的Android Test Project中尽情地开发自动化脚本,并在安装好的apk基础上运行了!

      

    Reference: 

    https://code.google.com/p/robotium/wiki/RobotiumTutorials

  • 相关阅读:
    Nginx配置中运行与启动的详细介绍
    php实现文件上传进度条
    C# 提取逗号分割的字符串
    【sas proc sql】out join
    【SAS NOTE】substr函数
    【sas proc sql】子查询
    【SAS NOTE】数字字符互换
    【SAS NOTE】数组
    【sas Notel】merge
    【sas sql proc】inner join or outer join
  • 原文地址:https://www.cnblogs.com/enjoytesting/p/3622657.html
Copyright © 2020-2023  润新知