Android自動化測試框架彙總

 Android幾種經常使用自動化測試框架對比(圖源博客園)java

1、Monkey

Monkey是Android SDK自帶的測試工具,在測試過程當中會向系統發送僞隨機的用戶事件流,如按鍵輸入、觸摸屏輸入、手勢輸入等),實現對正在開發的應用程序進行壓力測試,也有日誌輸出。實際上該工具只能作程序作一些壓力測試,因爲測試事件和數據都是隨機的,不能自定義,因此有很大的侷限性。(用於Monkey穩定性測試及內存泄漏測試)python

2、MonkeyRunner

  是Android SDK提供的測試工具。嚴格意義上來講MonkeyRunner實際上是一個Api工具包,比Monkey強大,能夠編寫測試腳原本自定義數據、事件。缺點是腳本用Python來寫,對測試人員來講要求較高,有比較大的學習成本;使用By id/name/text方法操控(hierarchyviewer),執行速度太慢。典型應用:安裝,卸載,啓動Activity,點擊X,Y座標,發送按鍵事件,drag,截屏等。linux

3、UIAutomator

  是Android提供的自動化測試框架,基本上支持全部的Android事件操做。是用來作UI測試的,也就是普通的手工測試,點擊每一個控件元素看看輸出的結果是否符合預期。對比Instrumentation它不須要測試人員瞭解代碼實現細節(能夠用UiAutomatorviewer抓去App頁面上的控件屬性而不看源碼)。android

4、Robotium  

  是基於Instrumentation的測試框架,主要針對android平臺的應用進行黑盒自動化測試,它提供了模擬各類手勢操做(點擊,長按,滑動等)、查找和斷言機制的API,可以對各類控件進行操做。Robotium結合android官方提供的測試框架達到對應用程序進行自動化測試。windows

錄製工具Radar(不穩定)、Testin(不提供源碼)、官網工具(收費)
開發環境:腳本語言java;Eclipse中引入:robotium-solo-**.jarruby

5、Appium

  是開源的移動端自動化測試框架;支持Native App、Hybird App、Web App;支持Android、iOS、Firefox OS;是跨平臺的能夠在mac,windows以及linux系統上。用Appium自動化測試不須要從新編譯App;腳本語言:Java、python、ruby、C#、Objective C、PHP等主流語言。框架

Appium擴展自Selenium,擴展了WebDriver以便更適用於移動設備。具備Web自動化測試經驗的同窗可直接上手,不須要爲了自動化測試來重造輪子。工具

總結:Android 4.2以上是用UiAutomator,Android 2.3 ~ 4.1用的是Instrumentation,Appium在IOS上是Uiautomation。因此Appium擁有了以上幾大框架的全部優勢:跨App,支持Native App、Hybird App、Web App,還支持N種語言來編寫你的測試腳本。學習

6、Instrumentation

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

7、Espresso

  是Google的開源自動化測試框架。相對於Robotium和UIAutomator,它的特色是規模更小、更簡潔,API更加精確,編寫測試代碼簡單,容易快速上手。由於是基於Instrumentation的,因此不能跨App。

 8、Selendroid

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

 

------ 做者:maetelibom 來源:CSDN 原文:https://blog.csdn.net/maetelibom/article/details/51557941

相關文章
相關標籤/搜索