Android testing tools

引言

發現一篇關於android 測試的培訓,英文的,很全面。html

Android Testing Training: http://www.vogella.com/training/android/androidtesting.htmlandroid

正文

1.Appium

Appium 是一個開源、跨平臺的自動化測試工具,用於測試原生和輕量移動應用,支持 iOS, Android 和 FirefoxOS 平臺。Appium 驅動蘋果的 UIAutomation 庫和 Android 的 UiAutomator 框架,使用 Selenium 的 WebDriver JSON 協議。Appinm 的 iOS 支持是基於 Dan Cuellar's 的 iOS Auto. Appium 同時綁定了 Selendroid 用於老的 Android 平臺測試。web

優勢:比較熱門,社區活躍。能夠跨APP。支持不少語言編寫腳本,如Java,JS,PHP,Python,C#,Ruby等。不須要從新編譯App。bash

缺點:測試IOS必須使用Mac。框架

2.UIAutomator

uiautomator 測試框架提升用戶界面(UI)的測試效率,經過自動建立功能 UI 測試示例,能夠在一個或者多個設備上運行你的應用。
也是Android提供的自動化測試框架,基本上支持全部的Android事件操做,對比Instrumentation它不須要測試人員瞭解代碼實現細節(能夠用UiAutomatorviewer抓去App頁面上的控件屬性而不看源碼)。dom

優勢:基於Java,測試代碼結構簡單、編寫容易、學習成本,一次編譯,全部設備或模擬器都能運行測試,能跨App(好比:不少App有選擇相冊、打開相機拍照,這就是跨App測試)。工具

缺點:只支持SDK 16(Android 4.1)及以上,不支持Hybird App、WebApp。性能

3.Instrumentation

早期Google提供的Android自動化測試工具類,雖然在那時候JUnit也能夠對Android進行測試,可是Instrumentation容許你對應用程序作更爲複雜的測試,甚至是框架層面的。經過Instrumentation你能夠模擬按鍵按下、擡起、屏幕點擊、滾動等事件。Instrumentation是經過將主程序和測試程序運行在同一個進程來實現這些功能,你能夠把Instrumentation當作一個相似Activity或者Service而且不帶界面的組件,在程序運行期間監控你的主程序。單元測試

缺點:對測試人員來講編寫代碼能力要求較高,須要對Android相關知識有必定了解,還須要配置AndroidManifest.xml文件,不能跨多個App。學習

4.Selendroid

Selendroid 是一個 Android 原生應用的 UI 自動化測試框架。測試使用 Selenium 2 客戶端 API 編寫。Selendroid 能夠在模擬器和實際設備上使用,也能夠集成網格節點做爲縮放和並行測試。

優勢:也是基於Instrumentation的測試框架,能夠測試Native App、Hybird App、Web App。

缺點:網上資料較少,社區活躍度也不大。

5.Monkey

Monkey 是 Google 開發的 UI/應用測試工具,也是命令行工具,主要針對壓力測試。你能夠在任意的模擬器示例或者設備上運行。Monkey 發送一個用戶事件的 pseudo-random 流給系統,做爲你開發應用的壓力測試。

優勢:使用簡單。

缺點:只能產生隨機事件,沒法按照既定的步驟操做。

6.MonkeyRunner

也是Android SDK 提供的測試工具。 嚴格意義上來講MonkeyRunner實際上是一個Api工具包,比Monkey強大,能夠編寫測試腳原本自定義數據、事件。

缺點:腳本用Python來寫,對測試人員來講要求較高,有比較大的學習成本。

7.MonkeyTalk

MonkeyTalk 是世界上最強大的移動應用測試工具。MonkeyTalk 自動爲 iOS 和 Android 應用進行真實的,功能性交互測試。MonkeyTalk 提供簡單的 "smoke tests",複雜數據驅動的測試套件。MonkeyTalk 支持原生,移動和混合應用,真實設備或者模擬器。MonkeyTalk 使得場景捕獲很是容易,能夠記錄高級別,可讀的測試腳本。一樣的命令能夠用在 iOS 和 Android 應用上。你能夠記錄一個平臺的一個測試,而且能夠在另一個平臺回放。MonkeyTalk 支持移動觸摸和基於手勢交互爲主的移動體驗。點擊,拖拽,移動,甚至是手指繪製也能夠被記錄和回放。

