1、初步分析方法:
Monkey測試出現錯誤後,通常的差錯步驟爲如下幾步:
一、找到是monkey裏面的哪一個地方出錯
二、查看Monkey裏面出錯前的一些事件動做,並手動執行該動做
三、若以上步驟還不能找出,可使用以前執行的monkey命令再執行一遍,注意seed值要同樣
通常的測試結果分析:
一、ANR問題:在日誌中搜索「ANR」
二、崩潰問題:在日誌中搜索「Exception」
2、詳細分析monkey日誌:
首先咱們須要查看Monkey測試中是否出現了ANR或者異常,具體方法如上述。將執行Monkey生成的log,從手機中導出並打開查看該log;在log的最開始都會顯示Monkey執行的seed值、執行次數和測試的包名。具體方法如上述。android
而後咱們要分析log中的具體信息,方法以下:
查看log中第一個Switch,主要是查看Monkey執行的是那一個Activity,譬以下面的log中,執行的是com.tencent.smtt.SplashActivity,在下一個swtich之間的,若是出現了崩潰或其餘異常,能夠在該Activity中查找問題的所在。
:Switch:#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=com.tencent.smtt/.SplashActivity;end
// Allowing start of Intent {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER]cmp=com.tencent.smtt/.SplashActivity } in package com.tencent.smtt
在下面的log中,Sending Pointer ACTION_DOWN和Sending Pointer ACTION_UP表明當前執行了一個單擊的操做;
Sleeping for 500 milliseconds這句log是執行Monkey測試時,throttle設定的間隔時間,每出現一次,就表明一個事件。
SendKey(ACTION_DOWN) //KEYCODE_DPAD_DOWN 表明當前執行了一個點擊下導航鍵的操做;
Sending Pointer ACTION_MOVE 表明當前執行了一個滑動界面的操做。
:Sending Pointer ACTION_DOWN x=47.0 y=438.0
:Sending Pointer ACTION_UP x=47.0 y=438.0
Sleeping for 500 milliseconds
:SendKey (ACTION_DOWN): 20 //KEYCODE_DPAD_DOWN
:SendKey (ACTION_UP): 20 //KEYCODE_DPAD_DOWN
Sleeping for 500 milliseconds
:Sending Pointer ACTION_MOVE x=-2.0 y=3.0
:Sending Pointer ACTION_MOVE x=4.0 y=-3.0
:Sending Pointer ACTION_MOVE x=-5.0 y=-3.0
:Sending Pointer ACTION_MOVE x=3.0 y=4.0
:Sending Pointer ACTION_MOVE x=-4.0 y=1.0
:Sending Pointer ACTION_MOVE x=-1.0 y=-1.0
:Sending Pointer ACTION_MOVE x=-2.0 y=-4.0
若是Monkey測試順利執行完成,在log的最後,會打印出當前執行事件的次數和所花費的時間;// Monkey finished表明執行完成。Monkey執行中斷,在log的最後也能查看到當前已執行的次數。Monkey執行完成的log具體以下:
Events injected: 6000
:Dropped: keys=0 pointers=9 trackballs=0 flips=0
## Network stats: elapsed time=808384ms (0ms mobile, 808384ms wifi, 0msnot connected)
// Monkey finished測試