monkey工具介紹及用法


monkey是android 系統自帶的一個命令行工具,可以向被測應用程序發送偽隨機的用戶事件流(如按鍵、觸屏、滑動等操作),實現對應用程序進行測試的目的。

monkey測試也叫猴子測試,是指測試時可以像好奇的猴子一樣,不停的對應用程序進行隨機操作,以便驗證應用程序的穩定性和健壯性。因此,monkey測試是軟件穩定性,健壯性的測試工具

下面是monkey提供的一些參數:

參數:

事件相關參數表:

-s <seed>    這個參數是偽隨機數生成器的種子值,如果用相同的隨機種子值再次運行相同的monkey命令時,前、后兩次執行的操作事件序列相同,也就是相同的操作。

--throttle <milliseconds>    這個參數是設定在兩個事件之間插入一個固定延時,它可以減緩Monkey的執行速度。如果您不指定選項,Monkey將不會被延遲,事件將盡可能快地生產和發送消息。

--pct-touch <percent>    這個參數是設定觸屏事件生產的百分比,觸屏事件是一個有手指按下、抬起事件的操作。

--pct-motion <percent>    這個參數是設定滑動事件生成的百分比,滑動事件是一個先在某一個位置手指按下,滑動一段距離后再抬起手勢的操作。

--pct-trackball <percent>    這個參數是設定軌跡球事件生成的百分比,軌跡球事件是包含一系列隨機移動和單擊事件的操作。

--pct-nav <percent>      這個參數是設置基本的導航事件的百分比,基本導航事件的模擬方向性設置輸入向上、向下、向左、向右的操作。

--pct-majornav <percent>    這個參數是設定主要導航事件的百分比,主要導航事件通常是導致UI產生回饋事件,如:單擊BACK鍵,單擊MENU鍵。

--pct-syskeys <percent>     這個參數是設定系統按鍵事件的百分比,系統按鍵是指這些按鍵通常被保留,由系統使用,如HOME,BACK,撥號,掛斷及音量控制鍵。

--pct-appswitch <percent>    這個參數是設定啟動活動事件的百分比,在隨機的一定間隔后,Monkey就會執行一個startActivity()函數盡可能多的覆蓋包中全部活動。

--pct-anyevent <percent>    這個參數是設定其他類型事件的百分比,如普通的按鍵消息,不常用的設備按鈕事件等。

 

約束條件:

-p <運行的包名列表>      這個參數是設定一個或幾個包名,monkey將只允許系統啟動這些包里的活動,如果您的應用程序還需要訪問其他包里的活動,如選擇一個聯系人,那也需要在此同時指定聯系人所在應用的包名。

要指定多個包時,需要使用多個“-p”選項,每個“-p”選項只能用於一個包。

-c <意圖的分類>        這個參數是指定意圖的分類,這樣monkey只會啟動可以處理這些種類的意圖的活動。如果沒有設置這個選項,monkey則只會啟動帶有Intent.CATGORY_LAUNCHER 和Intent.CATEGORY_MONKEY。

與“-p”參數類似,要指定多個類別,需要使用多個“-c”選項,每個“-c”選項只能用於一個類別。

 

調試選項:

--dbg-no-events        若指定了該參數,monkey將會執行初始啟動,進入到一個測試Activity,不會再進一步生產事件。為了得到最佳結果,把它與“-v”,“-p”和“--throttle”等參數一起使用,並讓monkey運行30秒或更長時間,

從而可以讓我們觀測到應用程序所調用的包與包之間的切換過程。

--hprof            若指定了該參數,monkey會在發送事件序列的前、后,生成性能分析報告。通常會在“data/misc”目錄下生成一個5MB左右大小文件。

--ignore-crashes        通常情況下,monkey會在待測應用程序崩潰或發生任何異常后停止運行。若指定了該參數,則monkey將會在產生異常后,繼續向系統發送事件,直到指定的事件消息全部完成為止。

--ignore-timeouts        通常情況下,當應用程序發生任何超時錯誤(如“Application Not Responding” 對話框)時,monkey將停止運行,若指定了該參數,則monkey將會在產生錯誤消息后,繼續向系統發送事件,直到指定的事件

消息全部完成為止。

--igone-security-exceptions    通常情況下,monkey會在被測應用程序發生權限方面的錯誤時停止運行。若指定了該參數,則monkey將繼續向系統發送事件,直到指定的事件消息全部完成為止。

--kill-process-after-error      通常情況下,當monkey由於一個錯誤而停止時,出錯的應用程序就繼續處於運行狀態。當設置了此選項時,它將會通知系統停止發生錯誤的進程(注意:當monkey正常執行完畢后,它不會關閉所啟動的應用,設備依然保留

其最后接收到的消息狀態,所以建議大家在執行命令以后為保持應用的初始狀態,需手動或者腳本程序已經打開的應用進行關閉)。

