有時候我們需要對乙個軟體進行壓力測試,檢查該軟體的效能。如果是人工進行測試的話,效率會低很多,而且會比較枯燥。這時,android
中的乙個命令列工具
monkey
就可以為我們減輕很多重複而又繁瑣的工作。
一、monkey
簡介至於monkey
的名字是有何而來的呢?這個沒有去怎麼考究,
monkey
這個工具就是乙個調皮的猴子,在
中亂按、亂摸、亂滾、亂跳。
monkey
測試是android
平台下自動化測試的一種快速有效的手段,通過
monkey
工具可以模擬使用者觸控螢幕、滑動軌跡球、按鍵等操作來對模擬器或者手機裝置上的軟體進行壓力測試,檢測該軟體的穩定性、健壯性。它的原理是向系統傳送偽隨機的使用者事件流(如按鍵輸入、觸控輸入、手勢輸入等),實現對正在開發的應用程式進行壓力測試。
二、monkey
的特性(1
)測試的物件僅為應用程式包(
apk包),有一定的侷限性;(2)
monkey
測試使用的事件流資料流是隨機的,不能進行自定義;
(3)可對
monkeytest
的物件、事件數量、型別、頻率等進行設定。
雖然monkey工具並不完善,但是足於應付應用程式的基本測試需要了。如果需要功能更強大的測試工具的話,可以使用
monkey
的進化版
monkeyrunner
。如果把monkey
看作是幼兒園的小孩,那麼它的進化版
monkeyrunner
就可以看作是乙個初中生了。它支援自定義外掛程式,
控制事件
,隨時截圖
,簡而言之
,任何你在模擬器
/裝置中能幹的事情
,monkeyrunner
都能幹,
而且還可以記錄和回放。在這裡,就不詳細介紹monkeyrunner了,具體可以參考其官方文件或者其他相關資料。
注:monkeyrunner
官方文件的**
三、monkey
的基本用法
基本語法如下:
$ adb shell monkey [options]
如果不指定options
,monkey
將以無反饋模式啟動,並把事件任意傳送到安裝在目標環境中的全部包。下面是乙個更為典型的命令列示例,它啟動指定的應用程式,並向其傳送
1000個偽隨機事件:
$ adb shell monkey -p your.package.name -v number
$ monkey -p(
package
的意思) 指定檔名
-v(測試的次數和頻率)
number
(次數)
四、monkey測試示例**
通過簡單的測試示例,初步了解並掌握monkey
測試的步驟。注意,這裡主要是使用
adb(1)首先,先準備了乙個測試用的應用程式(apk
檔案)。為了測試,這裡選擇了乙個格瓦拉手機購票
檔案。(2)將apk
檔案複製到
android sdk
對應platform-tools
的目錄下。例如,筆者的
sdk路徑為
d:\android\android-sdk-windows\platform-tools
。如圖所示
(3)進行apk
檔案的安裝(安裝的前提是,已經啟動並可以檢測模擬器):有安裝
91助手或者豌豆的使用者可以直接雙擊
apk檔案進行安裝;也可以使用
android
下的adb
命令進行安裝(如下圖所示,
success
表示安裝成功)。
adb命令下安裝
apk檔案的命令為:
adb install
檔名.apk
(4)安裝好後,會在模擬器上看到應用程式的啟**標
(5)安裝好
apk檔案後,需要知道應用程式主
activity
(第乙個啟動的
activity
)所在的包名。這時,我們可以使用
adb shell
命令查詢到程式主
activity
所在的包名,如下圖所示。(知道了
apk的包名,我們也可以利用
adb命令進行應用程式的解除安裝;解除安裝
apk檔案的命令為:
adb uninstall
包名)
(6)這裡是最關鍵的一步,使用moneky
命令進行自動化壓力測試。
命令為:#monkey -p com.gewara -v 1000(引數說明:-p後跟著軟體所在包名,
-v後跟測試的次數)。這裡對該軟體進行
1000
次的自動化測試,幾分鐘內即可以完成測試。如圖所示
(7)測試完畢,發現程式出錯了。程式出錯,表明該軟體的穩定性和健壯性還有待提高。
這時,可以開啟lotcat檢視出錯資訊。如圖所示
五、monkey測試的停止條件
(1)如果先頂了monkey
執行在乙個或幾個特定的包上,那麼它會檢測試圖轉到它包的操作,並對其進行阻止;
(2)如果應用程式崩潰或接收到任何失控異常,monkey
將停止並報錯;
)的錯誤,
monkey
將會停止並報錯。
通過多次並且不同設定下的monkey
測試才算它是乙個穩定性和健壯性足夠的程式。
六、monkey
命令引數說明
的崩潰(
的崩潰會導致
monkey
測試的停止),而不是停住,
monkey
同樣能做到。
--ignore crashes
甚至,它還能生成profiling
報告。
--hprof
注:monkey
具體引數的設定可參考:
通過引數的設定,可以完成更多的除錯功能,monkey
命令列引數中文相關說明見下表。
monkey相關:
安卓自動化測試 monkey 一
monkey是安卓中的乙個命令列工具,可以執行在模擬器或者是實際的裝置中,它向系統傳送為偽隨機的使用者事件流 如按鍵輸入 觸控螢幕輸入 手勢輸入等 實現對正在開發的應用程式進行壓力測試。monkey測試是一種為了測試軟體的穩定性 健壯性快速有效的方法 測試的物件僅為應用程式包,有一定的侷限性 mon...
自動化測試工具monkey
monkey是android中的乙個命令列工具,可以執行在模擬器裡或實際裝置中。它向系統傳送偽隨機的使用者事件流 如按鍵輸入 觸控螢幕輸入 手勢輸入等 實現對正在開發的應用程式進行壓力測試。monkey測試是一種為了測試軟體的穩定性 健壯性的快速有效的方法。a 測試的物件僅為應用程式包,有一定的侷限...
Android自動化測試工具 Monkey
前言 最近開始研究android自動化測試方法,整理了一些工具 方法和框架,其中包括android測試框架,cts monkey monkeyrunner benchmark,以及其它test tool等等。一 什麼是monkey monkey是android中的乙個命令列工具,可以執行在模擬器裡或...