Monkey入門介紹_第1頁
Monkey入門介紹_第2頁
Monkey入門介紹_第3頁
Monkey入門介紹_第4頁
Monkey入門介紹_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、揭開一個神秘穩(wěn)定性測試工具的面紗.MonkeyMonkey入門介紹Android系列 制作:Mads(吳越欣)那么問題來了,什么是monkeymonkey.1.1.什么是monkeymonkeymonkey是運(yùn)行在你的程序 模擬器或設(shè)備,并生成用戶事件的偽隨機(jī)流,例如點(diǎn)擊,觸摸,或手勢,以及若干系統(tǒng)級事件。您可以使用monkey壓力測試應(yīng)用程序。Monkey 測試,所有的事件都是隨機(jī)產(chǎn)生的,不帶任何人的主觀性。帶你進(jìn)入monkeymonkey的精神世界.2.2.如何操作monkeymonkey1.進(jìn)入monkey環(huán)境1.1首先檢測android真機(jī)/模擬器是否已經(jīng)連接:adb device1.

2、2然后選取一個設(shè)備來進(jìn)入shell:adb -s XX設(shè)備 shell,當(dāng)然如果你只有一個設(shè)備,完全可以寫adb shell2.2.進(jìn)入shell之后monkey help查看monkey的幫助,當(dāng)然你可以去官網(wǎng)看手冊來進(jìn)行學(xué)習(xí)3.查看應(yīng)用package3.1.aapt dump badging E:apkes3.apk3.2.開發(fā)版手機(jī)或模擬器UI利器:hierarchyviewer3.Monkey3.Monkey操作的參數(shù)解析3.1有關(guān)參數(shù)p的學(xué)習(xí):參數(shù)-p用于約束限制,用此參數(shù)指定一個或多個包(Package,即App)。指定包之后,Monkey將只允許系統(tǒng)啟動指定的APP。如果不指定包

3、,Monkey將允許系統(tǒng)啟動設(shè)備中的所有APP。指定一個包: adb shell monkey -p com.htc.Weather 100說明:com.htc.Weather為包名,100是事件計(jì)數(shù)(即讓Monkey程序模擬100次隨機(jī)用戶事件)。指定多個包:adb shell monkey -p com.htc.Weather p com.htc.pdfreader -p com.htc.photo.widgets 100不指定包:adb shell monkey 1003.2有關(guān)參數(shù)v的學(xué)習(xí):用于指定反饋信息級別(信息級別就是日志的詳細(xì)程度),總共分3個級別,分別對應(yīng)的參數(shù)如下表所示:日

4、志級別 Level0 :示例 adb shellmonkey -p com.htc.Weather v 100說明 缺省值,僅提供啟動提示、測試完成和最終結(jié)果等少量信息日志級別 Level 1:示例 adb shellmonkey -p com.htc.Weather v -v 100說明 提供較為詳細(xì)的日志,包括每個發(fā)送到Activity的事件信息日志級別 Level 3:示例 adb shellmonkey -p com.htc.Weather v -v v 100說明 最詳細(xì)的日志,包括了測試中選中/未選中的Activity信息3.3參數(shù): -s用于指定偽隨機(jī)數(shù)生成器的seed值,如果s

5、eed相同,則兩次Monkey測試所產(chǎn)生的事件序列也相同的。Monkey測試1:adb shell monkey -p com.htc.Weather s 10 100兩次測試的效果是相同的,因?yàn)槟M的用戶操作序列(每次操作按照一定的先后順序所組成的一系列操作,即一個序列)是一樣的。操作序列雖 然是隨機(jī)生成的,但是只要我們指定了相同的Seed值,就可以保證兩次測試產(chǎn)生的隨機(jī)操作序列是完全相同的,所以這個操作序列偽隨機(jī)的;這個-s就是指定了操作的順序!3.4參數(shù):-throttle 用于指定用戶操作(即事件)間的時延,單位是毫秒;示例:adb shell monkey -p com.htc.We

6、ather throttle 3000 1004.4.高級的DemoDemo介紹adb shell monkey -p com.tmall.wireless -v -v -pct-touch 50 -pct-trackball 30 -throttle 300 100用monkey測試天貓的這個包觸摸操作百分之50,軌跡球操作百分之30,其它操作百分之20,總共進(jìn)行100次隨機(jī)點(diǎn)擊,事件之間間隔300ms5.monkey5.monkey的特征5.1.測試的對象僅為應(yīng)用程序包,有一定局限性5.2Monkey測試使用的事件隨機(jī)流是隨機(jī)的,不能進(jìn)行自定義5.3可對MonkeyTest的對象,事件數(shù)量

7、,類型,頻率等進(jìn)行設(shè)置Monkey的停止條件:1.如果限定了Monkey運(yùn)行在一個或者幾個特定包上,那么他會監(jiān)控測試圖到其它包的操作,并對其進(jìn)行組織2.應(yīng)用程序崩潰或接收到任何失控異常3.應(yīng)用程序不響應(yīng)4.正常運(yùn)行結(jié)束5.強(qiáng)制停止進(jìn)程MonkeyMonkey的異常loglog解析.6.Monkey6.Monkey的異常loglog總結(jié)6.1Null指針異??罩羔槷惓V饕怯蠳ullPointerException異常提示,在Monkey測試過程中,該信息一般記錄在plog.log (locat中也有該信息)中。如果Monkey命令被中斷,說明有異常信息并且有對應(yīng)的打印信息,可以看到如下信息,說

