安卓測試框架-村棍

語言: CN / TW / HK

Appium

Appium是一個開源的移動測試工具,支援iOS和Android,它可以用來測試任何型別的移動應用(原生、網路和混合村棍遊戲)。作為一個跨平臺的工具,你可以在不同的平臺上執行相同的測試。為了實現跨平臺的功能,Appium使用了供應商提供的Android UI框架來實施測試:在iOS中使用XCTest,在Android中使用UIAutomator或Instrumentation。它將這些供應商框架封裝到Selenium WebDriver中,這使得使用Appium的開發者可以編寫各種型別語言的測試:Java、Objective-C、JavaScript、PHP、Ruby、Python等等。這也使得編寫Appium測試與編寫Selenium測試非常相似。

 

WebDriver最初是為web測試建立的,Appium用額外的API方法擴充套件了WebDriver,使得它更適合於移動自動化。

 

以下是一些有用的Appium特性:

 

不需要在裝置上安裝任何東西。

不需要重新編譯或改變應用程式來匹配Appium。

Appium有一個非常大而活躍的社群。

Appium附帶一個掃描和分析應用程式的UI元件的工具——Appium UI Inspector。開發人員也可以使用Android Studio的UI Automator Viewer。

如果你需要為iOS和Android編寫測試,而你是一個Selenium的愛好者的話,Appium將是一個很好的選擇。

 

Calabash

Calabash是由Xamarin公司開發和維護的一款開源的移動測試工具,支援iOS和Android上的原生和混合應用。Calabash測試支援手勢識別(gesture)、斷言(assertions)和螢幕截圖(screenshots)等功能,通常與驅動開發測試工具Cucumber一起整合使用。

 

Xamarin在2017年宣佈,它將對Calabash停止繼續開發。鑑於此決定,你可以將Calabash作為一個不太理想的備選測試解決方案。

 

Espresso

Espresso是谷歌的一個Android UI框架。它是一個輕量級的、針對應用程式開發人員的白盒工具,這意味著要充分利用它,測試開發人員必須充分熟悉並且會使用應用程式程式碼。Espresso的測試非常可靠,並且執行速度很快,由於Espresso可以訪問UI物件的內部,它可以用於測試WebView,即混合應用程式的開發。

 

Espresso的缺點是,它一次只能測試一個應用程式,而且無法訪問裝置資源。然而,通過使用UI Automator建立的聯合測試可以很容易地解決這個問題。

Sauce Labs支援Espresso的真實裝置測試。

 

如果對軟體測試、介面測試、自動化測試、面試經驗交流。感興趣可以加軟體測試交流:1085991341,還會有同行一起技術交流。

 

UI Automator

UI Automator是由谷歌開發和維護的移動測試Android UI框架,它的主要功能包含了跨應用程式的功能測試,即測試多個應用程式和在已安裝與系統應用程式之間的切換的功能。

 

UI Automator是一個黑盒測試工具,也就是說測試開發人員不需要知道內部的應用程式結構,可以完全依賴於可見的UI元素。UI Automator的測試是用Java編寫的,由兩組api組成:其一為UI Automator APIs,是控制應用程式的UI元件;其二為device state APIs,用於訪問和執行裝置上的操作(如改變裝置旋轉,按方向鍵按鈕,按返回,Home或者選單按鈕等)。它還附帶了一個非常有用的UI Automator Viewer,這是一個可以掃描和分析當前配置在裝置上的UI元件的圖形使用者介面工具。

 

UI Automator的缺點是不支援構建在混合Android應用程式之上的WebView,因此,UI Automator只支援原生的Android應用程式。

 

Robotium

Robotium是一個開源的Android UI框架,它誕生於2010年,現在已經是一個非常成熟和穩定的工具。其最近的一個版本是5.6.3,釋出於2016年9月。在最新的幾個版本中,其測試可讀性和測試執行的速度都有了顯著提高。

 

大多數涉及到Robotium的技術部落格、教程和課程都是黑盒測試型別的。但實際上,它算是灰盒測試的,因為編寫Robotium測試需要了解內部應用程式結構。

 

以下是Robotium的部分主要特性:

 

支援本機和混合應用程式。

可以在真實裝置和模擬器上執行測試。

支援完整的Android UI工具:活動、按鈕、選單、toast、對話方塊等。

支援手勢。

有一些裝置控制功能:改變裝置方向,截圖,解鎖螢幕等。

Robotium recorder是一個付費的Android Studio和Eclipse外掛。這是一個很好的工具,可以快速的啟動和執行測試。

可以作為持續整合的一部分執行。

Robotium的選擇語言是Java。

Robotium得到了Sauce Labs的支援,可以用於真實裝置的測試。