• robotium学习及整理


    一、                      Robotium 简介

    Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长 按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。Robotium结合Android官方提供的测试框架达到对应用程序进行自动化的测 试。另外,Robotium 4.0版本已经支持对WebView的操作。Robotium 对Activity,Dialog,Toast,Menu 都是支持的。

      Robotium 核心类是Solo 通过Solo 类可以对控件进行各种操作

    Robotium 官网:

    http://robotium.com/

                           

    Robotium 中文官网

    http://www.robotium.cn/

    2       环境搭建

    安装并配置JAVA_HOME

    下载JDK1.7 并安装,安装过程中全用默认安装即可

    JDK 环境配置

    点击我的电脑---属性---高级---环境变量

    新建环境变量

    如果是默认安装就是上面这个路径,需要依据实际路填写

    确定保存退出  

    JDK  配置验证

    开始----运行---输入CMD

    在命令提示符下输入java –version

    确认版本与你安装的版本是否相同

    下载ADT 工具包并配置Android 环境

    在百度输adt-bundle-windows-x86-20130917

    选红色框下载

    下载解压缩之后就可以配置Android 了

    点击我的电脑---属性---高级---环境变量--- 系统变量(新建)

      ANDROID_HOME=XX盘符: adt-bundle-windows-x86-20130917sdk

    ANDROID_SDK_HOME= XX盘符: adt-bundle-windows-x86-20130917sdk

    ANDROID_AVD_HOME= XX盘符: adt-bundle-windows-x86-20130917sdk

    选择系统变量中 path 编辑 % ANDROID_HOME %TOOLS;

    % ANDROID_HOME %platform-tools

    确定退出

      ANDROID  环境配置确认

    在开始---运行---输入CMD

    在命令提示符下输入

    ECHO % ANDROID_HOME %

    ECHO % ANDROID_SDK_HOME %

    ECHO % ANDROID_AVD_HOME %

    ECHO %PATH%

    确认相关信息与此前配置的完全相同,若不相同重启之后在确认一次,部分机器重启才能生效

    以下是我电脑是配置之后的显示的结果,注意(我电脑用的是20130219 版的ADK)

    3 相关工具的准备

       下载Robotium.jar

    (我下载的:https://github.com/RobotiumTech/robotium/wiki/Downloads)

       如果需要操作Excel 要下载jxl

       如果需要操作Oracle 要下载Oracle 对应的驱动包

       官网演示APK(记事本APK) 下载

    配置Host 以便能访问GOOG

    方式1: 打开站长工具网站

    http://tool.chinaz.com/

    选择其它工具—超级ping

    在输入框输:dl-ssl.google.com

    检测站点只选 海外就行了

    点查询

    查询结果如下

    我们一般选择响应时间快的加入到host文件中

    打开C:WINDOWSsystem32driversetchost

    按以下格式填写

    Ip    域名

    另外还有一种方式

    http://www.360kb.com/kb/2_122.html  中的所有信息全加到HOST

      SDK 更新配置

    运行Android 工具中的SDK Manager.exe

    点击Tool----Options

    在Use download cache 打V

    醒置完之后就可以启用更新了

    选择你想要的API 版本就可以更新了,注意该更新时间很长,有时需要一天,中间不要关机

    4:模拟器创建

    启动Eclipse

    首次启动时会询问Workspse 路径

    此时选择一个你自定义的一个路径就可以了

    选择Windows---Android Virtual Device Manager----

    点新建之后出现如下画面,注意在Device 最好不要选择Nexus 开头的 

    如果选择的话最终会出现新增的模拟器右边没的其它按键不易使用

    AND 名称一定要记住,后续用命令启动措拟器时需要用到,另外为了后续测试

    此处SD CARD 最好配置一点空间

    确定之后界面像这样

    你仍可以选中重新编辑

    模拟器启动方式

    1:Eclipse 中用AVD 管理器启动

     在上面界面点Start

    启动之后模拟器界面

    模拟器启动方式2

    命令提示符下启动

    开始---运行---输CMD

    Emulator @模拟器名称

    用命令提示符启动之后画面就是像上面那样,注意启动之后命令提示符的那个界面不能关掉,一旦关掉模拟器也会关掉的

    5重签名工具的使用

    方式1:基于UI 层级的操作

    下载re-sign.jar

    (我下载的)

    双击re-sign.jar

    将需要重签名的APK 拖动到工具内

     

    (提示找不到zipalign,于是我下载了一个)

     

    签名之后系统会弹出信息

    此里需要记录相关信息

    第一栏是 APK 的包名

    第二栏是主Activity 名 也就是你启动第一个画面相应的类名

     

     

    签名方式2

    基于脚本方式全自动运行的

    将需要重签名的apk 与重签名工具放在同一个目录下

    双击重签名.bat

    签名之后会在当前目录下新增一个目录

    进入新增的目录即会看到一个重签名OK 的apk 文件

    6        APK  的安装与卸载

    测试过程中均是采用adb 与机器交互,此处安装也用adb 进行安装与卸载

    adb  install   apk 路径

    Apk 路径可以在 输入 adb instll  之后选择要安装的APK 拖入到命令提示符即可

    假如安装过程中出现如下信息有可能是签名有问题,可以重新签名一次

    将重签名工具和要签名的APK 一起放到androidsdk.android 目录下

    再运行一次重签名工具

    签名完再安装

    以下画面显示最后一次安装成功了

    安装成功之后如下所示

    安装过程中还可能出现如下所示异常信息

    找不到模拟器(一种是根本没有启动模拟器

    另一种是模拟器启动了但仍找不到,此时有可能是 其它手机管家软件占用了5037  端口,需要杀掉其它软件进程之后再执行以下命令

    (专门针对模拟器已启动,但adb devices 找不到备的处理方式)

    Adb kill-server

    Adb start-server

    Adb devices

    确认是否能找到设备

    在模拟器的APP 栏即可找到对应的APP 了

    点击模拟器的红色框框处

    出现如下画面左滑

    即可找到你新装的APK

    APK  卸载

    卸载之前需要先获取对应包名

    可以按如下方法获取到包名

    1: adb shell

    2:  cd /data/data

    3:  ls

    在清单中找到与你apk 相同的名字并记录下来

    退出adb 命令 用Exit

    卸载

    Adb uninstall  com.xxxxxxx.xxxx

    假如要卸载计算器程序

    Adb uninstall com.android,calculator2

    7正式使用Robotium

    Robotium 提供两种工作方式(一种有源代码的测试,一种没有源代码的测试)

    没有源代码的需要重新签名

    方式1 有源码的测试

    有源代码的测试(此处以官网记事本apk 为例)

    打开Eclipse  

    导入官网记事本apk 工程

    File---import

    General---Existing  Projects Into WorkSpace

    选择源工程存放路径

    点完成

    删除原始APK

    重新编译生成新的APK

    Project----Clena

    选中需要重新编译的APK 点OK

     

    选择工程点Run as----Android  Application

    运行之后会在BIN  目录重新生成一个APK

    正式进入测试工程

    File--Project

    选择Android----Android Test Project

    按红色框框选择

    选择APK 运行的版本,模拟器创建时用什么版本,此处就选什么版本

    我的机器因为只有17所以我 选用的是17 API

    点完成

    在测试工程目录下新建Lib 目录

    复制Robotium,jar jxl.jar ojdbc.jar 到Lib 目录下

    选中三个jar 包导入到工程

    导入之后确认界面

    其它配置

    选择测试工程----Build Path---Configure Build  Path

    一定要在 Order And Export 中将新加入的jar 包打 V 不然在测试过程中会报   Solo 异常

    点击测试工程,确认以下两个属性配置是否正确

    1:Android 的版本信息

    2: 字体格式----UTF-8

    3:签名文件

    在测试工程中的SRC 目录下新建一个包

    Src---new---package

    包名:com.robotium.test

    将Notepad.java  copy  到com obotium est 目录下

    修改AndroidManifest.xml

    AndroidManifest.xml   一定要按以下连线的方式配置,很多初学者会出错

    配置完就可以用启动测试工程了

    Run as ---Android Junit Test  (注意这里需要选 Junit)

    如果首次运行 AndroidManifest.xml  出现错误提示时只需要在Eclipase 中执行清空工程即可

    如果一切顺利的话画面就是这样的

    针对上面这个测试类中的部分方法稍作解释

    方式2 (无源码的测试, 自学的同仁主要是以这种方式为多,拿不到工程源代码)

       

    先按上面APK 所述对APK  重签名并将APK 安装到手机

    新建测试工程

    没有源码的就需要选择 This  Project  

    点完成

    获取安装包名与Activity 方式

     方式一如上面重签名所述用RE-SIGN.JAR 获取

     

      另外一种方式用命令方获取

    Aapt dump badging xxxx.apk

    第一个框为包名

    第二个框为主Activity 名

    如果取包名与Activity 在命令行中不方例还可以用以下方式获取

    Aapt dump badging xxxx.apk  >c:apk.txt

    之后打开c:apk.txt

    修改测试工程中的AndroidManifest.xml

    在com.ganji.test 包名下新建一个测试类

    最基本的一个测试类应按如下格式编写

    首先必须继承ActivityInstrumentationTestCase2

    其次Activity  必须与被测应用Activity 相同

    第三就是必须有一个

    setUp  tearDown 方法

    第四所有正式的测试方法必须以test 开头

    在测试工程新建Lib 目录 并复制相应jar 包到lib 目录下

    导入jar 到工程

    在Order and Export 中选中新加入的jar 并打 V

       

    由于Robotium 定位是基于控件的,如果要对控件进行操作必须先找到元素的定位方式

    8 控件定位方式

    元素获取可以Android ools 目录下的hierarchyviewer.bat 

    在模拟器中启动被测APP

    双击hierarchyviewer.bat

    先选中高亮的部分---再点Load View Hierachy

    加载之后画面会是这样

    9.脚本编写

    用例1:

    选择人才简因库 -à -- 返回

    测试代码

    用例2

    依次点击首页下方五个按键(此处采用遍历的方式进行)

    10 常用控件使用举例

    11  Solo 源码解释

    APP  本身的元素定位及操作源码

    下面以点击操作为例

    首先在Solo 类中找到以下方法(点击按键操作)

    public void clickOnButton(String text) {

                            clicker.clickOn(Button.class, text);

    }

    接下来我们看下clicker 类

    网页元素定位定位及操作源码 (网页部分元素定位底层主要是采用JS  注入定位)

    首先我们在Solo 类中找到以下方法

    public void clickOnWebElement(By by, int match){

                            clicker.clickOnWebElement(by, match, true);

                }

    在clicker 类中调用了ClickOnWebElement 方法

    这个方法获取控件时又调用了waiter 中的waitForwebElement 方法

    waitForwebElement  方法又调用了searcher.searchForWebElement

    12 Log 信息记录与查看

    在这里采用Android.Util.log

    Log记录编写格式:

    其中TEST  字符可以自已任意定义

    Log.i("TEST", "显示的信息");

    Log.v("TEST", "显示的信息");

    Log.e("TEST", "显示的信息");

    Log.d("TEST", "显示的信息");

    Log 打印输出

    在命令提示符下输入chcp 65001 (让命令提示符下支持显示中文字符);

    输入adb shell logcat –s TEST 即可看到log 信息

    13常用方法二次封装

    14  WAP  抓包工具的使用

    WAP  网页元素的获取(在不清楚应用主机时需要用抓包工具获取主机地址)

    此处采用Fiddle 抓包软件

    1: 下载并安装Fiddle (全采用默认安装即可)

    2: Fiddler 开启远程连接。Fiddler 主菜单 Tools -> Fiddler Options…-> Connections页签,选中Allow remote computers to connect。

    3:重启Fidler(这一步很重要,必须做)。

    4:获取PC的IP地址:

    在开始---运行— 输入CMD

    在命令提示符下输入ipconfig

    记录自已电脑的IP 地址,在手机端设置是会用到
    设置手机代理:

    需要手机和安装 Fiddler 电脑在同一WIFI下,手机连接到WIFI。打开手机的WIFI设置界面,选中连接的WIFI,长按,弹出如下界面,选择“修改网络”。

    代理验证

    在命令提示符下输入 telnet 主机IP 空格 端口号,

    代理设置Ok 界面会是这样

    此时可以在手机上操作观察Fiddle 的信息

    在host 栏可以看到訪问的主机,之后在浏览器中输入对应的网址就可以用Firebug 获取控件元素了

    金阳光自动化资料+视频:

    1. 官网:http://www.goldensunshine.cc/
    2. 关注官方新浪微博:金阳光woody
    3. 百度搜:金阳光测试,找到金阳光老师视频
    4. 更多最新视频在qq群:212260449更新
    5. 资料csdn博客:http://blog.csdn.net/haorenmin2008
    6. 金阳光微信公众账号:搜索金阳光自动化
  • 相关阅读:
    $Noip2018/Luogu5022$ 旅行
    $Noip2018/Luogu5020$ 货币系统 $dp$
    $Noip2018/Luogu5021$ 赛道修建 二分+树形
    $Noip2018/Luogu5019/Luogu1969$ 铺设道路
    $Poj1220/AcWing124 Number Base Convertion$ 进制转换+高精除
    $Poj1050 To the Max$
    $Poj1723/AcWing123 Soldiers$ 排序
    luogu质数距离
    模板线性筛
    CERC2016 bfs 最大生瓶颈边 lca
  • 原文地址:https://www.cnblogs.com/xiaomayizoe/p/5239041.html
Copyright © 2020-2023  润新知