Monkey學習過程與個人見解_參數

前不久我轉到一個本地化項目做安卓測試,還只有一個安卓測試那種。這要是測得不好就有點尷尬了,這么覺得的我于是想著雖然那種很洋氣的自動化我還不會,但是至少跑個monkey還是沒問題的!剛好今天比較閑于是就開始擠時間準備開始學學怎么跑monkey了!

【本次僅記錄如何使用monkey各常用參數及對其的理解,腳本及報告分析放到下一篇。】


Monkey,顧名思義就是猴子,引申出來即是猴子瞎點能發現一些平時進行正常操作發現不了的問題。【純屬個人理解。_(:зゝ∠)_】

關于如何連上手機開啟調試就略過不提,當連上需調試的手機后進入cmd的操作界面,使用adb shell進入shell端, 然后monkey+參數。即adb shell monkey+參數。

在命令最后加上的一個整數即為想要產生的隨機事件數量。

Monkey的參數大致分為四類:General,Events,Constraints,Debugging。

一、General參數即是常規參數,一般指-v與--help。

按照我自己學習Linux的習慣就來先搞懂命令的縮寫是什么意思。

1、-v即level,打印出的log的詳細程度。詳細程度一共有三級0/1/2,詳細如下。

Level0(默認)-v,除了啟動、測試完成和最終結果外只提供較少的信息。

Level1 -v -v,提供了較為詳細的測試信息,如逐個發送到Activity的事件信息。

Level2 -v -v -v,提供了更多的設置信息,如測試中選中或未選中的Activity信息。

1_例子:adb shell monkey -v -v -v 1000

2、--help,關于help命令就不必多說了。

此外不知道大家有沒有跟我一樣的困惑:有的教程里寫的是-help,而有的是--help,這兩個命令有區別嗎?

查詢后得出的結論是--后一般接命令完整單詞,-后一般接命令簡寫。比如--help與-h其實執行的是同一命令,但是有的參數只能使用完整單詞比如后面將提到的--throttle。

【如有問題請在評論里給我提出,謝謝。】

二、Events參數即為操縱每個事件的參數,比如-s,--throttle等。

1、-s參數為seed,種子。種瓜得瓜種豆得豆,即我們可以根據出現錯誤時的seed值運行出相同的隨機事件序列。【這個參數我其實沒太明白如何使用,就是比如我想復現seed=12312時的事件序列,然后后面需要選擇執行多少次呢?希望有人解答。】

2、--throttle 壓制,節流閥即控制,我們可以通過這個參數操作每個事件的間隔時間來模擬用戶的真實操作速度,比如一般取值為300ms。

2_例子:adb shell monkey -s 152342 --throttle 300 -v 1000

3、除了以上兩個參數外還有一系列以--pct開頭的控制每種事件百分比的參數,當測試不同類型APP時可以針對對應的事件百分比做調整。詳細內容如下。

--pct-touch 指定觸摸事件的百分比

--pct-motion? (滑動事件)

--pct-trackball? (軌跡球事件)

--pct-nav? (導航事件 up/down/left/right)

--pct-majornav? (主要導航事件 back key 、 menu key)

--pct-syskeys? (系統按鍵事件 Home 、Back 、startCall 、 endCall 、 volumeControl)

--pct-appswitch? (activity之間的切換)

--pct-anyevent (任意事件)

3_例子:adb shell monkey --pct-motion 30 --pct-touch 20 -v 1000(注意--pct數值后不用加百分號%)

三、Constraints約束參數,即對運行的隨機事件范圍等進行約束的參數,如-p。

1、-p package包,使用這個參數可以針對指定的包產生隨機事件。并且可以指定多個包,一個包名對應一個-p參數。

1_例子:adb shell monkey -p xx.xxx.xxx -p zz.zzz.zzz -v 1000

2、-c category類別,這個參數只允許系統啟動這些類別中某個類別列出的Activity。使用這個參數需要知道應用的activity名稱。如不手動指定,monkey只會啟動Intent.CATEGORY_LAUNCHER和Intent.CATEGORY_MONKEY的活動。【這個因為我沒看到代碼所以沒有怎么嘗試,感到遺憾,之后會好好看看這個參數。】

2_例子:adb shell monkey -p xx.xxx.xxx -c android.intent.category.LAUNCH -v 1000

四、Debugging調試參數,即用于調試的參數命令,如--hprof。

1、--dbg-no-events 使用此參數時monkey會啟動待測應用,但不發送任何消息,建議與-v,-p,-throttle一起使用。

2、--hprof 這個參數生成的profiling報告可以由HPROF查看工具會列出類、類的實例和實例的引用樹,以此來幫助你跟蹤內存的使用情況,找出內存泄漏的地方。HPROF最初是由J2SE支持的一種二進制堆轉儲格式。

相對于靜態代碼分析,Profiling 是通過收集程序運行時的信息來研究程序行為的動態分析方法。其目的在于定位程序需要被優化的部分,從而提高程序的運行速度或是內存使用效率。

使用此參數時monkey會在發送事件前后生成性能報告(即內存的快照文件),一般在設備的/data/misc目錄下生成一個hprof文件。【這個命令我今天還沒試過,等明天試試看,看看打印出的報告。】

3、--kill-process-after-error 一般情況下,當monkey因為某個錯誤指定運行時,出問題的應用會留在系統上繼續執行,這個選項通知系統當錯誤發生時殺掉進程。

注意:當monkey正常執行完畢后,它不會關閉所啟動的應用,設備依然停留在最后接受到消息的狀態。

4、--monitor-native-crashes 監視由Android C/C++代碼部分(cpu計算部分)引起的崩潰,此時如果設置了“--kill-process-after-error”,整個系統會關機。【這個命令我今天還沒試過,等試了看看能不能結合日志分析下原因。】

5、--wait-dbg 即我們啟動monkey后,只有連上被測設備且打開調試時才繼續進行monkey測試。

1-5_例子:adb shell monkey -p xx.xx.xx--dbg-no-events --hprof --kill-process-after-error --wait-dbg -v 1000

6、除了以上參數還有以ignore開頭的一系列參數,可以便于在問題發生后繼續進行monkey測試直到指定個數的消息全部發送完畢,而不會直接中斷停止。

--ignore-crashes 忽略待測應用崩潰或發生異常的情況

--ignore-timeouts 忽略待測應用停止響應(如彈出“應用無響應”對話框)的情況

--ignore-security-exceptions 忽略待測應用碰到權限方面的錯誤的情況

6_例子:adb shell monkey -p xx.xx.xx --hprof --kill-process-after-error --wait-dbg --ignore-crashes --ignore-security-exceptions -v 1000


其中一些未嘗試的參數我接下來會再試試,等嘗試了繼續更新或在更新下一篇關于腳本&報告分析的時候加在其中。


參考:

http://www.cnblogs.com/yajing-zh/p/4340795.html

http://www.cnblogs.com/wanqieddy/p/4312814.html


Submitted by 梅湖

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,835評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,676評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,730評論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,118評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,873評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,266評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,330評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,482評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,036評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,846評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,025評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,575評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,279評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,684評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,953評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,751評論 3 394
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,016評論 2 375

推薦閱讀更多精彩內容