漫談:Monkey測試簡介
作者:強官濤   類型:測試開發    類別:漫談   日期:2017-12-08    閱讀:2322 次   消耗積分:0 分

Monkey是Android SDK自帶的測試工具,在實際應用中經常有公司用來做一些APP的穩定性測試,由于測試事件和數據都是隨機的,有一定的局限性。

一monkey測試的相關的原理

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

二、Monkey程序介紹

1) Monkey程序由Android系統自帶,使用Java語言寫成,在Android文件系統中的存放路徑是:/AndroidADT/sdk/tools/lib/monkey.jar;相應的途徑如圖所示:



路徑

2) Monkey.jar程序是由一個名為“monkey”的Shell腳本來啟動執行,shell腳本在Android文件系統中的存放路徑是:/sdk/tools/bin/monkey;

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

注意前提條件是,你已經配置好Java和Android的環境變量。(配置步驟請百度)

問題來了,Monkey的命令參數是怎么設置的呢?(繼續往下看)

三、Monkey命令的簡單幫助

要獲取Monkey命令自帶的簡單幫助,在CMD中執行命令:

adb shell monkey –help

這樣子,就有他的各種各樣的提示命令的參數。

cmd

1) 參數:  -p

參數-p用于約束限制,用此參數指定一個或多個包(Package,即App)。指定包之后,Monkey將只允許系統啟動指定的APP。如果不指定包,Monkey將允許系統啟動設備中的所有APP。

* 指定一個包: adb shell monkey -p com.android.calculator2  100

說明:com.android.calculator2 為包名,100是事件計數(即讓Monkey程序模擬100次隨機用戶事件)。

cal

* 指定多個包:adb shell monkey -p com.android.calculator2 –p com.android.canlendar 100  如圖所示:

cmd3

* 不指定包:adb shell monkey 100

說明:Monkey隨機啟動APP并發送100個隨機事件。

* 要查看設備中所有的包,在CMD窗口中執行以下命令:

>adb shell

#cd data/data

#ls

注意:手機沒有root時不能用這個屬性,模擬器上可以。

2) 參數:  -v

用于指定反饋信息級別(信息級別就是日志的詳細程度),總共分3個級別,分別對應的參數如下表所示:

日志級別 Level 0

示例 adb shell monkey -p com.android.calculator2 –v 100

說明 缺省值,僅提供啟動提示、測試完成和最終結果等少量信息 相應源代碼如圖所示了,這十分有利于調試了。

cmd2

 

日志級別 Level 1

示例 adb shell monkey -p com.android.calculator2 –v -v 100

說明  提供較為詳細的日志,包括每個發送到Activity的事件信息

 

 

日志級別 Level 2

示例 adb shell monkey -p com.android.calculator2 –v -v –v 100

說明  最詳細的日志,包括了測試中選中/未選中的Activity信息

-s

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

* 示例:

Monkey測試1:adb shell monkey -p com.android.calculator2 –s 10 100

Monkey 測試2:adb shell monkey -p com.android.calculator2 –s 10 100

兩次測試的效果是相同的,因為模擬的用戶操作序列(每次操作按照一定的先后順序所組成的一系列操作,即一個序列)是一樣的。操作序列雖   然是隨機生成的,但是只要我們指定了相同的Seed值,就可以保證兩次測試產生的隨機操作序列是完全相同的,所以這個操作序列偽隨機的;


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

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

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

monkey很好,很強大,能用好就是一個好工具。


版權所有,轉載本站文章請注明出處:蝸牛學院在線課堂, http://www.bnwkbz.icu/note/54
上一篇: 實驗:jsp自定義標簽
下一篇: 漫談:linux環境搭建流程
提示:登錄后添加有效評論可享受積分哦!
? 下载重庆时时