標籤:
今天我進行了安卓測試載入器Monkey的學習。
Monkey的特性包括:(1)測試的對象僅為應用程式套件組合(apk包),有一定的局限性;(2)Monkey測試使用的事件流資料流是隨機的,不能進行自訂;(3)可對Monkey測試的對象、事件數目量、類型、頻率等進行設定。
Monkey是一個命令列工具,包含大量的操作,可以分為四類:(1)基本的配置操作,例如設定測試的事件數目;(2)操作約束,例如限制在一個單一的包中測試;(3)事件類型和頻率;(4)調試操作。
當Monkey運行時會建置事件序列並發送給系統,它也會觀察待測系統並尋找三種特殊對待的條件:(1)如果使用者約束Monkey在一個或多個特定的包中運行,它會觀察瀏覽到其它包中的嘗試操作,並阻止這些操作;(2)如果應用程式崩潰或收到任何種類無法處理的異常,Monkey將會停止運行並報告錯誤;(3)如果應用程式產生了一個無法響應的錯誤,Monkey將會停止運行並報告錯誤。
Monkey是Android平台內建的一個工具,因此在安裝了Android SDK的機器上直接用命令啟動即可。
執行Monkey的基本命令是:
$ adb shell [options]
將待測apk檔案複製到Android SDK對應platform-tools目錄下,3-1:
圖 3-1 Monkey測試的應用程式的位置
用資料線將Android裝置與電腦串連,檢測Android裝置是否成功串連的命令為adb devices,串連成功3-2;執行命令將應用程式安裝至Android裝置,3-2。
圖 3-2 檢測行動裝置(手機)與電腦是否串連成功
執行命令:
$ adb shell monkey -p com.smorgasbork.hotdeath -v 1000 --throttle 2000 -s 798
對HotDeath進行測試,結果 3-3、圖 3-4。從圖 3-3可以看出Monkey產生事 件的11種類型及所佔總事件數目的百分比,如序號0表示觸摸事件,1表示動作事件, 2表示軌跡事件,3表示導航事件,4表示“主要”導航事件,5表示系統按鍵事件 等。圖 3-4中可以看出運行中Monkey產生的事件操作。
圖 3-3 Monkey建置事件的類別
圖 3-4 Monkey測試過程中產生的事件操作
該資料參考於:Android應用測試載入器的覆蓋率分析與比較——黃曉偉
小學期軟體工程Team 專案進度4