1. 程式人生 > >Monkey測試命令的使用

Monkey測試命令的使用

Monkey測試

Monkey是Android中的一個命令列工具,可以執行在模擬器裡或實際裝置中。它向系統傳送偽隨機的使用者事件流(如按鍵輸入、觸控式螢幕輸入、手勢輸入等),實現對正在開發的應用程式進行壓力測試。Monkey測試是一種為了測試軟體的穩定性、健壯性的快速有效的方法。

Monkey的特徵

  • 測試的物件僅為應用程式包,有一定的侷限性。
  • Monky測試使用的事件流資料流是隨機的,不能進行自定義。
  • 可對MonkeyTest的物件,事件數量,型別,頻率等進行設定。

Monkey基本命令引數的介紹

  • 基本命令格式 $ adb shell monkey [options]
  • 如果不指定options,Monkey將以無反饋模式啟動,並把事件任意傳送到安裝在目標環境中的全部包。 $ adb shell monkey -p com.luxji.watchesapp -v 500
  • -p 指定測試包名,可以指定多個
  • -v 指定輸出資訊級別,分為三種
    • -v 僅提供啟動提示、測試完成和最終結果等少量資訊, 適合於一般的除錯
    • -v -v 提供較為詳細的日誌,包括每個傳送到Activity的事件資訊
    • -v -v -v,最詳細的日誌,包括了測試中選中/未選中的Activity資訊
  • -s 指定seed值,如果seed相同,則兩次Monkey測試所產生的事件序列也相同的
  • -c 指定一個或多個類別的activity被啟動
  • -ignore-crashes和-ignore-timeouts,在應用崩潰和無響應的情況下,monkey不會停止。
  • -throttle MILLISEC 表示每一個隨機事件中間的時間間隔
  • -ignore-security-exceptions:通常,當應用程式發生許可錯誤(如啟動一個需要某些許可的Activity)時,Monkey將停止執行。如果設定了此選項,Monkey將繼續向系統傳送事件,直到計數完成。
  • -monitor-native-crashes:監視並報告Android系統中原生代碼的崩潰事件。如果設定了–kill-process-after-error,系統將停止執行。
  • -kill-process-after-error:如果程式出現錯誤,monkey將結束此程式程序。
  • -hprof:設定此項,將在monkey事件序列之前和之後立即生成profilling報告。這將會在data/misc中生成大檔案(約5mb)所以要小心使用它。
  • -pct-touch:調整觸控事件的百分比(觸控事件是一個down-up事件,它發生在螢幕的某單一位置)。
  • -pct-motion:動作事件的百分比(動作事件由螢幕上某處的一個down事件、一系列的隨機事件和一個up事件組成)。
  • -pct-trackball:調整軌跡事件的百分比(軌跡事件由一個或幾個隨機移動組成,有時還伴隨著點選)。
  • -pct-syskeys:調整系統按鍵事件的百分比(這些按鍵通常被保留,由系統使用,如home,back,start call,end call及音量控制)。
  • -pct-nav 調整基本導航事件的百分比(導航事件來自方向輸入裝置的up/down/left/right組成)。
  • -pct-majornav:調整“主要”導航事件的百分比(這些導航事件通常引發圖形介面中的動作,如:5-way鍵盤的中間按鍵、回退按鍵、選單按鍵)
  • -pct-appswitch:調整啟動Activity的百分比。在隨機間隔裡,Monkey將執行一個startActivity()呼叫,作為最大程度覆蓋包中全部Activity的一種方法。
  • -pct-anyevent:調整啟動Activity的百分比。它包羅了所有其它的事件型別,如:按鍵,其它不常用的裝置按鈕。
  • -pct-flip:
  • –wait-dbg:停止執行中的Monkey,直到有偵錯程式和它相連線。
  • –dbg-no-events:設定此選項,Monkey將執行初始啟動,進入到一個測試Activity,然後不會再進一步生成事件。為了得到最佳結果,把它與-v、一個或幾個包約束、以及一個保持Monkey執行30秒或更長時間的非零值聯合起來,從而提供一個環境,可以監視應用程式所呼叫的包之間的轉換。
  • -port:為monkey開啟專用埠。此時只monkey不會幫你亂點選,而此時你自己就是一隻monkey了,在你亂點的時候,monkey會輸出你點選後回饋的資訊。如果你打完命令之後模擬器上沒有啟動你所要啟動的包,你需要自己啟動,但是你只能啟動你-p中指定的那幾個包。ctrl+c中斷。

Monkey使用方法

在windows環境下,使用dos命令列。在桌面按下Ctrl+R,然後輸入cmd,彈出命令列介面。

  1. 啟動模擬器或連線到真機
  2. 命令列輸入 adb shell, 然後 cd data/data,monkey只能測試改目錄下的應用,輸入su,切換到管理員
  3. 輸入 monkey -p com.android.calculator2 -v 500 。 -p 指定包名, -v 指定輸出資訊級別,如下:adb shell monkey -p com.htc.Weather –v -v 10000
  4. 最後再指定測試的次數,Monkey隨機觸發的事件次數
  5. 可以指定 -s(seed值),用法如下:adb shell monkey -p com.htc.Weather –s 10 100

Monkey停止的三種情況,1.應用報錯 2.應用出現anr異常,無響應 3 指定包名後,應用中有跳往其他原因的意圖時,也會報錯停止