版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
一、什么是Monkey1、Monkey測(cè)試簡(jiǎn)介Money是Android中的一個(gè)命令行工具,可以運(yùn)行在模擬器里或?qū)嶋H設(shè)備中它向系統(tǒng)發(fā)送偽隨機(jī)的用戶(hù)事件流(如按鍵輸入、觸摸屏輸入、手勢(shì)輸入等),實(shí)現(xiàn)對(duì)正在開(kāi)發(fā)的應(yīng)用程序進(jìn)行壓力測(cè)試。Monkey測(cè)試是一種為了測(cè)試軟件的穩(wěn)定性、健壯性的快速有效的方法。2、Monkey程序介紹1)Monkey程序由Android系統(tǒng)自帶,使用Java語(yǔ)言寫(xiě)成,在Android文件系統(tǒng)中的存放路徑是:/system/framework/monkey.jar;2)Monkey.jar程序是由一個(gè)名為“monkey"的腳本來(lái)啟動(dòng)執(zhí)行的,shell腳本在Android文件系統(tǒng)中的存放路徑是:/system/bin/monkey;這樣就可以通過(guò)在CMD窗口中執(zhí)行:adbshellmonkey{+命令參數(shù)}來(lái)進(jìn)行Monkey測(cè)試了。二、 Monkey的特征1、 測(cè)試的對(duì)象僅為應(yīng)用程序包,有一定的局限性。2、 Monkey測(cè)試使用的事件流是隨機(jī)的,不能進(jìn)行自定義。3、 可對(duì)moneyTest的對(duì)象,事件數(shù)量,類(lèi)型,頻率等進(jìn)行設(shè)置。三、 Monkey的基本用法1、基本選項(xiàng)usage:monkey[-pALLOWED_PACKAGE[-pALLOWED_PACKAGE]...][-cMAIN_CATEGORY[-cMAIN_CATEGORY]...][--ignore-crashes][--ignore-timeouts][--ignore-security-exceptions][--monitor-native-crashes][--ignore-native-crashes][--kill-process-after-error][--hprof][--pct-touchPERCENT][--pct-motionPERCENT][--pct-trackballPERCENT][--pct-syskeysPERCENT][--pct-navPERCENT][--pct-majornavPERCENT][--pct-appswitchPERCENT][--pct-flipPERCENT][--pct-anyeventPERCENT][--pkg-blacklist-filePACKAGE_BLACKLIST_FILE][--pkg-whitelist-filePACKAGE_WHITELIST_FILE][--wait-dbg][--dbg-no-events][--setupscriptfile][-fscriptfile[-fscriptfile]...][--portport][-sSEED][-v[-v]...][--throttleMILLISEC][--randomize-throttle][--profile-waitMILLISEC][--device-sleep-timeMILLISEC][--randomize-script][--script-log][--bugreport]COUNT2、Monkey命令參數(shù)介紹參數(shù):-p參數(shù)-p用于約束限制,用此參數(shù)指定一個(gè)或多個(gè)包(Package,即APP)。指定包之后,Monkey將只運(yùn)行系統(tǒng)啟動(dòng)指定的APP。如果不指定包,Monkey將允許系統(tǒng)啟動(dòng)設(shè)備中的所有APP。*扌旨定一個(gè)包:adbshellmonkey-pcom.android.music100說(shuō)明:com.android.music為包名,100是事件計(jì)數(shù)(即讓Monkey程序模擬100次隨機(jī)用戶(hù)事件)。*指定多個(gè)包:adbshellmonkey-pcom.android.music-pcom.android.browser100*不指定包:adbshellmonkey100說(shuō)明:monkey隨機(jī)啟動(dòng)APP并發(fā)送100個(gè)隨機(jī)事件。*要查看設(shè)備中所有的包,在CMD窗口中執(zhí)行以下命令:>adbshell#cd/data/data#ls參數(shù):-c如果用此指定了一個(gè)或幾個(gè)類(lèi)別,Monkey將只允許系統(tǒng)啟動(dòng)被這些類(lèi)別種的某個(gè)類(lèi)別列出的Activity。如果不指定任何類(lèi)別,Monkey將選擇下列類(lèi)別中列出的Activity:Intent.category.LAUNCHER或Intent.category.MONKEY。要指定多個(gè)類(lèi)別,需要使用多個(gè)-c選項(xiàng),每個(gè)-c選項(xiàng)只能用于一個(gè)類(lèi)別。3) 參數(shù):-v用于指定反饋信息級(jí)別(信息級(jí)別就是日志的詳細(xì)程度),總共分3個(gè)級(jí)別,分別對(duì)應(yīng)的參數(shù)如下所示:日志級(jí)別Level0示例:adbshellmonkey-pcom.android.music-v100說(shuō)明:缺省值,僅提供啟動(dòng)提示、測(cè)試完成和最終結(jié)果等少量信息日志級(jí)別Level1示例:adbshellmonkey-pcom.android.music-v-v100說(shuō)明:提供較為詳細(xì)的日志,包括每個(gè)發(fā)送到Activity的事件信息日志級(jí)別Level2示例:adbshellmonkey-pcom.android.music-v-v-v100說(shuō)明:最詳細(xì)的日志,包括了測(cè)試中選中/未選中的Activity信息4) 參數(shù):-s用于指定偽隨機(jī)生成器的seed值,如果seed相同,則兩次Monkey測(cè)試所產(chǎn)生的事件序列也相同的。*示例:Monkey測(cè)試1:adbshellmonkey-pcom.android.music-s10100Monkey測(cè)試2:adbshellmonkey-pcom.android.music-s10100兩次測(cè)試的效果是相同的,因?yàn)槟M的用戶(hù)序列(每次操作按照一定的先后順序所組成的一系列操作,即一個(gè)序列)是一樣的。操作序列雖然是隨機(jī)生成的,但是只要我們指定了相同的Seed值,就可以保證兩次測(cè)試產(chǎn)生的隨機(jī)操作序列是完全相同的,所以這個(gè)操作序列偽隨機(jī)的5) 參數(shù):--throttle<毫秒>用于指定用戶(hù)操作(即事件)間的時(shí)延,單位是毫秒;*示例:adbshellmonkey-pcom.andorid.music-throttle30001006) 參數(shù)-ignore-crashes用于指定當(dāng)應(yīng)用程序崩潰時(shí)(Force&Close錯(cuò)誤),Monkey是否停止運(yùn)行。如果使用此參數(shù),即使應(yīng)用程序崩潰,Monkey依然會(huì)發(fā)送事件,直到事件計(jì)數(shù)完成。*示例1:adbshellmonkey-pcom.android.music-gnore-crashes1000測(cè)試過(guò)程中即使music程序崩潰,Monkey依然會(huì)繼續(xù)發(fā)送事件直到事件數(shù)目達(dá)到1000為止;示例2:adbshellmonkey-pcom.android.music1000測(cè)試過(guò)程中,如果music程序崩潰,Monkey將會(huì)停止運(yùn)行。7) 參數(shù):--ignore-timeouts用于指定當(dāng)應(yīng)用程序發(fā)生ANR(ApplicationNoResponding)錯(cuò)誤時(shí),Monkey是否停止運(yùn)行。如果使用此參數(shù),即使應(yīng)用程序發(fā)生ANR錯(cuò)誤,Monkey依然會(huì)發(fā)送事件,直到事件計(jì)數(shù)完成。8) 參數(shù):--ignore-security-exceptions用于指定當(dāng)應(yīng)用程序發(fā)生許可錯(cuò)誤時(shí)(如證書(shū)許可,網(wǎng)絡(luò)許可等),Monkey是否停止運(yùn)行。如果使用此參數(shù),即使應(yīng)用程序發(fā)生許可錯(cuò)誤,Monkey依然會(huì)發(fā)送事件,直到事件計(jì)數(shù)完成。9) 參數(shù):--kill-process-after-error用于指定當(dāng)應(yīng)用程序發(fā)生錯(cuò)誤時(shí),是否停止其運(yùn)行。如果指定此參數(shù),當(dāng)應(yīng)用程序發(fā)生錯(cuò)誤時(shí),應(yīng)用程序停止運(yùn)行并保持當(dāng)前狀態(tài)(注意:應(yīng)用程序僅是靜止在發(fā)生錯(cuò)誤時(shí)的狀態(tài),系統(tǒng)并不會(huì)結(jié)束該應(yīng)用程序的進(jìn)程)。10) 參數(shù):--monitor-native-crashes用于指定是否監(jiān)視并報(bào)告應(yīng)用程序發(fā)生崩潰的本地代碼11) 參數(shù):--pct-{+事件類(lèi)別} {+事件類(lèi)別百分比}用于指定每種類(lèi)別事件的數(shù)目百分比(在Monkey事件序列中,該類(lèi)事件數(shù)目占總事件數(shù)目的百分比)參數(shù):使用說(shuō)明:示例:--pct-touch{+百分比}調(diào)整觸摸事件的百分比(觸摸事件是一個(gè)down-up事件,它發(fā)生在屏幕的某單一位置)adbshellmonkey-pcom.android.music--pct-touch101000--pct-motion{+百分比}調(diào)整動(dòng)作事件的百分比(動(dòng)作事件由屏幕上某處的一個(gè)down事件、一系列的偽隨機(jī)事件和up事件組成)adbshellmonkey-pcom.android.music--pct-motion201000--pct-trackball{+百分比}調(diào)整軌跡球事件的百分比{軌跡事件由一個(gè)或幾個(gè)隨機(jī)的移動(dòng)組成,有時(shí)還伴隨有點(diǎn)擊}adbshellmonkey-pcom.android.music--pct-trackball301000j--pct-nav{+百分比}調(diào)整“基本”導(dǎo)航事件的百分比(導(dǎo)航事件由來(lái)自方向輸入設(shè)備的up/down/left/right組成)adbshellmonkey-pcom.android.music--pct-nav401000--pct-majornav{+百分比}調(diào)整“主要”導(dǎo)航事件的百分比這些導(dǎo)航事件通常引發(fā)圖形界面中的動(dòng)作,如:5-way鍵盤(pán)的中間按鍵、回退按鍵、菜單按鍵)adbshellmonkey-pcom.android.music--pct-majormav501000--pct-syskeys{+百分比}調(diào)整“系統(tǒng)”按鍵事件的百分比(這些按鍵通常被保留,由系統(tǒng)使用,如Home,Back,StartCall,EndCall及音量控制鍵)adbshellmonkey-pcom.android.music--pct-syskeys601000--pct-appswitch{+百分比}調(diào)整啟動(dòng)Activity的百分比。在隨機(jī)間隔里,Monkey將執(zhí)行一個(gè)startActivity()調(diào)用,作為最大程度覆蓋包中全部Activity的一種方法adbshellmokey-pcom.android.music--pct-appswitch701000--pct-anyevent{+百分比}調(diào)整其它類(lèi)型事件的百分比。它包羅了所有其它類(lèi)型的事件,如:按鍵、其它不常用的的設(shè)備按鈕、等等adbshellmonkey-pcom.android.music--pct-anyevent1001000*指定多個(gè)類(lèi)型的百分比:adbshellmonkey-pcom.android.music--pct-anyevent50--pct-switch50100012) 參數(shù):--dbg-no-events設(shè)置此選項(xiàng),Monkey將執(zhí)行初始啟動(dòng),進(jìn)入到一個(gè)測(cè)試Activity,然后不會(huì)再進(jìn)一步生成事件。為了得到最佳結(jié)果,把它與-v、一個(gè)或幾個(gè)包約束、以及一個(gè)保持Monkey運(yùn)行30秒或更長(zhǎng)時(shí)間的非零值聯(lián)合起來(lái),從而提供一個(gè)環(huán)境,可以監(jiān)視應(yīng)用程序所調(diào)用的包之間的轉(zhuǎn)換。13) 參數(shù):--hprof設(shè)置此選項(xiàng),將在Monkey事件序列之前和之后立即生成profiling報(bào)告。這將會(huì)在/data/misc中生成大文件(?5Mb),所以要小心使用它參數(shù):--monitor-native-crashes監(jiān)視并報(bào)告Android系統(tǒng)中本地代碼的崩潰事件,如果設(shè)置了,系統(tǒng)將停止運(yùn)行參數(shù):--wait-dbg停止執(zhí)行中的Monkey,直到有調(diào)試器和它相連接。參數(shù):-port為Monkey開(kāi)啟專(zhuān)用端口。此時(shí)只Monkey不會(huì)幫你亂點(diǎn)擊,而此時(shí)你自己就是一只Monkey,在你亂點(diǎn)的時(shí)候,Monkey會(huì)輸出你點(diǎn)擊后回饋的信息。如果你打完命令后,模擬器上沒(méi)有啟動(dòng)你所要啟動(dòng)的包,你需要自己?jiǎn)?dòng),但是你只能啟動(dòng)你_p中指定的那幾個(gè)包。Ctrl+c中斷。四、Monkey測(cè)試圖庫(kù)實(shí)例1、 首先要得到測(cè)試apk的包名,如果有APK源碼包的話(huà)直接將“.apk”后綴改為“zip”然后打開(kāi)包中的AndroidManifest.xml可以查看包名,如果沒(méi)有或者已經(jīng)安裝的點(diǎn)擊應(yīng)用程序,然后查看logcat信息,也能夠找到包名,同時(shí)在/data/data/目錄下面有全部的應(yīng)用程序的包名,我們要測(cè)試的圖庫(kù)的包名為:com.cooliris.media.2、 設(shè)定參數(shù)首先用一個(gè)最簡(jiǎn)單的例子分析-p參數(shù):表示指定測(cè)試的程序-v參數(shù):表示查看Monkey生成的一些詳細(xì)的隨機(jī)的事件名數(shù)字100:表示測(cè)試事件數(shù)為100monkey-pcom.cooliris.meida-v-v-v100結(jié)果如下:#monkey-pcom.cooliris.media-v-v-v100monkey-pcom.cooliris.media-v-v-v100:Monkey:seed=0count=100:AllowPackage:com.cooliris.media:IncludeCategory:ent.category.LAUNCHER:IncludeCategory:ent.category.MONKEY〃各種事件所占的比例〃各數(shù)字分別表示[--pct-touchPERCENT][--pct-motionPERCENT][--pct-trackballPERCENT][--pct-syskeysPERCENT][--pct-navPERCENT][--pct-majornavPERCENT]卜-pct-appswitchPERCENT][--pet-flipPERCENT]卜-pct-anyeventPERCENT]//Eventpercentages//015.0%//110.0%//215.0%//325.0%//415.0%//52.0%//62.0%//71.0%//815.0%:Switch:〃表示跳轉(zhuǎn)到com.cooliris.media里面的Gallery這一個(gè)Activity#Intent;action=ent.action.MAIN;category=ent.category.LAUNCHER;launchFlags=OxlOOOOOOO;component=com.cooliris.media/.Gallery;end〃允許此Intent跳轉(zhuǎn)//AllowingstartofIntent{act=ent.action.MAINcat=[ent.category.LAUNCHER]cmp=com.cooliris.media/.Gallery}inpackagecom.cooliris.mediaSleepingfor0milliseconds//發(fā)送一系列動(dòng)作,如點(diǎn)擊按下,點(diǎn)擊放開(kāi),移動(dòng):SendKey(ACTION_DOWN):22 //KEYCODE_DPAD_RIGHT:SendKey(ACTION_UP):22 //KEYCODE_DPAD_RIGHTSleepingfor0milliseconds:SendKey(ACTION_DOWN):23 //KEYCODE_DPAD_CENTER:SendKey(ACTION_UP):23 //KEYCODE_DPAD_CENTERSleepingfor0milliseconds:SendKey(ACTION_DOWN):59 //KEYCODE_SHIFT_LEFT:SendKey(ACTION_UP):59 //KEYCODE_SHIFT_LEFTSleepingfor0milliseconds:SendKey(ACTION_DOWN):l3//KEYCODE_6:SendKey(ACTION_UP):l3 //KEYCODE_6Sleepingfor0milliseconds:SendKey(ACTION_DOWN):2l//KEYCODE_DPAD_LEFT:SendKey(ACTION_UP):2l //KEYCODE_DPAD_LEFTSleepingfor0milliseconds:SendKey(ACTION_DOWN):23 //KEYCODE_DPAD_CENTER:SendKey(ACTION_UP):23 //KEYCODE_DPAD_CENTERSleepingfor0milliseconds:SendingPointerACTION_DOWNx=554.0y=357.0:SendingPointerACTION_MOVEx=558.0y=350.0:SendingPointerACTION_MOVEx=558.0y=350.0:SendingPointerACTION_UPx=558.0y=350.0Sleepingfor0milliseconds:SendKey(ACTION_DOWN):3 //KEYCODE_HOME:SendKey(ACTION_UP):3 //KEYCODE_HOME〃拒絕此跳轉(zhuǎn),因?yàn)樗翘D(zhuǎn)的到非它自己的包的Activity,本測(cè)試中是指測(cè)試它程序所在的包,此跳轉(zhuǎn)是跳出本程序,進(jìn)入桌面。//RejectingstartofIntent{act=ent.action.MAINcat=[ent.category.HOME]cmp=com.android.launcher/com.android.launcher2.Launcher}inpackagecom.android.launcher〃繼續(xù)發(fā)送動(dòng)作Sleepingfor0milliseconds// 用--throttle來(lái)設(shè)置一個(gè)起效的事件發(fā)生后時(shí)延時(shí):SendKey(ACTION_DOWN):20 //KEYCODE_DPAD_DOWN:SendKey(ACTION_UP):20 //KEYCODE_DPAD_DOWNSleepingfor0milliseconds:SendKey(ACTION_DOWN):82 //KEYCODE_MENU:SendKey(ACTION_UP):82 //KEYCODE_MENUSleepingfor0milliseconds:SendKey(ACTION_DOWN):48 //KEYCODE_T:SendKey(ACTION_UP):48 //KEYCODE_TSleepingfor0milliseconds:SendingPointerACTION_DOWNx=19.0y=121.0:SendingPointerACTION_MOVEx=20.0y=123.0:SendingPointerACTION_MOVEx=11.0y=123.0:SendingPointerACTION_MOVEx=16.0y=123.0:SendingPointerACTION_UPx=16.0y=123.0Sleepingfor0milliseconds:SendKey(ACTION_DOWN):23 //KEYCODE_DPAD_CENTER:SendKey(ACTION_UP):23 //KEYCODE_DPAD_CENTERSleepingfor0milliseconds:SendKey(ACTION_DOWN):7 //KEYCODE_0:SendKey(ACTION_UP):7 //KEYCODE_0Sleepingfor0milliseconds:SendingPointerACTION_DOWNx=266.0y=182.0:SendingPointerACTION_UPx=266.0y=182.0Sleepingfor0milliseconds:SendKey(ACTION_DOWN):23 //KEYCODE_DPAD_CENTER:SendKey(ACTION_UP):23 //KEYCODE_DPAD_CENTERSleepingfor0milliseconds:SendKey(ACTION_DOWN):19 //KEYCODE_DPAD_UP:SendKey(ACTION_UP):19 //KEYCODE_DPAD_UPSleepingfor0milliseconds:SendKey(ACTION_DOWN):22 //KEYCODE_DPAD_RIGHT:SendKey(ACTION_UP):22 //KEYCODE_DPAD_RIGHTSleepingfor0milliseconds:SendingPointerACTION_DOWNx=593.0y=105.0:SendingPointerACTION_UPx=593.0y=105.0Sleepingfor0milliseconds:SendingPointerACTION_DOWNx=670.0y=10.0
:SendingPointerACTION_UPx=670.0y=10.0Sleepingfor0milliseconds:SendKey(ACTION_DOWN):82 //KEYCODE_MENU:SendKey(ACTION_UP):82 //KEYCODE_MENUSleepingfor0milliseconds:SendingPointerACTION_DOWNx=534.0y=101.0:SendingPointerACTION_UPx=534.0y=101.0Sleepingfor0milliseconds:SendKey(ACTION_DOWN):63 //KEYCODE_SYM:SendKey(ACTION_UP):63 //KEYCODE_SYMSleepingfor0milliseconds:SendingPointerACTION_MOVEx=-3.0y=0.0:SendingPointerACTION_MOVEx=-2.0y=-4.0:SendingPointerACTION_MOVEx=-5.0y=2.0:SendingPointerACTION_MOVEx=-3.0y=-5.0移動(dòng)事件:SendingPointerACTION_MOVEx=3.0y=-4.0移動(dòng)事件:SendingPointerACTION_MOVEx=-3.0y=-4.0// :SendingPointerACTION_MOVEx=0.0y=-2.0:SendingPointerACTION_MOVEx=4.0y=-1.0:SendingPointerACTION_MOVEx=1.0y=-5.0:SendingPointerACTION_MOVEx=2.0y=-5.0:SendingPointerACTION_MOVEx=0.0y=3.0:SendingPointerACTION_MOVEx=-4.0y=0.0:SendingPointerACTION_MOVEx=-2.0y=0.0:SendingPointerACTION_MOVEx=-4.0y=2.0:SendingPointerACTION_MOVEx=2.0y=1.0:SendingPointerACTION_MOVEx=-2.0y=4.0:SendingPointerACTION_MOVEx=-5.0y=-3.0:SendingPointerACTION_MOVEx=1.0y=3.0:SendingPointerACTION_MOVEx=3.0y=4.0:SendingPointerACTION_MOVEx=-2.0y=4.0:SendKey(ACTION_DOWN):19 //KEYCODE_DPAD_:SendKey(ACTION_UP):19 //KEYCODE_DPAD_UPSleepingfor0milliseconds:SendingPointerACTION_MOVEx=-2.0y=-2.0:SendingPointerACTION_MOVEx=-2.0y=-3.0:SendingPointerACTION_MOVEx=-1.0y=-2.0:SendingPointerACTION_MOVEx=1.0y=1.0:SendingPointerACTION_MOVEx=-1.0y=-2.0:SendingPointerACTION_MOVEx=4.0y=2.0:SendingPointerACTION_MOVEx=3.0y=4.0:SendingPointerACTION_MOVEx=2.0y=-4.0:SendingPointerACTION_MOVEx=-5.0y=-2.0:SendingPointerACTION_MOVEx=-4.0y=-1.0:SendingPointerACTION_MOVEx=2.0y=-2.0:SendingPointerACTION_MOVEx=-4.0y=-2.0:SendingPointerACTION_MOVEx=-2.0y=-4.0:SendingPointerACTION_MOVEx=0.0y=1.0:SendingPointerACTION_MOVEx=-3.0y=0.0:SendingPointerACTION_MOVEx=-3.0y=-4.0:SendingPointerACTION_MOVEx=2.0y=1.0:SendingPointerACTION_MOVEx=0.0y=4.0:SendingPointerACTION_MOVEx=-1.0y=-4.0:SendingPointerACTION_MOVEx=-4.0y=1.0:SendKey(ACTION_DOWN):20//KEYCODE_DPAD_DOWN:SendKey(ACTION_UP):20//KEYCODE_DPAD_DOWNSleepingfor0milliseconds:SendKey(ACTION_DOWN):21//KEYCODE_DPAD_LEFT:SendKey(ACTION_UP):21//KEYCODE_DPAD_LEFTSleepingfor0milliseconds:SendingPointerACTION_DOWNx=471.0y=147.0:SendingPointerACTION_MOVEx=476.0y=143.0Eventsinjected:100//丟棄的,鍵=0,指針=0,軌跡球=0,翻轉(zhuǎn)=0.:Dropped:keys=0pointers=0trackballs=0flips=0〃網(wǎng)絡(luò)統(tǒng)計(jì)經(jīng)過(guò)的時(shí)間為16692ms,其中16692ms是用在手機(jī)上的,Oms用于無(wú)線(xiàn)網(wǎng)絡(luò)上,沒(méi)有連接的時(shí)間為0ms##Networkstats:elapsedtime=16692ms(Omsmobile,Omswifi,16692msnotconnected)//測(cè)試完成//Monkeyfinished從例子中可以看出,該程序在這次測(cè)試中沒(méi)有問(wèn)題,若程序出現(xiàn)問(wèn)題終端將打印出異常供程序員查找錯(cuò)誤。雖然我們?cè)谏厦鏇](méi)有出現(xiàn)異常,但是我們通過(guò)界面可以看到一些我們平常操作無(wú)法出現(xiàn)的一些現(xiàn)象,在上面的測(cè)試過(guò)程中出現(xiàn)如下圖的界面#monkey-pcom.cooliris.media-s14-v-v-vport23: .... :AllowPackage:ort:AllowPackage:com.cooliris.media:IncludeCategory:ent.category.LAUNCHER:IncludeCategory:ent.category.MONKEY//Sent.category.LAUNCHER//Seeded:14//Eventpercentages:// 0:15.0%// 1:10.0%// 2:15.0%// 3:25.0%// 4:15.0%// 5:2.0%// 6:2.0%// 7:1.0%// 8:15.0%:Switch:#Intent;action=ent.action.MAIN;category=ent.category.LAUNCHER;launchFlags=0x10000000;component=com.cooliris.media/.Gallery;end//AllowingstartofIntent{act=ent.action.MAINcat=[ent.category.LAUNCHER]cmp=com.cooliris.media/.Gallery}inpackagecom.cooliris.mediaSleepingfor0milliseconds:SendingPointerACTION_MOVEx=-2.0y=-5.0:SendingPointerACTION_MOVEx=1.0y=-2.0:SendingPointerACTION_MOVEx=0.0y=3.0:SendingPointerACTION_MOVEx=4.0y=-3.0:SendingPointerACTION_MOVEx=-3.0y=4.0:SendingPointerACTION_MOVEx=3.0y=3.0:SendingPointerACTION_MOVEx=0.0y=1.0:SendingPointerACTION_MOVEx=3.0y=1.0:SendingPointerACTION_MOVEx=1.0y=0.0:SendingPointerACTION_MOVEx=-3.0y=0.0:SendingPointerACTION_DOWNx=753.0y=475.0:SendingPointerACTION_UPx=753.0y=475.0Sleepingfor0milliseconds:SendKey(ACTION_DOWN):22//KEYCODE_DPAD_RIGHT//CRASH:com.cooliris.media(pid1132)//ShortMsg:java.lang.ArraylndexOutOfBoundsException//LongMsg:java.lang.ArraylndexOutOfBoundsException//BuildLabel:generic/full_tiger_mb/tiger_mb:2.3.1/GRH78/eng.root.20111026.135943:eng/test-keys 〃顯示當(dāng)前出錯(cuò)問(wèn)題的鏡像的版本//BuildChangelist:eng.root.20111026.135943//BuildTime:1319608830000//java.lang.ArraylndexOutOfBoundsException//atjava.util.ArrayList.get(ArrayList.java:313)〃指出了出錯(cuò)問(wèn)題所涉及應(yīng)用程序源碼位置
//atcom.cooliris.media.TimeBar.getItem(TimeBar.java:157)//atcom.cooliris.media.GridLayer.onTimeChanged(GridLayer.java:1277)//atcom.cooliris.media.TimeBar.onTouchEvent(TimeBar.java:469)//atcom.cooliris.media.RenderVcessTouchEvent(RenderView.java:722)//atcom.cooliris.media.RenderView.onDrawFrame(RenderView.java:638)//atandroid.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:136[)//atandroid.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1118)//**Monkeyabortedduetoerror.Eventsinjected:14:Dropped:keys=0pointers=1trackballs=0flips=0##Networkstats:elapsedtime=7032ms(0msmobile,0mswifi,7032msnotconnected)**Systemappearstohavecrashedatevent14of23usingseed14〃第14個(gè)隨機(jī)事件時(shí)出現(xiàn)問(wèn)題我們捕捉到的出錯(cuò)信息有利于開(kāi)發(fā)人員定位問(wèn)題,測(cè)試人員可以從開(kāi)發(fā)板上查看到出錯(cuò)問(wèn)題的表面現(xiàn)象,兩個(gè)相互結(jié)合有利于bug的修復(fù)。出現(xiàn)問(wèn)題后我們根據(jù)板子的現(xiàn)象提出bug,提交的方式跟我們手動(dòng)測(cè)試檢測(cè)出的問(wèn)題的提交方式一樣,首先我們確定測(cè)試的模塊,在這里是圖庫(kù)問(wèn)題(縮略圖界面移動(dòng)縮略圖出現(xiàn)的問(wèn)題),那我們就要找到相應(yīng)的測(cè)試用例(如果沒(méi)有自己添加),然后執(zhí)行相應(yīng)的測(cè)試用例,見(jiàn)圖4-1,在Actual處填寫(xiě)出現(xiàn)的現(xiàn)象:來(lái)回滑動(dòng)縮略圖滑塊造成圖庫(kù)自動(dòng)退出,并彈出“圖庫(kù)退出對(duì)話(huà)框”,注:使用monkey測(cè)試出現(xiàn)問(wèn)題的打印信息添加到附件中(最好同時(shí)打開(kāi)兩個(gè)終端一個(gè)打印monkey信息,一個(gè)用來(lái)打印logcat信息,這樣有利于開(kāi)發(fā)人員定位)pa匚kage5/Bpps/Gallery3D/5rcyccnn/cociliri5/inedia/GridDrawManager.javap曰匚k日?已5陽(yáng)ppsfG日丨皚ryMD河「匚紀(jì){]171比0{]|『討171已
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年品管部主管職責(zé)與權(quán)限模版(二篇)
- 2024年小學(xué)語(yǔ)文教師個(gè)人研修計(jì)劃范例(三篇)
- 2024年小學(xué)體育器材管理制度范文(三篇)
- 2024年外商投資企業(yè)勞動(dòng)合同經(jīng)典版(三篇)
- 2024年安全總監(jiān)崗位職責(zé)具體內(nèi)容模版(三篇)
- 2024年學(xué)校校本培訓(xùn)計(jì)劃模版(二篇)
- 2024年各種管理制度(二篇)
- 2024年幼兒園大班的下學(xué)期工作計(jì)劃范例(四篇)
- 2024年城鎮(zhèn)集體所有制企業(yè)職工勞動(dòng)合同格式范本(二篇)
- 【《幼兒園自然課程游戲活動(dòng)指導(dǎo)的適應(yīng)性策略探究》6400字(論文)】
- 2024-2030年中國(guó)鉀長(zhǎng)石行業(yè)運(yùn)行動(dòng)態(tài)與產(chǎn)銷(xiāo)需求預(yù)測(cè)報(bào)告
- 第四章-護(hù)理人際關(guān)系倫理
- 針灸室暈針應(yīng)急預(yù)案演練方案
- 第2章 第5節(jié) 科學(xué)探究:電容器2023-2024學(xué)年新教材高二物理必修第三冊(cè)同步課堂高效講義配套教學(xué)設(shè)計(jì)(魯科版2019)
- 電動(dòng)汽車(chē)充電設(shè)施及場(chǎng)站測(cè)試評(píng)價(jià)規(guī)范第1部分:總則
- 二次系統(tǒng)安全防護(hù)事故應(yīng)急預(yù)案格式(標(biāo)準(zhǔn)版)
- 餐飲技能大賽(中式面點(diǎn)師賽項(xiàng))理論考試題及答案
- 部編版2023-2024學(xué)年度六年級(jí)上冊(cè)語(yǔ)文期中測(cè)試卷(附答案)
- 2023-2024學(xué)年北京西城區(qū)八中高三(上)期中數(shù)學(xué)試題及答案
- 村集體所有房屋買(mǎi)賣(mài)合同書(shū)(35篇)
- 江蘇省南京市2024-2025學(xué)年高三上學(xué)期第一次學(xué)情調(diào)研英語(yǔ)試題含答案
評(píng)論
0/150
提交評(píng)論