--monitor-native-crashes      監視由android C/C++ 代碼部分引起的崩潰,若同時指定了 --kill-process-after-error 參數,則整個系統將會關機。

--wait-dbg            啟動monkey后,先中斷其運行,等待調式器和它相連接。

 

示例講解:

-s  指定隨機種子大小

命令:adb shell monkey -p com.xxx.xxx -v 100

-s的參數值為100,表明monkey對應用程序com.xxx.xxx一共發送100個隨機操作事件。第一次執行和第二次執行該命令時,操作的事件順序是一樣的,因為-s的參數都是100,產生的隨機事件序列的順序也是一樣。

 

-p  指定運行的應用程序

命令:adb shell monkey -p com.xxx.xxx -p com.android.calendar 200

有兩個-p參數,說明monkey同時啟動兩個應用程序,並對這兩個應用程序同時進行200個隨機操作事件。

 

-throttle  指定各個隨機事件之間的延時時間,單位:毫秒

命令:adb shell monkey -p com.xxx.xxx --throttle 3000 100

--throttle 參數值為3000毫秒,也就是每個事件操作的時間間隔為3秒,3秒后進入下一個事件操作。

 

--pct-touch <percent>  用於設定觸屏事件生成的百分比

命令:adb shell monkey --pct-touch 50 -p com.xxx.xxx --throttle 3000 100

--pct-touch 50 表示設定觸屏事件的占比為50%。

 

--pct-motion <percent>  用於設定滑動事件生成的百分比

命令:adb shell monkey --pct-motion 50 -p com.xxx.xxx --throttle 3000 100

--pct-motion 50 表示設定滑動事件的占比為50%

 

--pct-trackball <percent>  用於設定軌跡球事件的百分比

命令:adb shell monkey --pct-trackball 50 -p com.xxx.xxx --throttle 3000 100

-pct-trackball 50 表示設定軌跡球事件的占比是50%

 

--pct-nav <percent>  用於設定設備向上、向下、向左、向右事件的百分比

命令:adb shell monkey --pct-nav 60 -p com.xxx.xxx  100

--pct-nav 50 表示設置控制設備操作向上、向下、向左、向右的比例占比是60%。

 

--pct-majornav <percent>  用於控制設備主要導航事件,如單擊BACK鍵,單擊MENU鍵的百分比

命令:adb shell monkey --pct-majonav 70 -p com.xxx.xxx 200

--pct-majornav 70 表示設置控制設備主要導航事件,打擊BACK鍵,單擊MENU鍵的占比是70%。

 

--pct-syskeys <percent>  用於控制設備系統按鍵事件,如home、back、撥號、掛斷及音量事件生成的百分比

命令:adb shell monkey --pct-syskeys 50 -p com.xxx.xxx 100

-pct-syskeys 50 表示設置控制系統按鍵事件的占比為50%。

 

 --pct-appswitch <percent>  用於設置啟動活動事件的百分比

命令:adb shell monkey --pct-appswitch 60 -p com.xxx.xxx 500

表示設置主要覆蓋包中60%的活動

 

--pct-anyevent <percent>  用於設置其他類型事件的百分比

命令:adb shell monkey --pct-anyevent 50 -p com.xxx.xxx 500

表示其中普通的按鍵消息、不常用的設備按鈕事件等占50%

 

--hprof  用於記錄monkey在執行前、后的性能數據

命令:adb shell monkey --hprof -p com.xxx.xxx 5000

表示在monkey發送事件序列的前、后,生成性能分析報告。通常會“/data/misc”目錄下生成一個5MB大小左右的文件。

 

--ignore-crashes  用於設置monkey運行時,待測程序崩潰或發生異常后,是否需要繼續執行

命令:adb shell monkey --ignore-crashes -p com.xxx.xxx 5000

表示在monkey執行事件操作過程中,如果發生了程序崩潰或異常,依然繼續執行剩余的操作

 

--ignore-timeout  用於設置monkey運行時,待測程序出現超時,是否需要繼續執行

命令:adb shell monkey --ignore-timeout -p com.xxx.xxx 5000

表示在monkey執行事件操作過程中,如果出現超時(Application Not Responding),monkey依然執行剩余的操作

 

--ignore-security-exceptions  用於設置monkey運行時,出現一些訪問權限問題,是否需要繼續執行

命令:adb shell monkey --ignore-security-exceptions -p com.xxx.xxx 5000

表示在monkey運行時,出現證書許可證錯誤或網絡許可錯誤等情況,monkey依然繼續執行剩余的操作

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM