文章出處

1.Monkey 是什么

Monkey是Android中的一個命令行工具,可以運行在模擬器里或實際設備中。它向系統發送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。Monkey測試是一種為了測試軟件穩定性、健壯性的快速有效的方法。

Monkey程序由Android系統自帶,使用Java語言寫成,在Android文件系統中的存放路徑是:/system/framework/monkey.jar。Monkey.jar程序是由一個名為“monkey”的shell腳本來啟動執行,shell腳本在Android文件系統中的存放路是:/system/bin/monkey;

這樣就可以通過在CMD窗口中執行: adb shell monkey {+命令參數}來進行Monkey測試了。

打開CMD窗口,輸入adb shell ls /system/framework,可以查看到monkey.jar;同理,可查看monkey。

2.Monkey測試的特點

1)測試的對象僅為應用程序包,有一定的局限性。

2)Monkey測試使用的事件流數據流是隨機的,不能進行自定義。

3)可對MonkeyTest的對象,事件數量,類型,頻率等進行設置。

3.Monkey的基本用法

1)Monkey測試準備

在執行Monkey測試之前,我們需要下載ADB工具,并安裝JDK v1.5以上的版本。

ADB工具是谷歌提供的Android調試工具,可以通過linux命令行訪問手機。

安裝好JDK環境,下載adbtools之后,我們需要配置一下環境變量,把adbtools的存放路徑添加到path中,我們可以開始進行Monkey測試。

注:需要root權限。

2)基本語法如下:

$ adb devices
這個命令是查看當前連接的設備, 連接到計算機的android設備或者模擬器將會列出顯示。

$adb install
adb install <apk文件路徑> :這個命令將指定的apk文件安裝到設備上
adb install  -r <apk文件路徑> :如果加-r參數會覆蓋原來安裝的軟件并保留數據
注意:apk文件名不要使用中文且不要有空格號

$ adb shell monkey [options]

如果不指定options,Monkey將以無反饋模式啟動,并把事件任意發送到安裝在目標環境中的全部包。下面是一個更為典型的命令行示例,它啟動指定的應用程序,并向其發送500 個偽隨機事件:

$ adb shell monkey -p your.package.name -v 500

4.monkey測試的相關的原理

monkey測試的原理就是利用socket通訊的方式來模擬用戶的按鍵輸入,觸摸屏輸入,手勢輸入等,看設備多長時間會出異常。當Monkey程序在模擬器或設備運行的時候,如果用戶觸發了比如點擊,觸摸,手勢或一些系統級別的事件的時候,它就會產生隨機脈沖,所以可以用Monkey用隨機重復的方法去負荷測試你開發的軟件。

5.monkey實例

1)啟動Android模擬器

2)在命令行中輸入:adb devices查看設備連接情況

3)在有設備連接的前提下,在命令行中輸入:adb shell 進入shell界面

4)查看data/data文件夾下的應用程序包。注:我們能測試的應用程序包都在這個目錄下面

5)以com.tencent.mobileqq為對象,進行monkey test

monkey -p com.tencent.mobileqq -v 500

6)另一種執行方法

adb shell monkey -p com.tencent.mobileqq -v 500>E:\monkey\test.log

6.Monkey測試的停止條件

Monkey Test執行過程中在下列三種情況下會自動停止:

1)如果限定了Monkey運行在一個或幾個特定的包上,那么它會監測試圖轉到其它包的操作,并對其進行阻止。

2)如果應用程序崩潰或接收到任何失控異常,Monkey將停止并報錯。

3)如果應用程序產生了應用程序不響應(application not responding)的錯誤,Monkey將會停止并報錯。

通過多次并且不同設定下的Monkey測試才算它是一個穩定性足夠的程序。

 

工作中為了保證測試數量的完整進行,我們一般不會在發生錯誤時立刻退出壓力測試。monkey 測試命令如下:

adb shell monkey -p com.xy.android.junit -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000 > E:\monkey\log.txt

Monkey測試是Android自動化測試里面使用比較簡單的方法,可以很大程度檢驗我們的程序是否穩定,能否經得起壓力測試,可以根據實際情況調整測試的強度和測試重點。

Monkey測試只是一個模擬測試,很多時候跟實際情況時有差別的,所以這個只能是其中一個輔助測試。


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()