【Android測試】【第二節】Monkey工具

來源:互聯網
上載者:User

標籤:android   壓力測試   monkey   

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

什麼是Monkey 

    Monkey是Android中的一個命令列工具,可以運行在模擬器裡或實際裝置中。它向系統發送偽隨

機的使用者事件流(如按鍵輸入、觸控螢幕輸入、手勢輸入等),實現對正在開發的應用程式進行壓力測試。

Monkey測試是一種為了測試軟體的穩定性、健壯性的快速有效方法。


● Monkey用來做什麼

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


● Monkey程式介紹

   (1) Monkey程式由Android系統內建,使用Java詫言寫成,在Android檔案系統中的存放路徑是: /system/framework/monkey.jar;   
   (2) Monkey.jar程式是由一個名為“monkey”的Shell指令碼來啟動執行,shell指令碼在Android檔案系統中 的存放路徑是:/system/bin/monkey;  
   (3)Monkey 命令啟動方式:    
      a.可以通過PC機CMD視窗中執行: adb shell monkey{+命令參數}來進行Monkey測試

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


● Monkey的架構

    Monkey 運行在裝置或模擬器上面,可以脫離PC運行(普遍做法是將monkey作為一個像待測應用發送 隨機按鍵訊息的測試載入器。驗證待測應用在這些隨機性的輸入面前是否會閃退或者崩潰)

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/8A/3B/wKioL1grxNXRobSdAACt4Y5LhQo502.png" title="263119-20160505223944482-1516389266.png" alt="wKioL1grxNXRobSdAACt4Y5LhQo502.png" />


Monkey參數大全

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/8A/3E/wKiom1grxSGDmSHMAACAjjIjPVA969.png" title="263119-20160505230123154-1071480837.png" alt="wKiom1grxSGDmSHMAACAjjIjPVA969.png" />

Monkey 命令、基本參數介紹


- p <允許的包名列表>         

    用此參數指定一個或多個包。指定包之後,monkey將只允許系統啟動指定的app。如果不指定

包,monkey將允許系統啟動裝置中的所有app。  

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

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

 

- v        

    用於指定反饋資訊層級(資訊層級就是日誌的詳細程度),總共分3個層級,分別對應的參數如下表所示: 

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

試完成和最終結果等少量資訊 

  

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

個發送到Activity的事件資訊


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

未選中的Activity資訊


- s(隨機數種子)            

    用於指定偽隨機數產生器的seed值,如果seed相同,則兩次Monkey測試所產生的事件序列也相同的。樣本:

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 <毫秒>            

    用於指定使用者操作(即事件)間的時延,單位是毫秒;如果丌指定這個參數,monkey會儘可能快的 產生和發送訊息。

樣本:adb shell monkey -p com.shjt.map --throttle 3000 100   



Monkey查看包名

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

  

 2)源碼下的AndroidManifest.xml檔案查看 

 
 3)aapt命令查看


● Monkey日誌分析

正常情況,如果Monkey測試順利執行完成,在log的最後,會列印出當前執行事件的次數和所花費的時間; // Monkey finished 代表執行完成\

 

異常情況

Monkey 測試出現錯誤後,一般的分析步驟

看Monkey的日誌 (注意第一個swith以及異常資訊等)
 1. 程式無響應的問題: 在日誌中搜尋 “ANR”
 2. 崩潰問題:在日誌中搜尋 “Exception” (如果出現null 指標 NullPointerException)肯定是有bug

Monkey 執行中斷,在log最後也能看到當前執行次數



本文出自 “半醒半醉半浮生” 部落格,請務必保留此出處http://sweettesting.blog.51cto.com/12233355/1873367

【Android測試】【第二節】Monkey工具

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.