優勢:功能強大。

缺點:主要測試安卓應用,不適合咱們的。

8.Robotium

Robotium 是一款國外的Android自動化測試框架,主要針對Android平臺的應用進行黑盒自動化測試,它提供了模擬各類手勢操做(點擊、長 按、滑動等)、查找和斷言機制的API,可以對各類控件進行操做。Robotium結合Android官方提供的測試框架達到對應用程序進行自動化的測 試。另外,Robotium 4.0版本已經支持對WebView的操做。Robotium 對Activity,Dialog,Toast,Menu 都是支持的。

優勢:基於Instrumentation的測試框架,目前國內外用的比較多,資料比較多,社區也比較活躍。

缺點:對測試人員來講要有必定的Java基礎,瞭解Android基本組件。不能跨App。

9.Robolectric

Robolectric 是一款Android單元測試框架,使用 Android SDK jar,因此你可使用測試驅動開發 Android 應用。測試只需幾秒就能夠在工做站的 JVM 運行。Robolectric 處理視圖縮放,資源加載和大量 Android 設備原生的 C 代碼實現。Robolectric 容許你作大部分真實設備上能夠作的事情,能夠在工做站中運行,也能夠在常規的 JVM 持續集成環境運行,不須要經過模擬器。

缺點:語言太接近安卓。

10. Android Test Kit

Android Test Kit 是一組 Google 開源測試工具,用於 Android 平臺,包含 Espresso API 可用於編寫簡潔可靠的 Android UI 測試。

11.AndroidJUnit4

AndroidJUnit4 是一個讓 JUnit 4 能夠直接運行在 Android 設備上的開源命令行工具。

12.Calabash-android

calabash-android 是一個基於 Cucumber 的 Android 的功能自動化測試框架。Calabash 容許你寫和執行,是開源的自動化移動應用測試工具,支持 Android 和 iOS 原生應用。Calabash 的庫容許原生和混合應用的交互測試,交互包括大量的終端用戶活動。Calabash 能夠媲美 Selenium WebDriver。可是, 須要注意的是 web 應用和桌面環境的交互跟觸摸屏應用的交互是不一樣的。Calabash 專爲觸摸屏設備的原生應用提供 APIs。

13.NativeDriver

NativeDriver 是 WebDriver API 的實現,是原生應用 UI 驅動,而不是 web 應用。

14.RoboSpock

RoboSpock 是一個開源的 Android 測試框架。提供簡單的編寫 BDD 行爲驅動開發規範的方法,使用 Groovy 語音,支持 Google Guice 庫。RoboSpock 合併了 Robolectric 和 Spock 的功能。

一些中止維護的 Android 測試工具

一些幾乎沒有繼續維護的開源 Android 測試工具項目(至少是最近幾個月都沒有更新的項目)。

1.Emmagee

Emmagee 是監控指定被測應用在使用過程當中佔用機器的CPU、內存、流量資源的性能測試小工具。Emmagee 同時還提供很是酷的一些特性,好比定製間隔來收集數據,使用浮動窗口呈現實時進程狀態等。

2.Sirocco

Scirocco(scirocco-webdriver) 是開源的應用自動化測試工具,能夠從 Eclipse 訪問必要的測試設備。Scirocco 提供自動化的 Android 應用測試功能,代替手工測試。Scirocco 支持谷歌的 NativeDriver,把 AndroidDriver 做爲主要的測試庫。Scirocco 包括三個部分:NativeDriver,AndroidDriver,scirocco 插件(一個 Eclipse 插件;能夠自動執行 scenario 測試和製做測試報告截圖)。

相關文章
相關標籤/搜索