下面介紹下monkey的原理 Monkey是Android中的一個命令行工具,能夠運行在模擬器裏或實際設備中。它向系統發送僞隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。Monkey測試是一種爲了測試軟件的穩定性、健壯性的快速有效的方法。android
Monkey 測試,全部的事件都是隨機產生的,不帶任何人的主觀性。shell
使用Monkey流程app
總的來講使用monkey進行測試是比較簡單的,只是須要作一些比較複雜的準備工做。下面詳解測試步驟(很簡單的哦),所講內容是創建在已經配置好ADB環境的基礎上(若是這部分不清楚請先google一下先配置好環境,這裏不作描述)。ide
一、ADB鏈接Android測試設備。工具
筆者用的是虛擬機,cmd adb devices 查看設備鏈接狀況測試
C:\Documents and Settings\Administrator>adb devices List of devices attached emulator-5554 devicegoogle
二、肯定你要測試的應用的PackageName。spa
在有設備鏈接的前提下,在命令行中輸入:adb shell 進入shell界面命令行
C:\Documents and Settings\Administrator>adb shell#查看data/data文件夾下的應用程序包。注:咱們能測試的應用程序包都在這個目錄下面C:\Documents and Settings\Administrator>adb shell# ls data/data ls命令意思是顯示該目錄的下的文件ls data/datacom.google.android.btroutercom.android.providers.telephonycom.android.mmscom.android.providers.downloads...以com.android.calculator2com.thestore.maincom.android.providers.contactsrouter
#monkey -p com.android.calculator2 -v 500關於參數後面會講到的,先介紹下最基本的
三、以com.android.calculator2做爲對象進行MonkeyTest 安卓自帶的計算機程序
-p表示對象包 –v 表示反饋信息級別
4.關於Monkey測試的中止條件
Monkey Test執行過程當中在下列三種狀況下會自動中止:
一、若是限定了Monkey運行在一個或幾個特定的包上,那麼它會監測試圖轉到其它包的操做,並對其進行阻止。
二、若是應用程序崩潰或接收到任何失控異常,Monkey將中止並報錯。
三、若是應用程序產生了應用程序不響應(application not responding)的錯誤,Monkey將會中止並報錯。
經過屢次而且不一樣設定下的Monkey測試纔算它是一個穩定性足夠的程序。
5.參數介紹
Category | Option | 描述 |
General 常規 |
--help | 列出簡單的用法。 |
-v | 命令行的每個-v將增長反饋信息的級別。Level 0(缺省值)除啓動提示、測試完成和最終結果以外,提供較少信息。Level 1提供較爲詳細的測試信息,如逐個發送到Activity的事件。Level 2提供更加詳細的設置信息,如測試中被選中的或未被選中的Activity。 | |
Events 事件 |
-s <seed> | 僞隨機數生成器的seed值。若是用相同的seed值再次運行Monkey,它將生成相同的事件序列。 |
--throttle <milliseconds> | 在事件之間插入固定延遲。經過這個選項能夠減緩Monkey的執行速度。若是不指定該選項,Monkey將不會被延遲,事件將盡量快地被產成。 | |
--pct-touch <percent> | Adjust percentage of touch events. (Touch events are a down-up event in a single place on the screen.) 調整觸摸事件的百分比(觸摸事件是一個down-up事件,它發生在屏幕上的某單一位置)。 |
|
--pct-motion <percent> | 調整動做事件的百分比(動做事件由屏幕上某處的一個down事件、一系列的僞隨機事件和一個up事件組成)。 | |
--pct-trackball <percent> | 調整軌跡事件的百分比(軌跡事件由一個或幾個隨機的移動組成,有時還伴隨有點擊)。 | |
--pct-nav <percent> | 調整「基本」導航事件的百分比(導航事件由來自方向輸入設備的up/down/left/right組成)。 | |
--pct-majornav <percent> | 調整「主要」導航事件的百分比(這些導航事件一般引起圖形界面中的動做,如:5-way鍵盤的中間按鍵、回退按鍵、菜單按鍵) | |
--pct-syskeys <percent> | 調整「系統」按鍵事件的百分比(這些按鍵一般被保留,由系統使用,如Home、Back、Start Call、End Call及音量控制鍵)。 | |
--pct-appswitch <percent> | 調整啓動Activity的百分比。在隨機間隔裏,Monkey將執行一個startActivity()調用,做爲最大程度覆蓋包中所有Activity的一種方法。 | |
--pct-anyevent <percent> | 調整其它類型事件的百分比。它包羅了全部其它類型的事件,如:按鍵、其它不經常使用的設備按鈕、等等。 | |
Constraints 約束限制 |
-p <allowed-package-name> | 若是用此參數指定了一個或幾個包,Monkey將只容許系統啓動這些包裏的Activity。若是你的應用程序還須要訪問其它包裏的Activity(如選擇取一個聯繫人),那些包也須要在此同時指定。若是不指定任何包,Monkey將容許系統啓動所有包裏的Activity。要指定多個包,須要使用多個 -p選項,每一個-p選項只能用於一個包。 |
根據本身想要的方式本身設置參數,若是報錯嘗試本身分析,而後進行錯誤定位,固然實在定位不了能夠找安卓開發幫忙看看。
轉載至:http://mp.weixin.qq.com/s?__biz=MjM5Mjg0MzMzMw==&mid=212654692&idx=4&sn=8e460bdb68eedeaa2d7aa449224a1ebc&scene=0#rd