標籤:
本周開始啟動手機IMEsimeiji的自動化測試,同時開始接觸手機瀏覽器自動化測試。接下來會對android自動化測試載入器和方法做一個專題研究。
第一篇介紹monkey測試載入器。
1 自動化測試背景
軟體測試是軟體產品開發過程中的重要環節。測試對於發現軟體中缺陷,保障軟體的品質具有重要意義。統計表明,軟體測試的時間通常佔到軟體開發時間的 40%,一些可靠性要求高的軟體甚至高達 60%以上。
手工測試和自動化測試是軟體測試的兩種基本手段,二者相互補充,不可相互替代。其中,自動化測試能捕捉到資源衝突、多線程、死結等手工測試難以發現的錯誤,可以高效的完成大量機械性、重複性測試,能類比大量資料或大量並發使用者等應用情境,從而有效縮短軟體測試周期,提高測試的可靠性及準確度。
2 什麼是 Monkey
Monkey 測試是 Android 自動化測試的手段之一,它通過類比使用者的按鍵輸入、觸控螢幕輸入等,測試裝置多長時間出現異常。Monkey 是一個命令列工具,可以運行在模擬器或實際裝置中,通過向系統發送偽隨機的使用者事件流,實現對全系統或某個應用程式進行壓力測試。
Monkey 工具使用非常簡單,直接在命令視窗鍵入 monkey 命令即可進行測試。Monkey 命令有較多的配置選項,為便於理解這些命令,此處先將其命令選項簡單劃分為四大類,在後文中陸續介紹各種命令選項的使用,然後在附錄中附上整個 monkey 命令選項便於查閱。
Monkey 命令可簡單分為如下四類:
- 基本配置選項,如設定嘗試的事件數目量
- 運行約束選項,如設定只對單獨的一個包進行測試
- 事件類型和頻率,如設定觸控螢幕事件的發生頻率
- 調試選項,如設定忽略應用程式異常,繼續向系統發送事件,直到計數完成
3 使用 monkey 進行自動化測試
Monkey 命令工具可以在模擬器和實際裝置上使用。這裡分別對兩種環境下的 monkey 測試進行介紹。
3.1 在模擬器上運用 Monkey 進行自動化測試
3.1.1 monkey 命令最簡單用法
首先,介紹最簡單 monkey 命令用法,其使用格式為如下:
monkey n
其中,n 為一個整數,表示用於測試的偽隨機事件發生的次數。
3.1 所示,啟動模擬器。然後,在命令列視窗下輸入 adb shell 命令, 3.2 所示。
登入 shell 之後,即可使用 monkey 命令。最簡單的用法是,直接在其後面指定一個數字,表
示向系統發送事件的數量, 3.3 所示。模擬器的測試的結果 3.4 所示。
3.1.2 指定測試的約束選項
所謂測試約束選項,即根據具體的測試需求,通過參數指定對系統的某些包或類進行測試。主要包括兩類約束:包和類。
(1) 指定測試的包
如果需要對某一個具體的應用進行測試,可指定具體的包名。可以在系統目錄/data/data
下尋找對應的包名, 3.5 所示。
尋找到對應的包名後,使用 monkey 時可用“-p”參數進行指定,此外還可以使用“-v”
參數指定測試中反饋的資訊。常用格式如下:
monkey –p com.android.gallery –v 50
3.6 和 3.7 分別為命令輸入及測試過程的。
注意:每個“-p”只能指定一個包,若需指定對多個包進行測試,則要用多個“-p”參數進行指定。
(2) 指定測試的類
若需對某個具體類進行測試,可以使用“-c”參數指定,若需指定多個類別,則要用多個“-c”參數選項分別指定,每個“-c”只能指定一個類別。 3.1 所示,其使用的命令格式
為:
Monkey –c android.intent.category.LAUNCHER -v 50
圖 3.8 及圖 3.9 分別為指定類測試命令輸入及測試過程的。
3.1.3 指定測試的事件類型和頻率 Monkey 命令提供了眾多選項用於指定事件的類型和發生頻率, 例如觸摸事件、 導航事件、軌跡事件(由一個或多個隨機的移動組成,有時還伴隨有點擊)。有時為了測試某個具體應用,需要通過“事件”的反覆發生來進行專項的功能測試,此時即可通過 monkey 的“—pct”選項來進行指定具體事件及其發生的頻率。命令使用格式如下樣本: Monkey --pct-syskeys 90 200 以上命令表示系統按鍵事件的發生率為 90%,共測試 200 次, 3.10 及圖 3.11 所示。 注意: “pct”前面是英文輸入狀態下兩杠“——” 。
還可以分別指定兩個事件的發生頻率,命令使用方式如下所示:
Monkey --pct-touch 50 --pct-trackball 40 200 以上命令表示觸摸事件和軌跡事件發生機率分別為 50%和 40%,共測試 200 次, 3.12 和圖 3.13 所示。
通過“--throttle”指定事件間的間隔,可以延緩事件的發生,如 3.14 所示為指定導航事件發生機率為 80%, 每次事件相隔 1 秒中發生, 共測試 200 次。 測試的如 3.15 所示。
3.1.4 指定測試的調試選項 Monkey 命令提供了若干用於控制測試過程的調試選項。例如參數“--ignore-crashes” ,將忽略應用程式崩潰或發生的任何異常,繼續向系統發送事件,直到計數完成。使用命令格式如下: monkey --ignore-crashes -v 5000 圖 3.16 及圖 3.17 分別顯示了指定調試選項的測試及其測試過程的。
3.2 在開發板上運用 Monkey 進行自動化測試 上一節中主要介紹了用 monkey 命令工具在模擬器上進行測試, 列舉了若干基本的命令使用樣本。在實際的裝置中,也可以方便的運用 monkey 工具進行應用程式的測試。 要在實際裝置上進行 monkey 測試,首先需要啟動 Android 系統,然後讓裝置通過串口與pc 相連,在 pc 上通過 SecureCRT 登入到 Android 系統的根目錄下。此時,即可運用上一節介紹的各種命令對裝置進行自動化測試。 注意, 登入到 Android 系統的根目錄後, 若找不到 monkey 命令, 應先運行 system/bin/sh,切換 bash 環境。 |
|
| |
| |
回複 舉報 |
| |
|
| |
4 附錄 4.1 monkey 工具的命令選項 usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...] [-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...] [--ignore-crashes] [--ignore-timeouts] [--ignore-security-exceptions] [--monitor-native-crashes] [--ignore-native-crashes] [--kill-process-after-error] [--hprof] [--pct-touch PERCENT] [--pct-motion PERCENT] [--pct-trackball PERCENT] [--pct-syskeys PERCENT] [--pct-nav PERCENT] [--pct-majornav PERCENT] [--pct-appswitch PERCENT] [--pct-flip PERCENT] [--pct-anyevent PERCENT] [--pkg-blacklist-file PACKAGE_BLACKLIST_FILE] [--pkg-whitelist-file PACKAGE_WHITELIST_FILE] [--wait-dbg] [--dbg-no-events] [--setup scriptfile] [-f scriptfile [-f scriptfile] ...] [--port port] [-s SEED] [-v [-v] ...] [--throttle MILLISEC] [--randomize-throttle] [--profile-wait MILLISEC] [--device-sleep-time MILLISEC] [--randomize-script] [--script-log] [--bugreport] COUNT
4.2 monkey 命令選項介紹 <ignore_js_op>
<ignore_js_op> |
|
Android自動化測試基礎知識——MONKEY測試載入器(轉的)