安卓APP稳定性测试-----monkey

      稳定性测试:通过在主流真机终端上,模拟真人对App的操作行为,支持自动登陆、运行时间可配置,有效点击覆盖更全更深,从而发现程序的Crash及ANR,一般使用monkey对应用程序进行稳定性测试。

      monkey:Android SDK自带的命令行测试工具,向设备发送伪随机事件流,可以在模拟器里或实际设备中运行,它向系统发送伪随机的用户事件流,如按键输入、触摸屏输入、手势输入等,实现对正在开发的应用程序进行压力测试。

优势

  1. 脱离Case的依赖
  2. 可封装自动化执行
  3. 可封装后作为客户端性能测试的驱动

缺点

  1. 完全随机,不可控
  2. 不支持IOS系统

monkey测试步骤:

  1. Monkey程序由Android系统自带,使用Java语言写成,在Android文件系统中的存放路径是:/system/framework/monkey.jar;Monkey.jar程序是由一个名为“monkey”的Shell脚本来启动执行,shell脚本在Android文件系统中存放路径是:/system/bin/monkey;
  2. 通过在CMD窗口中执行: adb shell monkey{+命令参数}来进行Monkey测试;
  3. 基本的命令如下:
    $ adb shell monkey [options] <event-count>    //options
    $ adb shell monkey -p your.package.name -v 500   //举例:向指定包发送500个伪随机事件
    $ adb shell monkey --ptc-touch        //触摸事件百分比
    $ adb shell monkey --ptc-motion       //动作事件百分比
    $ adb shell monkey --ptc-trackball    //轨迹球事件百分比
    $ adb shell monkey --ptc-nav          //基本导航事件百分比
    $ adb shell monkey --ptc-majornav     //主导航事件百分比
    $ adb shell monkey --ptc-syskeys      //按键事件百分比
    $ adb shell monkey --ptc-appswitch    //启动时间百分比
    $ adb shell monkey --ptc-anyevent     //其他类型事件的百分比,包括keypress、不常用button以及其他未提及事件

     

monkey注入事件机制:

  1. Monkey注入系统事件是通过framework层的hidenApi获取系统服务;
  2. 触摸事件:包括屏幕以及物理键的触摸,滑动,点击事件,Monkey通过InputManager.getInstance().injectInputEvent(keyEvent, int);构造对应的事件,然后调用该接口执行事件;
  3. 调用Android系统组件的事件,Monkey通过IActivityManager实例来获取activity的系统服务,从而启动某个activity;
  4. window事件:指操作Window的事件,Monkey通过获取IWindowManager实例开启系统窗口服务,并执行窗口事件;

monkey的组织结构

  • Monkey的核心类是Monkey.java,MonkeyEventSource.java,MonkeyEvent.java
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章