安卓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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章