有時候我們需要對乙個軟體進行壓力測試,檢查該軟體的效能。如果是人工進行測試的話,效率會低很多,而且會比較枯燥。這時,android中的乙個命令列工具monkey就可以為我們減輕很多重複而又繁瑣的工作。
一、monkey簡介
二、monkey的特性
(1)測試的物件僅為應用程式包(apk包),有一定的侷限性;
(2)monkey測試使用的事件流資料流是隨機的,不能進行自定義;
(3)可對monkeytest的物件、事件數量、型別、頻率等進行設定。
雖然monkey工具並不完善,但是足於應付應用程式的基本測試需要了。如果需要功能更強大的測試工具的話,可以使用monkey的進化版monkeyrunner。如果把monkey看作是幼兒園的小孩,那麼它的進化版monkeyrunner就可以看作是乙個初中生了。它支援自定義外掛程式,控制事件,隨時截圖,簡而言之,任何你在模擬器/裝置中能幹的事情,monkeyrunner都能幹,而且還可以記錄和回放。在這裡,就不詳細介紹monkeyrunner了,具體可以參考其官方文件或者其他相關資料。
三、monkey的基本用法
基本語法如下:
$ adb shell monkey [options]
如果不指定options,monkey將以無反饋模式啟動,並把事件任意傳送到安裝在目標環境中的全部包。下面是乙個更為典型的命令列示例,它啟動指定的應用程式,並向其傳送1000個偽隨機事件:
$ adb shell monkey -p your.package.name -v number
$ monkey -p(package的意思) 指定檔名 -v(測試的次數和頻率) number(次數)
四、monkey測試示例**
(2)將apk檔案複製到android sdk對應platform-tools的目錄下。例如,筆者的sdk路徑為 d:\android\android-sdk-windows\platform-tools。如圖所示
(3)進行apk檔案的安裝(安裝的前提是,已經啟動並可以檢測模擬器):有安裝91助手或者豌豆的使用者可以直接雙擊apk檔案進行安裝;也可以使用android下的adb命令進行安裝(如下圖所示,success表示安裝成功)。adb命令下安裝apk檔案的命令為:adb install 檔名.apk。
(4)安裝好後,會在模擬器上看到應用程式的啟**標
(5)安裝好apk檔案後,需要知道應用程式主activity(第乙個啟動的activity)所在的包名。這時,我們可以使用adb shell命令查詢到程式主activity所在的包名,如下圖所示。(知道了apk的包名,我們也可以利用adb命令進行應用程式的解除安裝;解除安裝apk檔案的命令為:adb uninstall 包名)
(6)這裡是最關鍵的一步,使用moneky命令進行自動化壓力測試。
命令為:#monkey -p com.gewara -v 1000(引數說明:-p後跟著軟體所在包名,-v後跟測試的次數)。這裡對該軟體進行1000次的自動化測試,幾分鐘內即可以完成測試。如圖所示
(7)測試完畢,發現程式出錯了。程式出錯,表明該軟體的穩定性和健壯性還有待提高。
這時,可以開啟lotcat檢視出錯資訊。如圖所示
五、monkey測試的停止條件
(1)如果先頂了monkey執行在乙個或幾個特定的包上,那麼它會檢測試圖轉到它包的操作,並對其進行阻止;
(2)如果應用程式崩潰或接收到任何失控異常,monkey將停止並報錯;
通過多次並且不同設定下的monkey測試才算它是乙個穩定性和健壯性足夠的程式。
六、monkey命令引數說明
甚至,它還能生成profiling報告。 –hprof
注:monkey具體引數的設定可參考:
windows下android的monkey測試
monkey android sdk自帶的命令列工具 通過adb命令向手機傳送偽隨機事件,用來測試手機的穩定性,是否崩潰和記憶體溢位等。1.環境安裝 安裝android sdk 2.手機連線 usb連線手機,開啟開發者模式 開啟usb除錯,確認連線 cmd中輸入命令列 adb devices,檢視裝...
android壓力測試命令monkey
monkey命令包含一些引數,大體可以分為四類 monkey執行過程中,向android系統傳送隨機事件。並且,monkey會監視android系統的執行狀態,保證下面的三點 我們可以在直接在命令列或者指令碼中執行monkey,前提是android sdk環境已經ok。基本語法如下 adb shel...
android壓力測試命令monkey詳解
常用示例,大家將com.x.yyyy換成自己要測試的包名就可以了,直接複製貼上開始跑吧 monkey p com.x.yyyy throttle 1000 s 50000 ignore crashes ignore timeouts ignore security exceptions ignore...