行動APP自動化測試的難點
行動APP的UI自動化測試長久以來一直是一個難點,難點在於UI的」變」, 變化導致自動化用例的大量維護。 從分層測試的角度,自動化測試應該逐層進行。最大量實現自動化測試的應該是單元測試,最容易實現也最容易在早期發現問題;其次是接口級測試,以驗證邏輯為目的進行自動化,由於接口的相對穩定,自動化測試成本相對也可以接受;自動化成本最大的便是UI級自動化測試,然而UI介面是直接回饋給用戶的效果展示,適度的尤其是BVT級的自動化測試也是非常必要的。
為了擺脫這些,需要引進一些自動化測試來協助我們。趁現在有空我來總結下,Android常用的幾種自動化測試框架的異同,讓測試人員在選擇自動化框架時有所參考!
Android幾個常用#自動化測試框架#比較
1、Monkey是Android SDK自帶的測試工具,在測試過程中會向系統發送偽隨機的用戶事件流,如按鍵輸入、觸控螢幕輸入、手勢輸入等),實現對正在開發的應用程式進行壓力測試,也有日誌輸出。該工具實際上只能對程式進行一些壓力測試,由於測試的事件和數據都是隨機的,不能自訂,因此具有很大的限制。
另一個由Android SDK提供的測試工具是MonkeyRunner。嚴格意義上來說MonkeyRunner其實是Api工具包,比Monkey強大,可以寫測試腳本來自訂資料、事件。腳本使用Python編寫,需要測試人員具備較高的技能水平,因此學習成本相對較高,這是它的缺點。
3、Robotium也是基於Instrumentation的測試框架,主要針對某一個APK進行自動化測試,APK可以有源碼,也可以沒有源碼,功能強大;缺點是對測試人員來說要有一定的Java基礎,了解Android基本元件,不能跨App。
4、Instrumentation是早期Google提供的Android自動化測試工具類,雖然在那時候JUnit也可以對Android進行測試,但是Instrumentation允許你對應用程式做更為複雜的測試,甚至是框架層面的,是許多其它測試框架的基礎,可以在同進程中載入被測組件。它有許多豐富的高層封裝,使用者可以使用基於instrumentation的其他框架,避免過多二次開發量。但Instrumentation不支援跨應用,導致基於instrumentation的框架都繼承了這個缺點。
5、UIAutomator是由Google提供的測試框架,它提供了原生Android app和遊戲的高級UI測試。基本上支援所有的Android事件操作,與Instrumentation對比,它不需要測試人員了解程式碼實作細節(可以用UiAutomatorviewer抓去App頁面上的控制項屬性而不看原始碼)。
基於Java,測試程式碼結構簡單、編寫容易、學習成本,一次編譯,所有設備或模擬器都能運行測試,能跨App(例如:很多App有選擇相簿、打開相機拍照,這就是跨App測試)。
該工具的缺點在於僅支援SDK 16(Android 4.1)及以上版本,無法相容於混合應用程式和Web應用程式。
6、Espresso是Google的開源自動化測試框架。相對於Robotium和UIAutomator,它的特色是規模更小、更簡潔、API更精確、寫測試程式碼簡單、容易快速上手。由於它是基於Instrumentation的,因此無法在不同的應用程式之間使用。
7、Selendroid:是一個基於Instrumentation的一個框架. 完全相容於Webdriver協定。 Selendroid支援在模擬器和真實裝置上運行,並可以作為縮放和並行測試的網格節點進行整合。
Athrun是一個淘寶出品的行動測試框架/平台,可同時支援iOS和Android。 Android部分也是基於Instrumentation,在Android原有的ActivityInstrumentationTestCase2類別基礎上進行了擴展,提供一整套物件導向的API。
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自動化測試經驗的測試人員可以直接上手);
行動端自動化測試應該是開源的;
以上是Android常用9種自動化測試框架是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!