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

來源:互聯網
上載者:User

標籤:

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

 

 

 

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 (白盒測試,功能測試)

Android 測試 Appium、Robotium、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.