溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

【Android測試】【第二節(jié)】Monkey工具

發(fā)布時間:2020-05-29 16:43:48 來源:網(wǎng)絡(luò) 閱讀:989 作者:Sweettesting 欄目:移動開發(fā)

    最近開始研究Android測試的Monkey工具,因接觸時間很短,還有很多不足之處,希望能和大家多多交流。

什么是Monkey 

    Monkey是Android中的一個命令行工具,可以運行在模擬器里或?qū)嶋H設(shè)備中。它向系統(tǒng)發(fā)送偽隨

機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現(xiàn)對正在開發(fā)的應(yīng)用程序進行壓力測試。

Monkey測試是一種為了測試軟件的穩(wěn)定性、健壯性的快速有效的方法。


● Monkey用來做什么

    Monkey 主要用于Android 的壓力測試自動的一個壓力測試小工具,主要目的就是為了測試app 是否會Crash. 


● Monkey程序介紹

   (1) Monkey程序由Android系統(tǒng)自帶,使用Java詫言寫成,在Android文件系統(tǒng)中的存放路徑是: /system/framework/monkey.jar;   
   (2) Monkey.jar程序是由一個名為“monkey”的Shell腳本來啟動執(zhí)行,shell腳本在Android文件系統(tǒng)中 的存放路徑是:/system/bin/monkey;  
   (3)Monkey 命令啟動方式:    
      a.可以通過PC機CMD窗口中執(zhí)行: adb shell monkey{+命令參數(shù)}來進行Monkey測試

      b.在PC上adb shell 進入Android系統(tǒng),通過執(zhí)行 monkey {+命令參數(shù)}來進行Monkey測試         c.在Android機或者模擬器上直接執(zhí)行monkey 命令,可以在Android機上安裝Android終端模擬器


● Monkey的架構(gòu)

    Monkey 運行在設(shè)備或模擬器上面,可以脫離PC運行(普遍做法是將monkey作為一個像待測應(yīng)用發(fā)送 隨機按鍵消息的測試工具。驗證待測應(yīng)用在這些隨機性的輸入面前是否會閃退或者崩潰)

【Android測試】【第二節(jié)】Monkey工具


Monkey參數(shù)大全

【Android測試】【第二節(jié)】Monkey工具

Monkey 命令、基本參數(shù)介紹


- p <允許的包名列表>         

    用此參數(shù)指定一個或多個包。指定包之后,monkey將只允許系統(tǒng)啟動指定的app。如果不指定

包,monkey將允許系統(tǒng)啟動設(shè)備中的所有app。  

指定一個包:adb shell monkey -p com.shjt.map 100   

指定多個包:adb shell monkey -p fishjoy.control.menu  –p com.shjt.map  100  

 

- v        

    用于指定反饋信息級別(信息級別就是日志的詳細程度),總共分3個級別,分別對應(yīng)的參數(shù)如下表所示: 

Level 0 :adb shell monkey -p com.shjt.map -v 100      // 缺省值,僅提供啟動提示、測

試完成和最終結(jié)果等少量信息 

  

Level 1 :adb shell monkey -p com.shjt.map -v  -v 100  // 提供較為詳細的日志,包括每

個發(fā)送到Activity的事件信息


Level 2 :adb shell monkey -p com.shjt.map -v -v -v 100 // 最詳細的日志,包括了測試中選中/

未選中的Activity信息


- s(隨機數(shù)種子)            

    用于指定偽隨機數(shù)生成器的seed值,如果seed相同,則兩次Monkey測試所產(chǎn)生的事件序列也相同的。示例:

monkey測試1:adb shell monkey -p com.shjt.map –s 10 100

                

monkey測試2:adb shell monkey -p com.shjt.map –s 10 100  


--throttle <毫秒>            

    用于指定用戶操作(即事件)間的時延,單位是毫秒;如果丌指定這個參數(shù),monkey會盡可能快的 生成和發(fā)送消息。

示例:adb shell monkey -p com.shjt.map --throttle 3000 100   



Monkey查看包名

 1)手機中安裝APK包名查看器

  

 2)源碼下的AndroidManifest.xml文件查看 

 
 3)aapt命令查看


● Monkey日志分析

正常情況,如果Monkey測試順利執(zhí)行完成,在log的最后,會打印出當(dāng)前執(zhí)行事件的次數(shù)和所花費的時間; // Monkey finished 代表執(zhí)行完成\

 

異常情況

Monkey 測試出現(xiàn)錯誤后,一般的分析步驟

看Monkey的日志 (注意第一個swith以及異常信息等)
 1. 程序無響應(yīng)的問題: 在日志中搜索 “ANR”
 2. 崩潰問題:在日志中搜索 “Exception” (如果出現(xiàn)空指針 NullPointerException)肯定是有bug

Monkey 執(zhí)行中斷,在log最后也能看到當(dāng)前執(zhí)行次數(shù)



向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI