Android自動化測試基礎知識——MONKEY測試載入器(轉的)

來源:互聯網
上載者:User

標籤:

本周開始啟動手機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測試載入器(轉的)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.