Android自動測試之Monkey工具

2021-09-08 09:54:09 字數 3219 閱讀 7955

monkey工具

前言:最 近開始研究android自動化測試方法,對其中的一些工具、方法和框架做了一些簡單的整理,其中包括android測試框架、cts、monkey、 monkeyrunner、benchmark、其它test tool等等。因接觸時間很短,很多地方有不足之處,希望能和大家多多交流。

一、  什麼是monkey

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

二、 monkey的特徵

1、 測試的物件僅為應用程式包,有一定的侷限性。

2、 monky測試使用的事件流資料流是隨機的,不能進行自定義。

3、 可對monkeytest的物件,事件數量,型別,頻率等進行設定。

三、monkey的基本用法

基本語法如下:

$ adb shell monkey [options]

如果不指定options,monkey將以無反饋模式啟動,並把事件任意傳送到安裝在目標環境中的全部包。下面是乙個更為典型的命令列示例,它啟動指定的應用程式,並向其傳送500個偽隨機事件:

$ adb shell monkey -p your.package.name -v 500

四、monkey測試的乙個例項

通過這個例項,我們能理解monkey測試的步驟以及如何知道哪些應用程式能夠用monkey進行測試。

windows下(注:2—4步是為了檢視我們可以測試哪些應用程式包,可省略):

1、 通過eclipse啟動乙個android的emulator

2、 在命令列中輸入:adb devices檢視裝置連線情況

c:\documents and settings\administrator>adb devices

list of devices attached

emulator-5554   device

3、 在有裝置連線的前提下,在命令列中輸入:adb shell 進入shell介面

c:\documents and settings\administrator>adb shell #

4、 檢視data/data資料夾下的應用程式包。注:我們能測試的應用程式包都在這個目錄下面

c:\documents and settings\administrator>adb shell

# ls data/data

ls data/data

com.google.android.btrouter

com.android.providers.telephony

com.android.mms

com.android.providers.downloads

com.android.deskclock

com.android.email

com.android.providers.media

com.android.settings

jp.co.omronsoft.openwnn

com.android.providers.userdictionary

com.android.quicksearchbox

com.android.protips

com.android.browser

com.android.launcher

com.android.term

com.android.speechrecorder

com.android.server.vpn

com.android.defcontainer

com.svox.pico

com.android.customlocale

com.android.development

com.android.soundrecorder

com.android.providers.drm

com.android.spare_parts

com.android.providers.downloads.ui

com.android.fallback

com.android.netspeed

com.android.wall*****.livepicker

android.tts

com.android.htmlviewer

com.android.music

com.android.certinstaller

com.android.inputmethod.pinyin

com.android.providers.subscribedfeeds

com.android.inputmethod.latin

com.android.gallery

com.android.systemui

com.android.contacts

com.android.phone

com.android.sdksetup

com.android.calculator2

com.android.packageinstaller

com.android.camera

com.android.providers.settings

com.thestore.main

com.android.providers.contacts

5、 以com.android.calculator2作為物件進行monkeytest

#monkey -p com.android.calculator2 -v 500

其中-p表示物件包 –v 表示事件數量

執行過程中,emulator中的應用程式在不斷地切換畫面。

按照選定的不同級別的反饋資訊,在monkey中還可以看到其執行過程報告和生成的事件。 

注:具體引數的設定可參考:

五、關於monkey測試的停止條件

monkey test執行過程中在下列三種情況下會自動停止:

1、如果限定了monkey執行在乙個或幾個特定的包上,那麼它會監測試圖轉到其它包的操作,並對其進行阻止。

2、如果應用程式崩潰或接收到任何失控異常,monkey將停止並報錯。

通過多次並且不同設定下的monkey測試才算它是乙個穩定性足夠的程式。

**:其他資源:

Android自動測試之Monkey工具

monkey工具 首先,需要配置好android開發環境,把需要測試的apk安裝在模擬器或裝置中 前言 最近開始研究android自動化測試方法,對其中的一些工具 方法和框架做了一些簡單的整理,其中包括android測試框架 cts monkey monkeyrunner benchmark 其它t...

Android自動測試之Monkey工具

monkey工具 前言 最近開始研究android自動化測試方法,對其中的一些工具 方法和框架做了一些簡單的整理,其中包括android測試框架 cts monkey monkeyrunner benchmark 其它test tool等等。因接觸時間很短,很多地方有不足之處,希望能和大家多多交流。...

Android自動測試之Monkey工具

monkey工具 前言 最近開始研究android自動化測試方法,對其中的一些工具 方法和框架做了一些簡單的整理,其中包括android測試框架 cts monkey monkeyrunner benchmark 其它test tool等等。因接觸時間很短,很多地方有不足之處,希望能和大家多多交流。...