Android自動測試工具M(jìn)onkey
前言:
最近開始研究Android自動化測試方法,對其中的一些工具、方法和框架做了一些簡單的整理,其中包括android測試框架、CTS、Monkey、Monkeyrunner、benchmark、其它test tool等等。因接觸時間很短,很多地方有不足之處,希望能和大家多多交流。
一、Monkey定義
探索軟件測試工具有哪些,本文主要介紹Monkey工具。Monkey測試是Android平臺自動化測試的一種手段,通過Monkey程序模擬用戶觸摸屏幕、滑動、按鍵等操作來對設(shè)備上的程序進(jìn)行壓力測試,檢測程序多久的時間會發(fā)生異常。每次操作的時間間隔是由我們測試人員通過參數(shù)來設(shè)定,通常情況下,我們設(shè)定每次操作的時間間隔為500ms。
Monkey程序簡介:
Monkey程序由Android系統(tǒng)自帶,使用Java語言寫成,在Android文件系統(tǒng)中的存放路徑是:/system/framework/monkey.jar
注:Monkey.jar程序是由一個名為“monkey”的Shell腳本來啟動執(zhí)行,shell腳本在Android文件系統(tǒng)中的存放路是:/system/bin/monkey;
這樣就可以通過在CMD窗口中執(zhí)行: adb shell monkey {+命令參數(shù)}來進(jìn)行Monkey測試了。
二、 Monkey的特征
1、 測試的對象僅為應(yīng)用程序包,有一定的局限性。
2、 Monky測試使用的事件流數(shù)據(jù)流是隨機的,不能進(jìn)行自定義。
3、 可對MonkeyTest的對象,事件數(shù)量,類型,頻率等進(jìn)行設(shè)置。
三、Monkey的基本用法
基本語法如下:
$ adb shell monkey [options]
如果不指定options,Monkey將以無反饋模式啟動,并把事件任意發(fā)送到安裝在目標(biāo)環(huán)境中的全部包。下面是一個更為典型的命令行示例,它啟動指定的應(yīng)用程序,并向其發(fā)送500個偽隨機事件:
$ adb shell monkey -p your.package.name -v 500
四、Monkey測試的一個實例
通過這個實例,我們能理解Monkey測試的步驟以及如何知道哪些應(yīng)用程序能夠用Monkey進(jìn)行測試。
Windows下(注:2—4步是為了查看我們可以測試哪些應(yīng)用程序包,可省略):
1、 通過eclipse啟動一個Android的emulator
2、 在命令行中輸入:adb devices查看設(shè)備連接情況
C:\Documents and Settings\Administrator>adb devices List of devices attached emulator-5554 device
3、 在有設(shè)備連接的前提下,在命令行中輸入:adb shell 進(jìn)入shell界面
C:\Documents and Settings\Administrator>adb shell
#
4、 查看data/data文件夾下的應(yīng)用程序包。注:我們能測試的應(yīng)用程序包都在這個目錄下面
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.providers.applications com.android.netspeed com.android.wallpaper.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作為對象進(jìn)行MonkeyTest
#monkey -p com.android.calculator2 -v 500
其中-p表示對象包 –v 表示反饋信息級別
運行過程中,Emulator中的應(yīng)用程序在不斷地切換畫面。
按照選定的不同級別的反饋信息,在Monkey中還可以看到其執(zhí)行過程報告和生成的事件。
注:具體參數(shù)的設(shè)定可參考:
http://developer.android.com/guide/developing/tools/monkey.html
五、關(guān)于Monkey測試的停止條件
Monkey Test執(zhí)行過程中在下列三種情況下會自動停止:
1、如果限定了Monkey運行在一個或幾個特定的包上,那么它會監(jiān)測試圖轉(zhuǎn)到其它包的操作,并對其進(jìn)行阻止。
2、如果應(yīng)用程序崩潰或接收到任何失控異常,Monkey將停止并報錯。
3、如果應(yīng)用程序產(chǎn)生了應(yīng)用程序不響應(yīng)(application not responding)的錯誤,Monkey將會停止并報錯。
通過多次并且不同設(shè)定下的Monkey測試才算它是一個穩(wěn)定性足夠的程序。
關(guān)于Android自動測試工具M(jìn)onkey的相關(guān)知識先給大家介紹這么多,后續(xù)還會持續(xù)更新有關(guān)money測試工具相關(guān)知識,敬請關(guān)注。
相關(guān)文章
Android 使用自定義RecyclerView控件實現(xiàn)Gallery效果
這篇文章主要介紹了Android 使用自定義RecyclerView 實現(xiàn)Gallery效果,本文給大家簡單介紹了RecyclerView的基本用法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-10-10
揭秘在ListView等AdapterView上動態(tài)添加刪除項的陷阱
今天遇到這么個需求,需要在運行時動態(tài)添加ListView的item,看起來很簡單,實際操作過程中卻遇到了麻煩,下面揭秘在ListView等AdapterView上動態(tài)添加刪除項的陷阱2016-04-04
Android使用SQLite數(shù)據(jù)庫的簡單實例
這篇文章主要介紹了Android使用SQLite數(shù)據(jù)庫的簡單實例,有需要的朋友可以參考一下2013-12-12
Android數(shù)據(jù)類型之間相互轉(zhuǎn)換系統(tǒng)介紹
一些初學(xué)Android的朋友可能會遇到JAVA的數(shù)據(jù)類型之間轉(zhuǎn)換的苦惱;本文將為有這類需求的朋友解決此類問題2012-11-11
Android?Flutter中Offstage組件的使用教程詳解
這篇文章主要為大家詳細(xì)介紹了Android?Flutter中Offstage組件的使用教程,文中的示例代碼講解詳細(xì),對我們了解Flutter有一定的幫助,需要的可以參考一下2023-02-02
房卡麻將分析系列 "牌局回放" 之 數(shù)據(jù)設(shè)計詳解及實例
這篇文章主要介紹了房卡麻將分析系列 "牌局回放" 之 數(shù)據(jù)設(shè)計詳解及實例的相關(guān)資料,需要的朋友可以參考下2017-03-03
總結(jié)Android App內(nèi)存優(yōu)化之圖片優(yōu)化
網(wǎng)上有很多大拿分享的關(guān)于Android性能優(yōu)化的文章,主要是通過各種工具分析,使用合理的技巧優(yōu)化APP的體驗,提升APP的流暢度,但關(guān)于內(nèi)存優(yōu)化的文章很少有看到。下面是我在實踐過程中使用的一些方法,很多都是不太成熟的項目,只是將其作為一種處理方式分享給大家。2016-08-08

