當前位置:編程學習大全網 - 編程語言 - Android 手機自動化測試工具有哪幾種

Android 手機自動化測試工具有哪幾種

Feb 23 2012更新: 還有Sikuli (/truebit/AndroidWebDriver4Python 有問題大家可以提到上面

基於Instrumentation的:已經在Android SDK r14裏面可以安裝了

不開源的就多了,不過我見過的壹般是以下幾種思路:

1. 基於Android Java Instrumentation框架:

基於Robotium,比如bitbar的產品:/products

基於Instrumentation,那就海了去了,很多公司自家寫的工具都基於這個;另外Robotium就是基於這個的

2. 基於Android lib層的各種命令,比如sendevent,getevent, monkey, service這些,然後用各種語言封裝

MonkeyRunner還是很有前景的,Google自己弄的。現在最新的dev版本已經有支持UI的id操作的EasyMonkey了。可以git clone git:///v_show/id_XNjQzMjI4NDcy.html?firsttime=2212

2,appium源碼解析

乙醇的appium源碼解讀

/v_show/id_XNjQzODIwMzA4.html?firsttime=0

發布於 2013-12-07 5 條評論 ? 作者保留權利

贊同25反對,不會顯示妳的姓名

知乎用戶,Coding/Reading/Hiking/Running

知乎用戶、曹媛媛、石存灃 等人贊同

1、Monkey是Android SDK自帶的測試工具,在測試過程中會向系統發送偽隨機的用戶事件流,如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試,也有日誌輸出。實際上該工具只能做程序做壹些壓力測試,由於測試事件和數據都是隨機的,不能自定義,所以有很大的局限性。

2、MonkeyRunner也是Android SDK提供的測試工具。嚴格意義上來說MonkeyRunner其實是壹個Api工具包,比Monkey強大,可以編寫測試腳本來自定義數據、事件。缺點是腳本用Python來寫,對測試人員來說要求較高,有比較大的學習成本。

3、Instrumentation是早期Google提供的Android自動化測試工具類,雖然在那時候JUnit也可以對Android進行測試,但是Instrumentation允許妳對應用程序做更為復雜的測試,甚至是框架層面的。通過Instrumentation妳可以模擬按鍵按下、擡起、屏幕點擊、滾動等事件。Instrumentation是通過將主程序和測試程序運行在同壹個進程來實現這些功能,妳可以把Instrumentation看成壹個類似Activity或者Service並且不帶界面的組件,在程序運行期間監控妳的主程序。缺點是對測試人員來說編寫代碼能力要求較高,需要對Android相關知識有壹定了解,還需要配置AndroidManifest.xml文件,不能跨多個App。

4、UiAutomator也是Android提供的自動化測試框架,基本上支持所有的Android事件操作,對比Instrumentation它不需要測試人員了解代碼實現細節(可以用UiAutomatorviewer抓去App頁面上的控件屬性而不看源碼)。基於Java,測試代碼結構簡單、編寫容易、學習成本,壹次編譯,所有設備或模擬器都能運行測試,能跨App(比如:很多App有選擇相冊、打開相機拍照,這就是跨App測試)。缺點是只支持SDK 16(Android 4.1)及以上,不支持Hybird App、WebApp。

5、Espresso是Google的開源自動化測試框架。相對於Robotium和UIAutomator,它的特點是規模更小、更簡潔,API更加精確,編寫測試代碼簡單,容易快速上手。因為是基於Instrumentation的,所以不能跨App。配合Android Studio來編寫測試的簡單例子

6、Selendroid:也是基於Instrumentation的測試框架,可以測試Native App、Hybird App、Web App,但是網上資料較少,社區活躍度也不大。

7、Robotium也是基於Instrumentation的測試框架,目前國內外用的比較多,資料比較多,社區也比較活躍。缺點是對測試人員來說要有壹定的Java基礎,了解Android基本組件,不能跨App。

8、Athrun是淘寶出的壹個移動測試框架/平臺,同時支持iOS和Android。Android部分也是基於Instrumentation,在Android原有的ActivityInstrumentationTestCase2類基礎上進行了擴展,提供壹整套面向對象的API。這裏有詳細介紹。

9、Appium是最近比較熱門的框架,社區也很活躍。這個框架應該是是功能最強大的,

它的優點:

它的哲理是:

它的設計理念:

相關限制:

總結:

在iOS部分是封裝了UIAutomation;Android 4.2以上是用UiAutomator,Android 2.3 ~ 4.1用的是 Instrumentation,也就說Appium同時封裝了UiAutomator和Instrumentation。所以Appium擁有了以上幾大框架的所有優點:跨App,支持Native App、Hybird App、Web App,還支持N種語言來編寫妳的測試腳本。

如果妳在Windows使用Appium,妳沒法使用預編譯專用於OS X的.app文件,因為Appium依賴OS X專用的庫來支持iOS測試,所以在Windows平臺妳不能測試iOS Apps。這意味著妳只能通過在Mac上來運行iOS測試。

Client/Server架構,運行的時候Server端會監聽Client端發過來的命令,翻譯這些命令發送給移動設備或模擬器,然後移動設備或模擬器做出響應的反應。正是因為這種架構,所以Client可以使用Appium client libraries多種語言的測試腳本,而且Server端完全可以部署在服務器上,甚至雲服務器。

Session,每個Client連接到Server以後都會有壹個Session ID,而且Client發送命令到Server端都需要這個Session ID,因為這個seesion id代表了妳所打開的瀏覽器或者是移動設備的模擬器。所以妳甚至可以打開N個Session,同時測試不同的設備或模擬器。

Desired Capabilities,其實就是壹個鍵值對,設置壹些測試的相關信息來告訴Server端,我們需要測試iOS、還是Android,或者換是WebApp等信息。

Appium Server是Node.js寫的,所以可以直接用NPM來進行安裝。

Appium Clients,Mac OS和Win下提供GUI,不需要裝Node.js,方便測試人員操作。

用Appium自動化測試不需要重新編譯App;

支持很多語言來編寫測試腳本,Java、Javascript、PHP、Python、C#、Ruby等主流語言;

不需要為了自動化測試來重造輪子,因為擴展了WebDriver。(WebDriver是測試WebApps的壹種簡單、快速的自動化測試框架,所以有Web自動化測試經驗的測試人員可以直接上手);

移動端自動化測試應該是開源的;

開源;

支持Native App、Hybird App、Web App;

支持Android、iOS、Firefox OS;

Server也是跨平臺的,妳可以使用Mac OS X、Windows或者Linux;

顯示全部

編輯於 2015-03-20 1 條評論 ? 作者保留權利

贊同4反對,不會顯示妳的姓名

知乎用戶,hello rabbit

郝思遠、man Nor、徐佳琦 等人贊同

當前有很大的趨勢是轉向移動應用平臺,Android 是最廣泛使用的移動操作系統,2014 年大約占 80% 以上的市場。在開發 Android 應用的時候要進行測試,現在市場上有大量的測試工具。

本文提到的開源 Android 軟件測試工具包括:Android Test Kit, AndroidJUnit4, Appium, calabash-android, Monkey, MonkeyTalk, NativeDriver, Robolectric, RoboSpock, Robotium, UIAutomator, Selendroid。

Android Test Kit

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

OSChina URL: Android Test Kit首頁、文檔和下載

相關資源

* Android application testing with the Android test framework – Tutorial

* Espresso for Android is here!

AndroidJUnit4

AndroidJUnit4 是壹個讓 JUnit 4 可以直接運行在 Android 設備上的開源命令行工具。

OSChina URL: AndroidJUnit4首頁、文檔和下載

Appium

Appium 是壹個開源、跨平臺的自動化測試工具,用於測試原生和輕量移動應用,支持 iOS, Android 和 FirefoxOS 平臺。Appium 驅動蘋果的 UIAutomation 庫和 Android 的 UiAutomator 框架,使用 Selenium 的 WebDriver JSON 協議。

Appinm 的 iOS 支持是基於 Dan Cuellar's 的 iOS Auto. Appium 同時綁定了 Selendroid 用於老的 Android 平臺測試。

OSChina URL: Appium首頁、文檔和下載

相關資源

* Appium Tutorial

* Android UI testing with Appium

Calabash-android

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

OSChina URL: calabash-android首頁、文檔和下載

相關資源

* A better way to test Android applications using Calabash

* Calabash Android: query language basics

Monkey

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

OSChina URL: UI/Application Exerciser Monkey

MonkeyTalk

MonkeyTalk 是世界上最強大的移動應用測試工具。MonkeyTalk 自動為 iOS 和 Android 應用進行真實的,功能性交互測試。MonkeyTalk 提供簡單的 "smoke tests",復雜數據驅動的測試套件。

MonkeyTalk 支持原生,移動和混合應用,真實設備或者模擬器。MonkeyTalk 使得場景捕獲非常容易,可以記錄高級別,可讀的測試腳本。同樣的命令可以用在 iOS 和 Android 應用上。妳可以記錄壹個平臺的壹個測試,並且可以在另外壹個平臺回放。MonkeyTalk 支持移動觸摸和基於手勢交互為主的移動體驗。點擊,拖拽,移動,甚至是手指繪制也可以被記錄和回放。

OSChina URL: MonkeyTalk首頁、文檔和下載

相關資源

* Using MonkeyTalk in AndroidStudio

NativeDriver

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

OSChina URL: NativeDriver首頁、文檔和下載

Robolectric

Robolectric 是壹款Android單元測試框架,使用 Android SDK jar,所以妳可以使用測試驅動開發 Android 應用。測試只需幾秒就可以在工作站的 JVM 運行。Robolectric 處理視圖縮放,資源加載和大量 Android 設備原生的 C 代碼實現。

Robolectric 允許妳做大部分真實設備上可以做的事情,可以在工作站中運行,也可以在常規的 JVM 持續集成環境運行,不需要通過模擬器。

OSChina URL: Robolectric首頁、文檔和下載

Additional resources

* Better Android Testing with Robolectric 2.0

Using Robolectric for Android testing – Tutorial

RoboSpock

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

OSChina URL: RoboSpock首頁、文檔和下載

相關資源

* RoboSpock – Behavior Driven Development (BDD) for Android

Robotium

Robotium 是壹款國外的Android自動化測試框架,主要針對Android平臺的應用進行黑盒自動化測試,它提供了模擬各種手勢操作(點擊、長 按、滑動等)、查找和斷言機制的API,能夠對各種控件進行操作。

Robotium結合Android官方提供的測試框架達到對應用程序進行自動化的測 試。另外,Robotium 4.0版本已經支持對WebView的操作。Robotium 對Activity,Dialog,Toast,Menu 都是支持的。

OSChina URL: Robotium首頁、文檔和下載

相關資源

* Robotium – Testing Android User Interface

* Android user interface testing with Robotium – Tutorial

UIAutomator

uiautomator 測試框架提高用戶界面(UI)的測試效率,通過自動創建功能 UI 測試示例,可以在壹個或者多個設備上運行妳的應用。

OSChina URL: uiautomator首頁、文檔和下載

相關資源

* Automatic Android Testing with UiAutomator

Selendroid

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

OSChina URL: Selendroid首頁、文檔和下載

相關資源

* Mobile Test Automation with Selendroid

* Road to setup Selendroid and create first test script of android application

* Up and running with: Selendroid

壹些停止維護的 Android 測試工具

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

Emmagee

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

OSChina URL: Emmagee首頁、文檔和下載

Sirocco

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

OSChina URL: Scirocco首頁、文檔和下載

via softwaretestingmagazine

  • 上一篇:python最近很火,參加Python培訓需要什麽條件?
  • 下一篇:提高幸福感的學生黨必備APP。
  • copyright 2024編程學習大全網