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

