Android常用9種自動化測試框架對比,Appium有哪些優勢?
隨著移動終端的普及,手機應用越來越多,也越來越重要。 App的迴歸測試用例數量也越來越多,全量回歸也越來越消耗時間。
移動 APP自動化測試 的難點
移動 APP的UI自動化測試長久以來一直是一個難點,難點在於UI的”變”, 變化導致自動化用例的大量維護。 從分層測試的角度 ,自動化測試應該逐層進行。最大量實現自動化測試的應該是單元測試,最容易實現也最容易在早期發現問題;其次是 介面級測試 ,以驗證邏輯為目的進行自動化,由於介面的相對穩定,自動化測試成本相對也可以接受;自動化成本最大的便是 UI級自動化測試 ,然而 UI介面是直接反饋給使用者的效果展示,適度的尤其是BVT級的自動化測試也是非常必要的。
為了擺脫這些,需要引進一些自動化測試來協助我們。趁 現在 有空 我來 總結下, Android常用的幾種自動化測試框架 的異同, 使測試人員在選擇自動化框架時有所參考!
Android 幾種常用 自動化測試框架 對比
1、Monkey是Android SDK自帶的測試工具,在測試過程中會向系統傳送偽隨機的使用者事件流,如按鍵輸入、觸控式螢幕輸入、手勢輸入等),實現對正在開發的應用程式進行壓力測試,也有日誌輸出。實際上該工具只能做程式做一些壓力測試,由於測試事件和資料都是隨機的,不能自定義,所以有很大的侷限性。
2、MonkeyRunner也是android SDK提供的測試工具。嚴格意義上來說MonkeyRunner其實是一個Api工具包,比Monkey強大,可以編寫測試指令碼來自定義資料、事件。缺點是指令碼用Python來寫,對測試人員來說要求較高,有比較大的學習成本。
3 、 Robotium也是基於Instrumentation的測試框架,主要針對某一個APK進行自動化測試,APK可以有原始碼,也可以沒有原始碼,功能強大;缺點是對測試人員來說要有一定的Java基礎,瞭解Android基本元件,不能跨App。
4 、 Instrumentation是早期Google提供的Android自動化測試工具類,雖然在那時候JUnit也可以對Android進行測試,但是Instrumentation允許你對應用程式做更為複雜的測試,甚至是框架層面的 , 是很多其它測試框架的基礎,可以在同程式中載入被測元件。它有很多豐富的高層封裝,使用者可以使用基於 instrumentation的其他框架,避免過多二次開發量。但Instrumentation不支援跨應用,導致基於instrumentation的框架都繼承了這個缺點。
5 、 UIAutomator是由谷歌提供的測試框架,它提供了原生Android app和遊戲的高階UI測試 。 基本上支援所有的 Android事件操作, 與 Instrumentation 對比, 它不需要測試人員瞭解程式碼實現細節(可以用 UiAutomatorviewer抓去App頁面上的控制元件屬性而不看原始碼)。
基於 Java,測試程式碼結構簡單、編寫容易、學習成本,一次編譯,所有裝置或模擬器都能執行測試,能跨App(比如:很多App有選擇相簿、開啟相機拍照,這就是跨App測試)。
缺點是隻支援 SDK 16(Android 4.1)及以上,不支援Hybird App、WebApp。
6 、 Espresso是Google的開源自動化測試框架。相對於Robotium和UIAutomator,它的特點是規模更小、更簡潔、API更加精確、編寫測試程式碼簡單、容易快速上手。因為是基於Instrumentation的,所以不能跨App。
7 、 Selendroid:是一個基於Instrumentation的一個框架. 完全相容Webdriver協議。 Selendroid 可以在模擬器和實際裝置上使用,也可以整合網格節點作為縮放和並行測試。
8、Athrun是淘寶出的一個移動測試框架/平臺,同時支援iOS和Android。Android部分也是基於Instrumentation,在Android原有的ActivityInstrumentationTestCase2類基礎上進行了擴充套件,提供一整套物件導向的API。
9、Appium是一個開源的、跨平臺的自動化測試工具,這個框架應該是功能最強大的 ,下面我將詳細介紹。
Appium 的優缺點
它的優點:
①開源;
②支援Native App、Hybird App、Web App;
③支援Android、ios、Firefox OS;
④Server也是跨平臺的,你可以使用Mac OS X、Windows或者Linux;
它的哲理是:
用 Appium自動化測試不需要重新編譯App;
支援很多語言來編寫測試指令碼, Java、JavaScript、PHP、python、C#、Ruby等主流語言;
不需要為了自動化測試來重造輪子,因為擴充套件了 WebDriver。(WebDriver是測試WebApps的一種簡單、快速的自動化測試框架,所以有Web自動化測試經驗的測試人員可以直接上手);
移動端自動化測試應該是開源的;
總結:
在 iOS部分是封裝了UIAutomation;Android 4.2以上是用UiAutomator,Android 2.3 ~ 4.1用的是 Instrumentation,也就說Appium同時封裝了UiAutomator和Instrumentation。 綜合對比可以清晰地發現, Appium擁有了以上幾大框架的所有優點:跨App,支援Native App、Hybird App、Web App,還支援N種語言來編寫你的測試指令碼。
關注 51Testing軟體測試網,提升it技能,從不會到熟練只差一步。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2168768/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 軟體自動化測試有什麼優勢?自動化測試框架有哪些?框架
- 四種常用的自動化測試框架框架
- 移動端 UI 自動化測試框架對比UI框架
- 自動化測試框架比較框架
- Appium自動化(15) - 針對 webview 進行自動化測試APPWebView
- Appium自動化測試之常用的adb命令APP
- 常用網路介面自動化測試框架框架
- 『與善仁』Appium基礎 — 8、Appium自動化測試框架介紹APP框架
- 常見的自動化測試框架有哪些?框架
- [android]android自動化測試十三之monkeyRunner自動化框架Android框架
- 自動化測試框架框架
- 軟體測試框架——自動化測試框架框架
- android 5個自動化測試Ui框架AndroidUI框架
- [android]am自動化測試框架(原創)Android框架
- 女生學軟體測試有哪些優勢
- 學軟體測試的優勢有哪些
- web自動化測試(2):選擇selenium優勢?與PhantomJS/QTP/Monkey對比WebJSQT
- 解放雙手——移動端UI自動化測試框架對比,總有一款適合你!UI框架
- 自動化測試框架思路框架
- 自動化測試框架指南框架
- 2023年好用的自動化測試框架有哪些?如何提高自動化測試效果?框架
- 3分鐘瞭解Appium:使用appium做Android手機自動化測試!APPAndroid
- Android自動測試化之道1:Appium開發環境配置AndroidAPP開發環境
- 自己動手寫Web自動化測試框架(6):自動化測試框架的規劃Web框架
- appium uiautomator 移動端自動化測試工具APPUI
- Junit測試Android自動化測試Android
- 請教:有什麼常用的 java_selenium 的自動化測試框架Java框架
- 一種基於 cypress 的 UI 自動化測試框架UI框架
- 測試開發之自動化篇-自動化測試框架設計框架
- iOS appium UI 自動化測試配置可控 xpathiOSAPPUI
- Jenkins整合appium自動化測試(Windows篇)JenkinsAPPWindows
- 自動化測試框架介紹框架
- Selenium自動化測試框架框架
- 軟體測試自動化框架框架
- 介面自動化測試框架 HttpFPT框架HTTP
- 利用tox打造自動自動化測試框架框架
- Python自動化測試框架有哪些?Python入門!Python框架
- [android]android自動化測試Android