Android自動(dòng)測(cè)試工具M(jìn)onkey
前言:
最近開始研究Android自動(dòng)化測(cè)試方法,對(duì)其中的一些工具、方法和框架做了一些簡單的整理,其中包括android測(cè)試框架、CTS、Monkey、Monkeyrunner、benchmark、其它test tool等等。因接觸時(shí)間很短,很多地方有不足之處,希望能和大家多多交流。
一、Monkey定義
探索軟件測(cè)試工具有哪些,本文主要介紹Monkey工具。Monkey測(cè)試是Android平臺(tái)自動(dòng)化測(cè)試的一種手段,通過Monkey程序模擬用戶觸摸屏幕、滑動(dòng)、按鍵等操作來對(duì)設(shè)備上的程序進(jìn)行壓力測(cè)試,檢測(cè)程序多久的時(shí)間會(huì)發(fā)生異常。每次操作的時(shí)間間隔是由我們測(cè)試人員通過參數(shù)來設(shè)定,通常情況下,我們?cè)O(shè)定每次操作的時(shí)間間隔為500ms。
Monkey程序簡介:
Monkey程序由Android系統(tǒng)自帶,使用Java語言寫成,在Android文件系統(tǒng)中的存放路徑是:/system/framework/monkey.jar
注:Monkey.jar程序是由一個(gè)名為“monkey”的Shell腳本來啟動(dòng)執(zhí)行,shell腳本在Android文件系統(tǒng)中的存放路是:/system/bin/monkey;
這樣就可以通過在CMD窗口中執(zhí)行: adb shell monkey {+命令參數(shù)}來進(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的基本用法
基本語法如下:
$ adb shell monkey [options]
如果不指定options,Monkey將以無反饋模式啟動(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í)例
通過這個(gè)實(shí)例,我們能理解Monkey測(cè)試的步驟以及如何知道哪些應(yīng)用程序能夠用Monkey進(jìn)行測(cè)試。
Windows下(注:2—4步是為了查看我們可以測(cè)試哪些應(yīng)用程序包,可省略):
1、 通過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)行過程中,Emulator中的應(yīng)用程序在不斷地切換畫面。
按照選定的不同級(jí)別的反饋信息,在Monkey中還可以看到其執(zhí)行過程報(bào)告和生成的事件。
注:具體參數(shù)的設(shè)定可參考:
http://developer.android.com/guide/developing/tools/monkey.html
五、關(guān)于Monkey測(cè)試的停止條件
Monkey Test執(zhí)行過程中在下列三種情況下會(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ò)。
通過多次并且不同設(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ǔ)丁開發(fā)方式的運(yùn)用
- Monkey Patch猴子補(bǔ)丁編程方式及其在Ruby中的運(yùn)用
- Ruby使用Monkey Patch猴子補(bǔ)丁方式進(jìn)行程序開發(fā)的示例
- Android SDK命令行工具M(jìn)onkey參數(shù)及使用解析
相關(guān)文章
Android 中 MD5 的幾種生成方式(小結(jié))
這篇文章主要介紹了Android 中 MD5 的幾種生成方式,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03Android實(shí)現(xiàn)帶進(jìn)度條的WebView
這篇文章主要介紹了Android實(shí)現(xiàn)帶進(jìn)度條的WebView,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11android視頻截屏&手機(jī)錄屏實(shí)現(xiàn)代碼
本篇文章主要介紹了android視頻截屏&手機(jī)錄屏實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-07-07Android 使用幀動(dòng)畫內(nèi)存溢出解決方案
這篇文章主要介紹了Android 使用幀動(dòng)畫內(nèi)存溢出解決方案的相關(guān)資料,這里提供了詳細(xì)的解決辦法,具有參考價(jià)值,需要的朋友可以參考下2016-12-12Android ImageView的selector效果實(shí)例詳解
這篇文章主要介紹了Android ImageView的selector效果實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-07-07Android和iOS 測(cè)試五個(gè)最好的開源自動(dòng)化工具
本文主要介紹Android和iOS 五個(gè)最好的開源自動(dòng)化工具,這里整理了相關(guān)資料,希望能幫助測(cè)試軟件的朋友,有需要的看下2016-09-09Android菜單操作之創(chuàng)建并響應(yīng)菜單
這篇文章主要介紹了Android菜單操作之創(chuàng)建并響應(yīng)菜單的相關(guān)資料,如何使用代碼創(chuàng)建菜單項(xiàng),給菜單項(xiàng)分組,及各種響應(yīng)菜單事件的方法,需要的朋友可以參考下2016-04-04Handler實(shí)現(xiàn)線程之間的通信下載文件動(dòng)態(tài)更新進(jìn)度條
每一個(gè)線程對(duì)應(yīng)一個(gè)消息隊(duì)列MessageQueue,實(shí)現(xiàn)線程之間的通信,可通過Handler對(duì)象將數(shù)據(jù)裝進(jìn)Message中,再將消息加入消息隊(duì)列,而后線程會(huì)依次處理消息隊(duì)列中的消息。這篇文章主要介紹了Handler實(shí)現(xiàn)線程之間的通信下載文件動(dòng)態(tài)更新進(jìn)度條,需要的朋友可以參考下2017-08-08