8、明幾個問題:A、cess.acore該進(jìn)程出現(xiàn)異常B、異常信息主要是由于NullPointerException引起的,也就是出現(xiàn)了空指針,導(dǎo)致了acore進(jìn)程進(jìn)入debugC、具體的可以繼續(xù)分析是由哪個函數(shù)的那一行導(dǎo)致的,如可以從rollAnimate3dRotate.java文件中的275行查找等。/at com.android.launcher.LauncherAnimator.ScrollAnimate3dRotate.drawFrame(ScrollAnimate3dRotate.java:275)D、可能同一應(yīng)用中存在多處的空指針異常,所以一旦出現(xiàn)空指異常后,

9、可以分析和對比log信息,如果不一致的話,需要把新的log信息也一同添加到bug中,如果log信息一直的話,則不需要繼續(xù)補(bǔ)充沒有必要的log信息。7.2debug異常debug異常主要是由于應(yīng)用程序本身的錯誤導(dǎo)致的異常。在Monkey測試過程中,該信息同樣記錄在plog.log (locat中也有該信息)中。一般情況下,出現(xiàn)的該問題,很可能在手動測試時也可以測試到。A、 com.android.browser該進(jìn)程進(jìn)入debugB、 出現(xiàn)的是IllegalStateException異常,該異常一般多是傳遞的參數(shù)非法或被多次調(diào)用時出現(xiàn)的異常C、 Bug信息提交時,詳細(xì)信息中一般應(yīng)該包含如下的l

10、og信息,方便開發(fā)人員分析和定位。6.3低內(nèi)存異常低內(nèi)存異常一般情況下,主要表現(xiàn)在出現(xiàn)OutOfMemoryError異?;蛘咛崾綩ut of memory,其后果同樣表現(xiàn)為拋出OutOfMemoryError異常或者是通過kill process 來殺掉部分進(jìn)程以釋放內(nèi)存空間,當(dāng)然如果被kill點(diǎn)關(guān)鍵的進(jìn)程的話,也就可能導(dǎo)致部分應(yīng)用會自動的退出。出現(xiàn)該情況時,主要是在進(jìn)行頻繁的進(jìn)行大量的操作導(dǎo)致的,所以使用手動的方式也是可能進(jìn)行重現(xiàn)的。A、 com.android.elastos.backup該進(jìn)程出現(xiàn)的異常B、 出現(xiàn)的是OutOfMemoryError異常,該異常一般多頻繁的操作(即多次調(diào)

11、用某個函數(shù),存在申請變量空間未釋放)導(dǎo)致的C、 Bug信息提交時,詳細(xì)信息中同樣應(yīng)該包含如下的log信息,方便開發(fā)人員分析和定位。6.4操作無響應(yīng)異常操作無響應(yīng)的問題,主要表現(xiàn)在Monkey運(yùn)行過程中,出現(xiàn)某功能無響應(yīng),提示是否“強(qiáng)制關(guān)閉“或“等待“,同時會打印出相應(yīng)的log信息,如下:A、 可以說明com.android.soundrecorder該進(jìn)程出現(xiàn)的無響應(yīng)B、 出現(xiàn)的是TimerOut異常,該異常一般出現(xiàn)時一般都會又keyDispatchingTimedOut提示C、 目前,uPhone手機(jī)中經(jīng)常出現(xiàn)操作無響應(yīng)的幾個模塊包括:clock、camera、soundrecorder、b

12、roser等,根據(jù)開發(fā)人員分析其他模塊也是有可能出現(xiàn)操作無響應(yīng)的,測試過程中,請多注意。D、 出現(xiàn)無響應(yīng)異常,一般情況下很難被修復(fù),和發(fā)送事件的頻率也是有關(guān)系的,從質(zhì)量上來要求的話,要求盡可能的減少出現(xiàn)操作無響應(yīng)的頻率和時間。6.5其他異常A、 Restart System異常(系統(tǒng)重新啟動),即log信息的最后幾行會看到Restart System的打印信息,說明手機(jī)被自動的重啟或斷掉,有幾個方面的原因1、 運(yùn)行過程中,存在異常手機(jī)被自動重啟2、 手機(jī)在運(yùn)行過程中,進(jìn)入設(shè)置中的恢復(fù)出場設(shè)置,導(dǎo)致手機(jī)重啟3、 其他原因,如果手機(jī)后蓋移動等B、 RuntimeException等異常,同樣的會在

13、plog.log中可以看到相應(yīng)的打印信息, java.lang.RuntimeException該問題多出現(xiàn)在操作無響應(yīng)之后,或者是某應(yīng)用的服務(wù)無法啟動或連接時,需要具體問題具體的分析C、 StaleDataException、readException等異常, 在plog.log中可以看到相應(yīng)的打印信息,也會有相應(yīng)的信息: android.database.StaleDataException,該信息說明android的數(shù)據(jù)庫操作出現(xiàn)異常, 需要具體問題具體的分析D、 IllegalArgumentException等異常,多少情況下為說明向函數(shù)傳遞了一個不正確或不合法的參數(shù)需要具體問題具體的分析E、 其他,帶補(bǔ)充和分析說明一些好的測試建議.說明幾點(diǎn):1、 log信息的分析,希望在bug信息的簡述中能夠明確說明清楚出現(xiàn)的是什么異常,具體的log信息要單獨(dú)添加到詳細(xì)信息描述中,方便相關(guān)人員定位和查看。2、 buy的提交,對于Monkey測試出現(xiàn)的問題a、 首先要求分析l

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論