zoukankan      html  css  js  c++  java
  • Fonemonkey录制回放android应用程序界面交互操作fonemonkey for android自动化初探


     


    Introduction



    FoneMonkey records and plays back user interface interactions with native Android applications.


    要使用FoneMonkey,则将FoneMonkey构建到你的Andr​​oid应用程序。然后,您可以使用FoneMonkey控制台录制和播放用户界面交互。 控制台是一个独立的桌面应用程序可以连接到Android模拟器或实际设备(通过USB)或到达的IP地址连接上运行的应用程序。


    可以插入些验证步骤到你录制的脚本代码中,作为持续集成构建的一部分,生成可执行的JUnit 测试脚本。



    下载与安装

    1. 下载 fonemonkey.zip.
    2. 通过以下更新网站安装Fonemonkey 控制台插件   
            Eclipse Update Site: http://www.gorillalogic.com/userfiles/androidmonkey/FoneMonkeyUpdatesite/
            注意:当您第一次启动控制台,系统将提示您提供的Android SDK安装目录的路径。
        
       3. 实现你的android项目FoneMonkey 自动化.具体步骤如下:      

         1)Eclipse中安装AspectJ开发工具 插件;
        
     
           2)右击你的待录制工程,select Configure > Convert to AspectJ Project...
           3)AspectJ jar 将被加入到classpath,和AspectJ builder被加入到android project builder(你可撤销select AspectJ Tools > Remove AspectJ Capability)
           4)解压FoneMonkeyAndroid.zip文件。 fonemonkey文件夹复制到您的android project项目的根目录,展开项目目录文件夹;      
           5)右击fonemonkey/aspects文件夹,select Build Path > Use as Source Folder(aspects 包括FoneMonkey要求拦截应用程序事件有关AspectJ切入点的定义);
           6)打开fonemonkey/libs目录,选择fonemonkey.jar 和servlet-api.jar,右击select Build Path > Add to Build Path      
           7)打开工程的manifest file,添加下列权限:
                (1).android.permission.GET_TASKS
                (2).android.permission.INTERNET      
            8)Clean-build 和运行程序



    启动控制台 如果尚未运行过FoneMonkey控制台 ,首次运行控制台,会被提示输入你的Andr​​oid SDK的位置。
    你设置SDK location 通过 Edit > Set Android Home... 菜单项。
    连接到您的应用程序 Select the menu option Connect > Emulator/Local Device
    Select Connect > Remote Device 连接到远程设备的应用程序上;



    控制台将显示一条消息,表明它是否可以成功连接。


    开始录制



    正如您与您的应用程序互动,FoneMonkey记录相应的命令。 每个记录的命令有以下值:
    • action - 记录interfaction,例如“Click”或“EnterText”。
    • component - 接受动作的组件类型,例如“Button”或“InputField” 。  此组件可跨平台,许多不同的Andr​​oid类可以映射到相同的FoneMonkey组件类型。
    • monkeyID - 组件的标识符。 FoneMonkey派生一个默认标识符基于一些逻辑元件。 例如,一个按钮的默认monkeyID是其标签文本。
    • Args - 有些命令有关联的参数。 例如,EnterText命令有一个参数,它提供了输入值的文本价值。
    • Timeout - 以毫秒为单位,等待命令的相应时间。默认的超时时间通过  Play > Set Default Timeout... 菜单来设定.



    播放您的脚本 单击工具栏上的“播放”按钮,播放你的脚本。 双击某一行将自动播放此行脚本,也可以选择并播放多行命令。
    若只有一行被选中,则点击播放按键,将从此行开始播放脚本直至末尾。如果脚本回放过程中发生故障,例如,如果无法找到组件,突出失败的地方和消息显示在控制台窗口的底部。



    编辑你的脚本
    你可以在控制台表格中直接改写你的脚本代码, 右击表中的单元格将显示各种编辑选项。 你可进行 Edit > Insert Row or Edit > Append Row

    增添验证步骤
    要添加一个验证步骤,需创建一个新行,右击菜单中选择Duplicate Row,或通过选择Edit > Insert Command,即可插入一个验证步骤在此两行中。
    右击此行,可改变和选择某个验证命令,每个验证命令需要两个参数。第一个参数是验证组件属性,而第二个参数是预期值。
    例如,你可以通过以下命令验证当前“Planets”的下拉列表中被选项为Mercury.VerifyExact DropDownList Planets selectedItem Mercury The property selectedItem is the property of an Android Spinner component that contains the currently selected value.如下的验证命令可用。
    • VerifyExists - 验证是否存在此monkeyID的组件。
    • VerifyExact - 验证是否存在此类型和monkeyID的组件,ARG1指定属性,ARG2指定精确值。
    • VerifyWildcard - 验证是否存在此类型和monkeyID的组件,ARG1指定属性,ARG2指定一个通配符模式匹配(文件模式匹配包含*通配符?)。
    • VerifyRegex - 验证是否存在此类型和monkeyID的组件,ARG1指定一个匹配正则表达式属性,ARG2指定精确值。





    认识组件属性


    如上所述,FoneMonkey验证组件的属性。 这些属性是“JavaBean属性”的组成部分,它们的值是通过getSomeProperty 和 isSomeProperty 方法提供的。属性名是方法的名字去掉"get" or "is", 并以小写字母开头。
    For example, the isChecked() value of a CheckBox is accessed by the property "checked", and the getSelectedItem() value of a List is accessed by the "selectedItem" property.

    您可以通过阅读组件的Javadoc文档,查找组件属性的名称。
    所有属性值转换为字符串值比对预期值或形式。

    某些情况下需设定执行脚本等待时间

    FoneMonkey会重试执行命令,直到执行完成或执行超时。超时值设置菜单项:Play > Default Timeout。 在控制台上设置超时值(以毫秒为单位),您可以设置单个命令的超时。

    例如,假定应用程序的一个按钮是采取从一到十秒的计时方式,来控制检索所有数据的所需的时间的。则执行验证此按钮时,你可以强制脚本等待10秒,设置VerifyExists 超时值为10000.



    设定播放速度
    选择菜单项 Play > Playback Speed,设置执行完每个命令后迟延多少毫秒,来控制播放速度 Because FoneMonkey retries failed commands, it's possible to set the delay time to zero in which case the script will run as fast as possible.由于FoneMonkey会重试失败的命令,在这样情况下,尽可能设置延迟时间为零,以便尽快的执行脚本。

    生成 JUnit Tests



    控制台可以导出JUnit tests的执行脚本。这些脚本用例作为独立的进程,运行在任何JDK的平台上。不能直接运行在android模拟器和设备。



    要在Eclipse中运行测试,需创建个新的Java项目。 选择菜单项 File > Export JUnit TestCase 生成一个 JUnit TestCase.保存TestCase的源代码到你新创建的java项目的默认包中。







    认识生成的 JUnit Tests



    下面是一个生成的JUnit TestCase的例子:




    对每个命令,FoneMonkey每行代码会生成相对应的命令行
    app.find("ComponentType", "monkeyID").action(args)

    运行生成的测试用例

    运行在Eclipse中生成的TestCase,右击此源文件,并选择Run As...> JUnit Application。 Eclipse会提示TestCase运行情况,然后将执行的TestCase的结果以JUnit视图形式显示出来。
  • 相关阅读:
    JavaScript 循环绑定之变量污染
    JavaScript 函数初级
    JavaScript 异常处理
    JavaScript 分支结构
    定位布局
    浮动布局
    css 伪类选择器
    readlink、find-exec参数、file命令
    pwd命令和修改PS1环境变量在bash行的显示
    split、paste命令
  • 原文地址:https://www.cnblogs.com/ccxniit2004/p/2340375.html
Copyright © 2011-2022 走看看