寫完應用之後,作完單元測試和功能測試,有必要對應用的抗打擊能力做個測試,最好的方法是雇個“猴子”在測試,猴子 可以胡亂瞎按鍵,在這種情況下,你的應用是否還能正常工作呢?
Android 測試包中提供了一個Monkey工具,就提供了“猴 子”功能,不過比真”猴子“還要智能一些,你還可以指揮這個猴子, 比如按鍵的比例,觸發某個事件的頻率等等。
一 個簡單的用法,比如你的應用程式的包名為:com.pstreets.navigator
可以使用 adb shell monkey -p com.pstreets.navigator -v 500
使用預設的配置 嚮應用發送500 個隨機事件(包括按鍵,touch事件,系統事件等), 該命令會首先啟動對應的Activity,然後向該應用發送隨機事件:
Monkey工具的詳細說明如下:
它是一個命令列工具 ,可以運行在模擬器裡或實際裝置中。它向系統發送偽隨機的用 戶事件流,實現對正在開發的應用程式進行壓力測試。Monkey包括許多選項,它們大致分為四大類:
· 基本配置 選項 ,如設定嘗試的事件數目量。
運行約束選項,如設定只對單獨的一個包進行測試。
事件類型 和頻率。
調試選項。
在Monkey啟動並執行時候,它建置事件,並把它們發給系統。同時,Monkey還對待測系統進行監測,對下列三種情況進 行特殊處理:
如果限定了Monkey運行在一個或幾個特定的包上,那麼它會監測試圖轉到其它包的操作,並對其進行阻止。
如果應用程式崩潰或接收到任何失控異常 ,Monkey將停止並報錯。
如果應用程式產生了應用程式不響應(application not responding)的錯誤,Monkey將會停止並報錯。
按照選定的不同層級的反饋資訊,在Monkey中還可以看到其執行過程報告和生 成的事件。
Monkey基本用法
可以通過開發機器上的命令列或指令碼來啟動Monkey。由於Monkey運行在模擬器/裝置環境 中,所以必須用其環境中的shell來進行啟動。可以通過在每條命令前加上adb shell來達到目的,也可以進入Shell後直接輸入 Monkey命令。基本文法如下:
$ adb shell monkey [options]
如果不指定options,Monkey將以無反饋模式啟動,並把事 件任意發送到安裝 在目標環境中的全部包。下面是一個更為典型的命令列樣本,它啟動指定的應用程式,並向其發送500個偽隨 機事件:
$ adb shell monkey -p your.package.name -v 500
–v
命令列的每一個 -v 將增加反饋資訊的層級。 Level 0( 預設值 ) 除啟動提示、測試完成和最終結果之外,提供較少資訊。 Level 1 提供較為詳細的測試資訊,如逐個發送到 Activity 的事件。 Level 2 提供更加詳細的設定資訊,如測試中被選中的或未被選中的 Activity 。
事件
-s <seed>