Android自動化測試
流行測試工具介紹
1.Robotium 安卓測試工具
Robotium是一款經常使用的自動化測試工具軟件,支持Android。它是一個免費的Android UI測試工具。它適用于為不同的安卓版本和子版本測試自動化。軟件開發人員經常把它描述為Android Selenium。Robotium測試是用java寫的。事實上,Robotium是一個單元測試庫。但通過Robotium創建測試需要花費很多時間和努力,因為為了自動化測試還需要修改程序源代碼。該工具也不適合與系統軟件的交互,它不能鎖定和解鎖智能手機或平板電腦。Robotium也沒有錄制回放功能,也不提供截圖。
2.MonkeyRunner 安卓應用測試
Monkeyrunner是一款流行的Android測試工具,用于自動化功能測試。這個工具比Robotium更低一層次。這個不必處理源代碼來做自動化測試。這個測試可以用Python寫,并且可以使用錄制工具來創建測試。Monkeyrunner可以連接到電腦或模擬真實設備運行測試。該工具有一個接口,用它來控制智能手機,平板電腦或外部模擬器的Android代碼。
這個測試工具的缺點是,它必須為每個設備編寫腳本。另一個問題是,每次測試程序的用戶界面變化都需要調整測試腳本。
3.Ranorex 安卓測試應用工具
Ranorex 是一款不僅可以支持最新Android版本,也支持從Android2.2開始的早期版本和分支版本。Ranorex的優勢是它有詳細的截屏報告。它能通過Wifi連接智能手機和平板電腦。一個自動化測試工程師通過這個Android工具可以不用XML數據格式來詳細編寫數據驅動的測試。Ranorex工作室使自動化測試工程師只要點擊鼠標就可容易地創建測試。它允許詳細聲明額外的程序模塊,來用于在后期開發周期中測試更復雜的場景。它是一個商業的移動應用工具,其許可價格為1990歐元。不過Ranorex搜索功能相當慢;它需要30秒來完成這樣的操作。我們必須為Ranorex配備apk文件設備,否則無法通過這個工具實現自動化測試,因為它只能在APK文件設備上工作。
4.Appium安卓自動化框架
這是一個可以為iOS和Android做自動化測試的框架。它是一個開源工具。它支持從2.3及以后的安卓版本。Appium利用WebDriver接口運行測試。它支持多種編程語言,如java,C #,Ruby和其他在WebDriver庫中的語言。它可以控制移動設備上的Safari和Chrome。這樣測試移動網站可使用Appium和這些瀏覽器。但一些自動化測試工程師抱怨說,它沒有詳細的報告。其弱點還有減少了在移動設備上XPath支持。
5.UI Automator 安卓測試自動化
這款工具是谷歌最近發布的。它支持從4.1開始的安卓版本。這樣就得再選擇另一個安卓應用測試工具來做早期版本自動化測試。UI Automator能夠與各種Android軟件產品交互,包括系統中的應用。這使UI Automator可以鎖定和解鎖智能手機或平板電腦。通過這個工具創建的腳本可以在許多不同的安卓平臺上執行。它可以重現復雜的用戶操作動作。
UI Automator也可以利用一個設備的外部按鍵,如回放鍵、音量調節鍵、開關鍵來控制。
它可以集成測試框架TestNG。在這種情況下,UI Automator可以生成豐富和詳細的報告,類似于Ranorex生成報告。另外,這個工具搜索功能非常快。
軟件測試專家發現UI Automator是一款適用于許多Android平臺的移動應用測試。它是一款最適合安卓應用測試的工具之一,因為它是由谷歌專門為這個操作系統發布的。
通常約有80%的新軟件bug能在所有支持的平臺上重現。因此,一個可執行在廣泛使用的平臺上的移動測試工具是可以發現高達80%的缺陷。其余20%將會在其他平臺上被發現。這意味著,在大多數情況下,在更少的測試平臺上完整地做測試比在眾多平臺上匆忙測試更好。目前,安卓操作系統設備上約66%使用的是安卓4.1。這就是為什么許多自動化測試工程師決定UI Automator是最合適的解決方案。Ranorex經常用于早期的Android版本測試。
測試工具的優缺點總結
1、Monkeyrunner:優點:操作最為簡單,可以錄制測試腳本,可視化操作;缺點:主要生成坐標的自動化操作,移植性不強,功能最為局限;
2、Rubotium:主要針對某一個APK進行自動化測試,APK可以有源碼,也可以沒有源碼,功能強大;缺點是針對APK操作,而且需要對APK重新簽名(有工具),因此操作相對復雜;
3、UiAutomator:優點:可以對所有操作進行自動化,操作簡單;缺點:Android版本需要高于4.0,無法根據控件ID操作,相對來說功能較為局限,但也夠用了;
4、Monkey:準確來說,這不算是自動化測試,因為其只能產生隨機的事件,無法按照既定的步驟操作;
由上面介紹可以有這樣的結論:測試某個APK,可以選擇Rubotium;測試過程可能涉及多個APK,選擇UiAutomator;一些簡單的測試,選擇Monkeyrunner。