版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Monkey
什么是Monkey
Monkey測試是Android平臺自動化測試的一種手段,通過Monkey程序模擬用戶觸摸屏幕、滑動Trackball、按鍵等操作來對設(shè)備上的程序進行壓力測試,檢測程序多久的時間會發(fā)生異常??梢赃\行在模擬器里或?qū)嶋H設(shè)備中。它向系統(tǒng)發(fā)送偽隨機的用戶事件流,實現(xiàn)對正在開發(fā)的應(yīng)用程序進行壓力測試。1)Monkey程序由Android系統(tǒng)自帶,使用Java語言寫成,在Android文件系統(tǒng)中的存放路徑是:/system/framework/monkey.jar;2)Monkey.jar程序是由一個名為“monkey”的Shell腳本來啟動執(zhí)行,shell腳本在Android文件系統(tǒng)中的存放路徑是:/system/bin/monkey;
這樣就可以通過在CMD窗口中執(zhí)行:adbshellmonkey{+命令參數(shù)}來進行Monkey測試了。
為什么要用Monkey測試?
簡單的說Money就是像猴子一樣亂點,為了測試軟件的穩(wěn)定性,健壯性。號稱最快速有效的方法。有時候運行相同系列的測試,即使是復(fù)雜的測試,但是以相同的順序和路徑,即使一遍又一遍地運行也很少機會能發(fā)現(xiàn)內(nèi)存和資源使用的bug。而此時猴子就比人更有效了。
Monkey測試實例一、模擬器1、安裝安卓模擬器(配置環(huán)境、安裝javaJDK)2、運行eclipse(win7下用管理員身份運行)3、創(chuàng)建設(shè)置模擬器勾選下面框內(nèi)選項,能使用電腦鍵盤,并顯示手機鍵盤4、填寫信息后顯示的頁面,選中點擊右側(cè)的start,啟動(初次較慢)5、將需要安裝的apk文件復(fù)制到platform-tools目錄下(我存放的位置E:\test\sdk\platform-tools)。為安裝方便,這里將其命名為game.apk
6、打開命令提示符窗口。輸入cdE:\test\sdk\platform-tools,進入platform-tools目錄
7、在cmd窗口中的platform-tools目錄下輸入adbinstallgame.apk,回車,稍等,完成apk在模擬器上的安裝-----當(dāng)出現(xiàn)這樣的錯誤時,輸入adbkill-server命令,再安裝就行了二、真實設(shè)備1、啟動eclipse,打開查看log的頁面2、設(shè)備連接電腦安裝驅(qū)動三、運行1、在命令提示符中輸入adbdevices查看有無連接的設(shè)備(轉(zhuǎn)到cde:\test\sdk\platform-tools目錄下輸入adbdevices命令)2、確認有設(shè)備連接,進入shell界面輸入adbshell3、查看設(shè)備中的安裝包lsmnt/sdcard4、輸入monkey命令monkey-pcom.android.yunhao-500Monkey包括許多選項,它們大致分為四大類:基本配置選項,如設(shè)置嘗試的事件數(shù)量。運行約束選項,如設(shè)置只對單獨的一個包進行測試。事件類型和頻率。調(diào)試選項。Monkey命令參數(shù)-help列出簡單的用法介紹最簡單monkey命令用法,其使用格式為如下:
-v命令行的每一個-v將增加反饋信息的級別。Level0(缺省值)除啟動提示、測試完成和最終結(jié)果之外,提供較少信息。Level1提供較為詳細的測試信息,如逐個發(fā)送到ActivITy的事件。Level2提供更加詳細的設(shè)置信息,如測試中被選中的或未被選中的Activity。monkey
n
其中,n為一個整數(shù),表示用于測試的偽隨機事件發(fā)生的次數(shù)。例子分析:monkey-pcom.android.yunhao-v--throttle500--pct-trackball
100100Monkey基本配置選項-s<seed>偽隨機數(shù)生成器的seed值。如果用相同的seed值再次運行Monkey,它將生成相同的事件序列。--throttle<milliseconds>在事件之間插入固定延遲。通過這個選項可以減緩Monkey的執(zhí)行速度。如果不指定該選項,Monkey將不會被延遲,事件將盡可能快地被產(chǎn)成。--pct-touch<percent>調(diào)整觸摸事件的百分比(觸摸事件是一個down-up事件,它發(fā)生在屏幕上的某單一位置)。--pct-motion<percent>調(diào)整動作事件的百分比(動作事件由屏幕上某處的一個down事件、一系列的偽隨機事件和一個up事件組成)。--pct-trackball<percent>調(diào)整軌跡事件的百分比(軌跡事件由一個或幾個隨機的移動組成,有時還伴隨有點擊)。Monkey事件命令--pct-nav<percent>調(diào)整“基本”導(dǎo)航事件的百分比(導(dǎo)航事件由來自方向輸入設(shè)備的up/down/left/right組成)。--pct-majornav<percent>調(diào)整“主要”導(dǎo)航事件的百分比(這些導(dǎo)航事件通常引發(fā)圖形界面中的動作,如:5-way鍵盤的中間按鍵、回退按鍵、菜單按鍵)
--pct-syskeys<percent>調(diào)整“系統(tǒng)”按鍵事件的百分比(這些按鍵通常被保留,由系統(tǒng)使用,如Home、Back、StartCall、EndCall及音量控制鍵)。
--pct-appswitch<percent>調(diào)整啟動Activity的百分比。在隨機間隔里,Monkey將執(zhí)行一個startActivity()調(diào)用,作為最大程度覆蓋包中全部Activity的一種方法。
--pct-anyevent<percent>調(diào)整其它類型事件的百分比。它包羅了所有其它類型的事件,如:按鍵、其它不常用的設(shè)備按鈕、等等。
Monkey事件命令-p<allowed-package-name>如果用此參數(shù)指定了一個或幾個包,Monkey將只允許系統(tǒng)啟動這些包里的Activity。如果你的應(yīng)用程序還需要訪問其它包里的Activity(如選擇取一個聯(lián)系人),那些包也需要在此同時指定。如果不指定任何包,Monkey將允許系統(tǒng)啟動全部包里的Activity。要指定多個包,需要使用多個-p選項,每個-p選項只能用于一個包。
-c<main-category>如果用此參數(shù)指定了一個或幾個類別,Monkey將只允許系統(tǒng)啟動被這些類別中的某個類別列出的Activity。如果不指定任何類別,Monkey將選擇下列類別中列出的Activity:Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY。要指定多個類別,需要使用多個-c選項,每個-c選項只能用于一個類別。Monkey約束限制命令--dbg-no-events設(shè)置此選項,Monkey將執(zhí)行初始啟動,進入到一個測試Activity,然后不會再進一步生成事件。為了得到最佳結(jié)果,把它與-v、一個或幾個包約束、以及一個保持Monkey運行30秒或更長時間的非零值聯(lián)合起來,從而提供一個環(huán)境,可以監(jiān)視應(yīng)用程序所調(diào)用的包之間的轉(zhuǎn)換。
--hprof設(shè)置此選項,將在Monkey事件序列之前和之后立即生成profiling報告。這將會在data/misc中生成大文件(~5Mb),所以要小心使用它。
--ignore-crashes通常,當(dāng)應(yīng)用程序崩潰或發(fā)生任何失控異常時,Monkey將停止運行。如果設(shè)置此選項,Monkey將繼續(xù)向系統(tǒng)發(fā)送事件,直到計數(shù)完成。--ignore-timeouts通常,當(dāng)應(yīng)用程序發(fā)生任何超時錯誤(如“ApplicationNotResponding”對話框)時,Monkey將停止運行。如果設(shè)置此選項,Monkey將繼續(xù)向系統(tǒng)發(fā)送事件,直到計數(shù)完成。
Monkey調(diào)試命令--ignore-security-exceptions
通常,當(dāng)應(yīng)用程序發(fā)生許可錯誤(如啟動一個需要某些許可的Activity)時,Monkey將停止運行。如果設(shè)置了此選項,Monkey將繼續(xù)向系統(tǒng)發(fā)送事件,直到計數(shù)完成。
--kill-process-after-error
通常,當(dāng)Monkey由于一個錯誤而停止時,出錯的應(yīng)用程序?qū)⒗^續(xù)處于運行狀態(tài)。當(dāng)設(shè)置了此選項時,將會通知系統(tǒng)停止發(fā)生錯誤的進程。注意,正常的(成功的)結(jié)束,并沒有停止啟動的進程,設(shè)備只是在結(jié)束事件之后,簡單地保持在最后的狀態(tài)。
--monitor-native-crashes
監(jiān)視并報告Android系統(tǒng)中本地代碼的崩潰事件。如果設(shè)置了--kill-process-after-error,系統(tǒng)將停止運行。
--wait-dbg
停止執(zhí)行中的Monkey,直到有調(diào)試器和它相連接。Monkey調(diào)試命令注意事項:
在Monkey運行的時候,它生成事件,并把它們發(fā)給系統(tǒng)。同時,Monkey還對測試中的系統(tǒng)進行監(jiān)測,對下列三種情況進行特殊處理:
如果限定了Monkey運行在一個或幾個特定的包上,那么它會監(jiān)測試圖轉(zhuǎn)到其它包的操作,并對其進行阻止。
如果應(yīng)用程序崩潰或接收到任何失控異常,Monkey將停止并報錯。如果應(yīng)用程序產(chǎn)生了應(yīng)用程序不響應(yīng)(applicationnotresponding)的錯誤,Monkey將會停止并報錯。
按照選定的不同級別的反饋信息,在Monkey中還可以看到其執(zhí)行過程報告和生成的事件。Monkey停止條件Monkey測試結(jié)果分析一、初步分析方法:
Monkey測試出現(xiàn)錯誤后,一般的差錯步驟為以下幾步:
1、找到是monkey里面的哪個地方出錯
2、查看Monkey里面出錯前的一些事件動作,并手動執(zhí)行該動作
3、若以上步驟還不能找出,可以使用之前執(zhí)行的monkey命令再執(zhí)行一遍,注意seed值要一樣一般的測試結(jié)果分析:
1、ANR問題:在日志中搜索“ANR”(ApplicationNotResponding)
2、崩潰問題:在日志中搜索“Exception”二.詳細分析monkey日志:
將執(zhí)行Monkey生成的log,從手機中導(dǎo)出并打開查看該log;在log的最開始都會顯示Monkey執(zhí)行的seed值、執(zhí)行次數(shù)和測試的包名。
首先我們需要查看Monkey測試中是否出現(xiàn)了ANR或者異常,具體方法如上述。
然后我們要分析log中的具體信息,方法如下:
查看log中第一個Switch,主要是查看Monkey執(zhí)行的是哪一個Activity,譬如下面的log中,執(zhí)行的是com.tencent.smtt.SplashActivity,在下一個swtich之間的,如果出現(xiàn)了崩潰或其他異常,可以在該Activity中查找問題的所在。Monkey測試結(jié)果分析總結(jié):
在monkey測試中常用的命令組合有:1、monkey-pcom.yourpackage-v500//簡單的輸出測試的信息。2、monkey-pcom.yourpackage-v-v-v500//以深度為三級輸出測試信息。3、monkey-pcom.yourpackage--port端口號-v//為測試分配一個專用的端口號,不過這個命令只能輸出跳轉(zhuǎn)的信息及有錯誤時輸出信息。4、monkey-pcom.yourpackage-s數(shù)字-v500//為隨機數(shù)的事件序列定一個值,若出現(xiàn)問題下次可以重復(fù)同樣的系列進行排錯。5、monkey-pcom.yourpackage-v--throttle3000500//為每一次執(zhí)行一次有效的事件后休眠3000毫秒。此條命令:表示分鐘執(zhí)行80次
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版工程機械設(shè)備租賃與技術(shù)創(chuàng)新服務(wù)合同3篇
- 二零二五版護林員勞動合同書編制指南3篇
- 二零二五版按揭購房合同:智能家居系統(tǒng)智能家居系統(tǒng)節(jié)能改造合同3篇
- 二零二五年度游戲公司代運營及運營支持合同3篇
- 二零二五版包雪服務(wù)項目風(fēng)險評估與預(yù)案合同3篇
- 二零二五年度餐飲配送企業(yè)食品安全責(zé)任追究合同3篇
- 二零二五版海洋工程高低壓配電系統(tǒng)安裝合同2篇
- 二零二五版小微企業(yè)貸款合同與信用增級服務(wù)協(xié)議3篇
- 二零二五年度海洋工程設(shè)備采購合同15篇
- 二零二五年黃豆種植戶風(fēng)險管理采購合同3篇
- MT/T 199-1996煤礦用液壓鉆車通用技術(shù)條件
- GB/T 6144-1985合成切削液
- GB/T 10357.1-2013家具力學(xué)性能試驗第1部分:桌類強度和耐久性
- 第三方在線糾紛解決機制(ODR)述評,國際商法論文
- 公寓de全人物攻略本為個人愛好而制成如需轉(zhuǎn)載注明信息
- 第5章-群體-團隊溝通-管理溝通
- 腎臟病飲食依從行為量表(RABQ)附有答案
- 深基坑-安全教育課件
- 園林施工管理大型園林集團南部區(qū)域養(yǎng)護標(biāo)準(zhǔn)圖例
- 排水許可申請表
- 低血糖的觀察和護理課件
評論
0/150
提交評論