一、HierarchyViewer:
優點:1)能夠可視化的角度直觀地獲得UI布局設計結構和各種屬性的信息
2)使用hierarchyviewer.bat來檢索手機界面布局
缺點:1)穩定性差,出現過在獲取某些控件時,概率性的會存在獲取不到的情況
2)性能不好,使用HierarchyViewer功能時進行測試,獲取控件等時的執行效率很低,導致整個測試的時間使用特別長,消耗調試時間
3)只能用MonkeyImage的SameAs來做截圖對比
4)資料稀缺,不僅百度,google也是一樣
5)HierarchyViewer相對應的API,API的提供的方法,沒有uiautomator提供的詳細和多
6)新手學習起來較難
二、Uiautomator:
優點:1)可以對所有操作進行自動化,API封裝的較多,使用起來容易理解
2)可以跨應用測試,Google原生,其穩定性和后續的維護更新可以得到保障,運行時也有更多的權限
3)可支持eclipse中使用
4)可以跨進程操作,這點比起其它基於instrumentation框架的自動化工具如Robotium是無法直接做到的
5)運行速度快
6)使用的人多,網上搜索資料也較多,遇到的問題基本都能搜索到對應的解決方式
7)明晰API,提供最靈活精確的控制。UiAutomator框架對外提供的API,主要有UiDevice、UiSelector、UiObject、UiCollection和 UiScrollable等
8)使用uiautomatorviewer.bat來檢索手機界面視圖
9)支持的語言可以有python、java等,google推出的底層框架使用java編寫的,但是在網上可找到python封裝的底層框架,因此也可使用python進行自動化測試
10)支持設備無源碼測試
11)新手學習起來較容易
缺點:1)android版本需要高於4.0以上
2)需要API17及以上
3)不支持Webview,所以一般無法對瀏覽器應用進行測試
4)基於Junit 3, 相對於Junit4, Testing等測試框架,Junit 3不具備許多功能
三、Appium
優點: 1)可支持eclipse中使用
2)支持webview
3)支持跨平台,android和ios都可用,開源,支持的語言多,如:java、python
4)基於Junit 3/Junit4,功能齊全
5)支持設備無源碼測試
6)可以跨應用測試
7)添加'unicodeKeyboard':True, #使用unicode編碼方式發送字符串 ,'resetKeyborad':True,#將鍵盤隱藏起來 可解決中文輸入法問題
8)新手學習起來較容易
缺點:1)非google原生
2)無法脫機跑
3)Appium使用WebDriver的json wire協議,來驅動Apple系統的UIAutomation庫、Android系統的UIAutomator框架,說到底,還是使用了uiautomator框架
4)在運行腳本上感覺執行速度較慢,沒有uiautomator的執行速度快(個人感覺)
此3個自動化測試框架,本人都使用過,不太建議使用HierarchyViewer,可以在uiautomator和appium中隨意選擇一個進行使用,網上的相關學習資料特別多 (個人建議,當然可以根據自己愛好進行選擇)