UiAutomator和Appium之間的區別和聯系
聯系:
在Android端,appium基於WebDriver協議,利用Bootstrap.jar,最后通過調⽤用UiAutomator的命令,實現App的自動化測試。
UiAutomator測試框架是AndroidSDK自帶的App UI自動化測試Java庫。
1、UiAutomator——基於UIAutomation的用戶界面自動化測試框架,可以跨應用工作;
2、UiAutomator只能測試Android native app
3、主要功能跟Appium類似
4、可以跨應用測試,Google原生,其穩定性和后續的維護更新可以得到保障,運行時也有更多的權限
5、可以跨進程操作;
6、運行速度快;
7、UiAutomator框架對外提供的API,主要有UiDevice、UiSelector、UiObject、UiCollection和UiScrollable等
8、使用uiautomatorviewer.bat來檢索手機界面視圖
9、支持的語言可以有python、java等,google推出的底層框架使用java編寫的,但是也有python封裝的底層框架,因此也可使用python進行自動化測試
Appium——跨平台,允許采用同一套API在不同的平台(IOS,Android)上編寫測試代碼
Appium其實是找了一個中間件Bootstrap,Bootstrap是一個Uiautomator的測試腳本,UiAutomator可以正常運行它,它也可以正常的使用UiAutomator的方法,這個就是Appium的命令可以轉換成UiAutomator命令的關鍵。
Appium可以跨平台跨語言,將腳本通過Appiumserver發送給Bootstrap,然后再運行,所以,相當於Appium封裝了UiAutomator,功能更強大。
1、Appium是基於UIAutomator框架實現的一個開源、跨平台的測試框架。支持跨平台它允許測試人員在不同的平台iOS或Android使用同一套API來寫自動化測試腳本,可以增加iOS和Android測試套件間代碼的復用性。支持多語言如:java、python;
2、Appium測試相當於黑盒測試,測試UI邏輯正確性獲取一個AppiumDriver對象。該對象只是有很多findElements()的方法,獲取到UI元素。UI元素是WebElement,這個類提供的方法基本是獲取信息為主,比如獲取name,class,location,text,isSlected,isTouched等信息。這個測試框架,只是測試UI邏輯的正確性;
3、在運行腳本上執行速度較慢,沒有uiautomator的執行速度快;
4、appium使用的是Client/Server的設計模式,實現跨平台,多語言。只要client能夠發送http請求給server,那么的話client用什么語言來實現都是可以的,通過Python(python-client )編寫了一個appium自動化腳本並執行,appium-Server通過解析,驅動iOS設備來執行appium自動化腳本。或者,我在Windows平台上,通過Java( java-client )編寫了一個appium自動化腳本並執行,請求會首先到 appiumForWindow.zip(Window下的appium-Server),appium-Server通過解析,驅動Android虛擬機或真機來執行appium腳本。所以,你會看到appium的強大之處就在於此。
轉自:https://blog.csdn.net/yongwan5637/article/details/79879774