Android自動化測試解決方案

如今已經有大量的Android自動化測試架構或工具可供咱們使用,
其中包括:Activity Instrumentation, MonkeyRunner, Robotium, 以及Robolectric。
另外LessPainful也提供服務來進行真實設備上的自動化測試。
Android自身提供了對instrumentation測試的基本支持,其中之一就是位於android.test包內的 ActivityInstrumentationTestCase2類,它擴展了JUnit的TestCase類來提供Android activities的功能測試。在應用測試中,每個activity首先會被Instrumentation初始化,而後再加載到Android模擬器或設備的Dalvik虛擬機中來執行。
Android SDK自帶一個測試工具MonkeyRunner,它提供的API和執行環境能夠運行Python語言編寫的測試代碼。它提供API來鏈接設備,安裝/卸載應用,運行應用,截屏,比對圖片來判斷特定命令執行後的屏幕是否包含預期信息,以及運行對應用的測試。MonkeyRunner使用 ActivityInstrumentationTestCase2, ProviderTestCase,ServiceTestCasek, SingleLaunchActivityTestCase及其餘類來定義測試用例,並使用InstrumentationTestRunner類來運行測試。
Robotium是另外一種經過InstrumentationTestRunner來完成Android交互式測試的架構,它橫跨多個 activities,支持功能測試,系統測試和接收測試。Robotium支持Activities、Dialogs、Toasts、Menus、 Context Menus甚至Honeycomb,而且它能夠同Maven和Ant集成來完成持續集成測試。Robotium被稱之爲針對Android應用的又一個 Selenium。
Robolectric另闢蹊徑,它並不依賴於Android提供的測試功能,它使用了shadow objects而且運行測試於普通的工做站/服務器JVM,不像模擬器或設備須要dexing(Android dex編譯器將類文件編譯成Android設備上的Dalvik VM使用的格式),打包,部署和運行的過程,大大減小了測試執行的時間。Pivotal實驗室聲稱使用Robolectric能夠在28秒內運行1047 個測試。
LessPainful將Android測試又推動了一步,它提供了一個多設備平臺自動化測試的服務。用戶上傳應用(*.apk)和用Cucumber(一種業務相關的DSL)編寫的測試文件,選擇測試運行須要的設備配置,最後測試將自動執行並生成測試報告。它支持的設備包括 Garmin Asus,幾款HTC,LG,Samsung Galaxy,Sony Xperia和Motorola Motodefy。
相關文章
相關標籤/搜索