Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 測試 Appium、Robotium、monkey等框架或者工具對比

Android 測試 Appium、Robotium、monkey等框架或者工具對比

編輯:關於Android編程

1. Appium測試 (功能測試,用戶接受度測試,黑盒測試) - Rating: 8

 

Appium測試相當於黑盒測試。只是測試UI邏輯正確性。所以Appium測試框架提供的方法有限。獲取一個AppiumDriver對象。該對象只是有很多findElements()的方法,獲取到UI元素。UI元素是WebElement,這個類提供的方法基本是獲取信息為主,比如獲取name,class,tagName,location,text,isSlected,isTouched等信息。還有一個點擊事件產生函數click()。遺憾的是沒有longClick()事件。整個測試框架只有這2個比較有用的對象可以操作。所以整體上看,這個這個測試框架,只是測試UI邏輯的正確性,不能升入測試業務邏輯流程。也沒有辦法去檢測。

Pros:

  • Open Source
  • 可以使用不同語言來編寫測試代碼
  • 可以測試不同平台程序:Android/iOS/Web/Hybrid
  • 社區較活躍

    2. Robotium測試 (功能測試,用戶接受度測試,黑盒+白盒測試) - Rating: 8

    Website:https://code.google.com/p/robotium/

    Pros:

    • Quite popular for android testing
    • 可以對源碼測試,也可以測試apk
    • 可以測試Android Native和Android Hybrid App
    • 可以測試網絡鏈接和聲音等
    • Open Source
    • 社區較活躍,資料比較好找

      3. AndroidTest (單元測試,邏輯測試,白盒測試)

      這個在https://developer.android.com/tools/testing/index.html SDK中有詳細描述。能夠針對Android各種組件進行測試,包含ActivityTest,ServiceTest,ContentProviderTest。能夠獲取每一個組件的 資源,並且注入代碼進行測試。

      1) Activity Testing 主要是測試Activity的,主要測試的方向是以下三個方向:

      • 對於Activity的生命周期的控制。
      • Dependency injection: Instrumentation allows you to create mock system objects such as Contexts or Applications and use them to run the activity under test. This helps you control the test environment and isolate it from production systems. You can also set up customized Intents and start an activity with them.(翻譯不太好,大概就說依靠注入去產生模擬對象然後模擬系統環境。)
      • 控制UI的控件元素,然後產生觸控事件。這個功能類似Appium描述的。

        2) Service Testing 測試的是Service生命周期是否正常

        3) Content Povider Testiing 因為provider是一個數據出入口,所以測試的是數據能否正常被讀取出來,能否正常寫入。測試這個provider提供的URI是否全部正常。測試一些非法的URI是否能夠被攔截等。 總的來說Android自帶的是單元測試。適合白盒測試。Android 自帶的Test的話能夠獲取的UI界面或者什麼的更多的信息,提供的測試方式也更多。

        4. Monkey (壓力測試)

        這個是Android提供的系統工具。它向系統發送偽隨機的用戶事件流(如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試。Monkey測試是一種為了測試軟件的穩定性、健壯性的快速有效的方法。

        • 測試的對象僅為應用程序包,有一定的局限性。
        • Monky測試使用的事件流數據流是隨機的,不能進行自定義。
        • 可對MonkeyTest的對象,事件數量,類型,頻率等進行設置。

          在SDK 有詳細描述http://developer.android.com/tools/help/monkey.html。在SDK中有測試的詳細參數描述。這個只是個測試工具不涉及編碼

          5. monkeyRuner (功能測試,用戶接受度測試,黑盒測試) - Rating:5

          SDK:http://developer.android.com/tools/help/monkeyrunner_concepts.html 這個是用python編碼實現的測試。主要有3個類MonkeyDevice、MonkeyImage、MonkeyRuner。最主要是通過運行程序,在程序中提供按鍵或觸摸事件的輸入數值然後截屏,通過截屏對比是否是正常的運行。事件API: press (string name, dictionary type) touch (integer x, integer y, integer type) drag (tuple start, tuple end, float duration, integer steps) startActivity (string uri, string action, string data, string mimetype, iterable categories dictionary extras, component component, flags) 等事件,詳細請參考API。

          6. UIAutomator - 官方 (黑盒測試,功能測試) - Rating: 7

          SDK:http://developer.android.com/tools/testing/testing_ui.html

          Pro:

          • 可以測試需要在不同app之間切換的情況
          • 官方支持

            Cons:

            • 只能測試Android native app
            • 需要Android SDK 4.1+
            • 無法獲取當前load的activity
            • 無法做網絡鏈接測試和聲音測試
            • debug過程比較麻煩

              主要功能跟APPIUM類似,主要類UIDevice,UiObjec,UiSelector,UiCollection。UIdevice更Appium的AppiumDriver類比。剩下的更WebElement類比只是劃分得更詳細。功能上也更Appium類似。通過text,className等信息找到UI控件然後進行操作。

              7. MonkeyTalk (白盒測試,功能測試)

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved