




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、一、簡介monkey是Android中的一個命令行工具,可以運行在模擬器里或?qū)嶋H設備中。它向系統(tǒng)發(fā)送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現(xiàn)對正在開發(fā)的應用程序進行壓力測試。Monkey測試是一種為了測試軟件的穩(wěn)定性、健壯性的快速有效的方法。特征如下:A、測試的對象僅為應用程序包,有一定的局限性。B、Monkey測試使用的事件流數(shù)據(jù)流是隨機的,不能進行自定義。C、可對MonkeyTest的對象、事件數(shù)量、類型、頻率等進行設置monkey是根植在Android系統(tǒng)中的。可以用adb shell進入Android命令行后輸入monkey啟動,也可以直接用adb shell m
2、onkey啟動。我們假設已經(jīng)用adb shell進入了Android命令行模式。一個最簡單的例子:#monkey -p com.android.browser 500monkey包括許多選項,它們大致分為四大類:l 基本配置選項,如設置嘗試的事件數(shù)量l 運行約束選項,如設置只對單獨的一個包進行測試l 事件類型和頻率l 調(diào)試選項在monkey運行的時候,它生成事件,并把它們發(fā)給系統(tǒng)。同時,monkey還對測試中的系統(tǒng)進行監(jiān)測,對下列三種情況進行特殊處理(自動停止):l 如果限定了monkey運行在一個或幾個特定的包上,那么它會監(jiān)測試圖轉(zhuǎn)到其它包的操作,并對其進行阻止;l 如果應用程序崩潰或接收到
3、任何失控異常,monkey將停止并報錯;l 如果應用程序產(chǎn)生了應用程序不響應(application not responding)的錯誤,monkey將會停止并報錯。按照選定的不同級別的反饋信息,在monkey中還可以看到其執(zhí)行過程報告和生成的事件二、環(huán)境部署三、測試準備Monkey測試前必須先進入android設備的adb shell步驟如下:1. 開始>運行>cmd 2. usb連接手機,輸入 adb shell 命令,待出現(xiàn) 即可輸入以下內(nèi)容
4、;3. 進入手機后,輸入相應的monkey命令即可測試 四、基本命令格式adb shell monkey p 程序包 v 測試次數(shù)比如:“adb shell monkey p com.htc.Weather v 20000”意思是對com.htc.Weather這個程序包單獨進行一次20000次的monkey測試其中程序包名稱可以在串口終端這句命令獲得:ls data/data 顯示所有程序包 五、測試Log獲取用monkey
5、測試,為了方便分析問題,可以在命令monkey命令后面加上 “|logcat -v time”,這樣就能邊測試邊打印log(記得用終端保存log文本)例如:adb shell monkey p com.htc.Weather v 20000|logcat -v time但是這個組合在monkey測試完成后,logcat仍然在執(zhí)行,測試時需要注意。如果測試monkey碰到crash或者anr(程序崩潰或不響應)現(xiàn)象時,在抓取log的同時需要提供traces.txt,步驟如下:1.
6、0;測試版本需要具備root權(quán)限2. 進入data/anr目錄下面3. 將traces.txt文件拷貝到TF卡中,然后拷貝出來發(fā)給軟件分析即可 六、monkey命令參數(shù)介紹1) p用于約束限制,指定一個或多個包(Package,即App)。指定包之后,monkey將只允許系統(tǒng)啟動指定的APP。如果不指定包,monkey將允許系統(tǒng)啟動設備中的所有APP。要指定多個包,需要使用多個 -p選項,每個-p選項只能用于一個包。指定一個包 adb shell monkey -p com.htc.Weather
7、0; 100說明:com.htc.Weather為包名,100是事件計數(shù)(即讓monkey程序模擬100次隨機用戶事件)。指定多個包adb shell monkey -p com.htc.Weather -p com.htc.pdfreader -p com.htc.photo.widgets 100不指定包adb shell monkey 100說明:monkey隨機啟動APP并發(fā)送100個隨機事件。* 要查看設備中所有的包,在cmd窗口中執(zhí)
8、行以下命令: >adb shell #cd data/data #ls 2) -v用于指定反饋信息級別(信息級別就是日志的詳細程度),總共分3個級別,分別對應的參數(shù)如下表所示:日志級別 Level 0 示例:adb shell monkey -p com.htc.Weather v 100說明:缺省值,僅提供啟動提示、測試完成和最終結(jié)果等少量信息 日志級別 Lev
9、el 1示例:adb shell monkey -p com.htc.Weather v -v 100說明:提供較為詳細的日志,包括每個發(fā)送到Activity的事件信息 日志級別 Level 2示例:adb shell monkey -p com.htc.Weather v -v v 100說明:最詳細的日志,包括了測試中選中/未選中的Activity信息 3) -s用于指定
10、偽隨機數(shù)生成器的seed值,如果seed相同,則兩次monkey測試所產(chǎn)生的事件序列也相同的。* 示例:monkey測試1:adb shell monkey -p com.htc.Weather s 10 100 monkey測試2:adb shell monkey -p com.htc.Weather s 10 100 兩次測試的效果是相同的,因為模擬的用戶操作序列(每次操作按照一定的先后
11、順序所組成的一系列操作,即一個序列)是一樣的。操作序列雖然是隨機生成的,但是只要我們指定了相同的seed值,就可以保證兩次測試產(chǎn)生的隨機操作序列是完全相同的,所以這個操作序列偽隨機的; 4) -throttle(設置事件間延時)用于指定用戶操作(即事件)間的時延,單位是毫秒;在事件之間插入固定延遲。通過這個選項可以減緩Monkey的執(zhí)行速度。如果不指定該選項, Monkey將不會被延遲,事件將盡可能快地被生成。示例:adb shell monkey -p com.htc.Weather -throttle 3000
12、 100 5) -ignore-crashes(忽略崩潰)用于指定當應用程序崩潰時(Force & Close錯誤),monkey是否停止運行。如果使用此參數(shù),即使應用程序崩潰,monkey依然會發(fā)送事件,直到事件計數(shù)完成。示例1:adb shell monkey -p com.htc.Weather -ignore-crashes 1000測試過程中即使Weather程序崩潰,monkey依然會繼續(xù)發(fā)送事件直到事件數(shù)目達到1000為止;示例2:adb shell
13、160;monkey -p com.htc.Weather 1000測試過程中,如果Weather程序崩潰,monkey將會停止運行。 6) -ignore-timeouts(忽略超時)用于指定當應用程序發(fā)生ANR(Application No Responding)錯誤時,monkey是否停止運行。如果使用此參數(shù),即使應用程序發(fā)生ANR錯誤,monkey依然會發(fā)送事件,直到事件計數(shù)完成。 7) -ignore-security-exceptions(忽略安全異常)用于指定當應用程序發(fā)生許可錯誤時(如證書許可、網(wǎng)絡
14、許可、啟動一個需要某些許可的Activity等),monkey是否停止運行。如果使用此參數(shù),即使應用程序發(fā)生許可錯誤,monkey依然會發(fā)送事件,直到事件計數(shù)完成。 8) -kill-process-after-error(錯誤后殺進程)用于指定當應用程序發(fā)生錯誤時,是否停止其運行。如果指定此參數(shù),當應用程序發(fā)生錯誤時,應用程序停止運行并保持在當前狀態(tài)(注意:應用程序僅是靜止在發(fā)生錯誤時的狀態(tài),系統(tǒng)并不會結(jié)束該應用程序的進程)。通常,當Monkey由于一個錯誤而停止時,出錯的應用程序?qū)⒗^續(xù)處于運行狀態(tài)。當設置了此選項時,將會通知系統(tǒng)停止發(fā)生錯誤的進程。注意,正常的(成功的)結(jié)束,并沒
15、有停止啟動的進程,設備只是在結(jié)束事件之后,簡單地保持在最后的狀態(tài)。9) -monitor-native-crashes監(jiān)視并報告Android系統(tǒng)中本地代碼的崩潰事件。如果設置了-kill-process-after-error,系統(tǒng)將停止運行。10) -pct-+事件類別 +事件類別百分比用于指定每種類別事件的數(shù)目百分比(在monkey事件序列中,該類事件數(shù)目占總事件數(shù)目的百分比) 參數(shù):使用說明:示例:-pct-touch +百分比 -觸摸事件調(diào)整觸摸事件的百分比(觸摸事件是一個down-up事件,它發(fā)生在屏幕上的某單一位置)adb she
16、ll monkey -p com.htc.Weather -pct-touch 10 1000-pct-motion +百分比 -動作事件調(diào)整動作事件的百分比(動作事件由屏幕上某處的一個down事件、一系列的偽隨機事件和一個up事件組成)adb shell monkey -p com.htc.Weather -pct-motion 20 1000 -pct-trackball +百分比-軌跡事件調(diào)整軌跡事件的百分比(軌跡事件由一個或幾個
17、隨機的移動組成,有時還伴隨有點擊)adb shell monkey -p com.htc.Weather -pct-trackball 30 1000-pct-nav +百分比-基本導航事件調(diào)整基本導航事件的百分比(導航事件由來自方向輸入設備的up/down/left/right組成)adb shell monkey -p com.htc.Weather -pct-nav 40 1000 -pct-majornav +百分比-
18、主要導航事件調(diào)整主要導航事件的百分比(這些導航事件通常引發(fā)圖形界面中的動作,如:5-way鍵盤的中間按鍵、回退按鍵、菜單按鍵)adb shell monkey -p com.htc.Weather -pct-majornav 50 1000 -pct-syskeys +百分比-系統(tǒng)按鍵事件調(diào)整系統(tǒng)按鍵事件的百分比(這些按鍵通常被保留,由系統(tǒng)使用,如Home、Back、Start Call、End Call及音量控制鍵)adb shell monkey -p
19、 com.htc.Weather -pct-syskeys 60 1000 -pct-appswitch +百分比-啟動Activity的百分比調(diào)整啟動Activity的百分比。在隨機間隔里,monkey將執(zhí)行一個startActivity()調(diào)用,作為最大程度覆蓋包中全部Activity的一種方法adb shell monkey -p com.htc.Weather -pct-appswitch 70 1000 -pct-anyevent +百
20、分比調(diào)整其它類型事件的百分比。它包羅了所有其它類型的事件,如:按鍵、其它不常用的設備按鈕等等adb shell monkey -p com.htc.Weather -pct -anyevent 100 1000* 指定多個類型事件的百分比: adb shell monkey -p com.htc.Weather -pct-anyevent 50 -pct-appswitch 50 1000注意:各事件類型的百分比總數(shù)
21、不能超過100%; 11)-c <main-category>如果用此參數(shù)指定了一個或幾個類別,Monkey將只允許系統(tǒng)啟動被這些類別中的某個類別列出的Activity。如果不指定任何類別,Monkey將選擇下列類別中列出的Activity: Intent.CATEGORY_LAUNCHER或Intent.CATEGORY_MONKEY。要指定多個類別,需要使用多個-c選項,每個-c選項只能用于一個類別。12)-dbg-no-events設置此選項,Monkey將執(zhí)行初始啟動,進入到一個測試Activity,然后不會再進一步生成事件。為了得到最佳結(jié)果,把它與-v、一個或幾
22、個包約束、以及一個保持Monkey運行30秒或更長時間的非零值聯(lián)合起來,從而提供一個環(huán)境,可以監(jiān)視應用程序所調(diào)用的包之間的轉(zhuǎn)換。13)-hprof 設置此選項,將在Monkey事件序列之前和之后立即生成profiling報告。這將會在data/misc中生成大文件(5Mb),所以要小心使用它。14)-wait-dbg停止執(zhí)行中的Monkey,直到有調(diào)試器和它相連接。七、實例應用股票測試:#adb shell monkey p com.ebensz.stock v 500這條命令解釋:-p com.ebensz.stock是指定測試的程序,-v是顯示默認程度的信息,最后count就是事件數(shù)設定為
23、500假如:運行結(jié)束后,結(jié)果顯示為:* System appears to have crashed at event 48 of 500 using seed 0系統(tǒng)在500個操作的第48個操作里出現(xiàn)了異常,用的種子是0。0就是偽隨機數(shù)的種子。我們下次想用相同的操作序列再現(xiàn)這個異常,只需要:#adb shell monkey -p com.ebensz.stock -s 0 500同時能在這個測試的結(jié)果中看到報錯的log信息首先我們應該明白我們不可能使用monkey來制定做一樣測試,重復做很多次,因為 monkey是偽隨機的,就是說雖然有一定規(guī)律可循,但是并不是我們就可以指定動作,但是我們可以通過添加命令選項來將操作限制在一定的范圍內(nèi)。如剛才的股票測試:#adb shell monkey p com.ebensz.stock -throttle 50 -pct-anyevent 100 v 500這條命令的解釋:-throttle 50 設
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 裝飾材料行業(yè)品牌形象宣傳策略考核試卷
- 羽絨制品生產(chǎn)環(huán)境與職業(yè)健康安全考核試卷
- 數(shù)字智慧方案5400丨某省高院智慧法院解決方案
- 園林景觀設計調(diào)研
- 2025年一級建造師之一建機電工程實務能力提升試卷A卷附答案
- 2025年水鎂石項目建議書
- 2025年一級建造師之一建港口與航道工程實務強化訓練試卷A卷附答案
- 戶外廣告媒體設計要點解析
- 2023抖音電商國貨食品飲料消費洞察報告
- 酒廠包裝考試試題及答案
- 房屋改造合同2024年
- JGJ-T221-2010纖維混凝土應用技術(shù)規(guī)程
- 連棟簡易溫室結(jié)構(gòu)計算書
- 正餐服務業(yè)連鎖經(jīng)營模式研究
- 【正版授權(quán)】 ISO 10993-18:2020/Amd 1:2022 EN Biological evaluation of medical devices - Part 18: Chemical characterization of medical device materials within a risk management process -
- 不忠的婚姻協(xié)議
- 2024屆上海奉賢區(qū)高三一模英語試題及答案
- 2024山東鐵投集團招聘筆試沖刺題(帶答案解析)
- 環(huán)境與資源保護法學智慧樹知到期末考試答案章節(jié)答案2024年湖南師范大學
- (高清版)JTGT 3222-2020 公路工程物探規(guī)程
- 國家級自然災害工程應急救援隊伍建設規(guī)范
評論
0/150
提交評論