發(fā)布時間:2020-06-17
現在世面上的安卓自動化測試工具五花八門,讓人看的眼花繚亂,那么今天就讓小編帶你分析下當前世面上的移動端自動化工具。首先我們探究一下各種測試工具的實現原理和應用場景以及利弊分析。
一、monkey
原理:通過socket通訊的方式來模擬用戶的按鍵輸入,觸摸屏輸入,手勢輸入等,Monkey 是一個命令行工具,可以運行在模擬器或實際設備中,通過向系統(tǒng)發(fā)送偽隨機的用戶事件流,實現對全系統(tǒng)或某個應用程序進行壓力測試
使用場景:多用于進行穩(wěn)定性測試。
利弊分析:測試的對象僅為應用程序包,有一定的局限性。Monkey測試使用的事件流數據流是隨機的,不能進行自定義。
二、monkeyrunner
原理:Monkeyrunner是Android自帶的自動化測試工具, 通過adb進行對屏幕的元素dump進行解析,并且基于坐標發(fā)送點擊操作,然后在這個基礎上做封裝
使用場景:多用于UI自動化測試
利弊分析:
1、可以完成一定復雜程度的測試用例,避免重復的人工工作量;
2、結合heap、strict mode等工具,可以實現壓力測試,性能優(yōu)化等任務;
3、某些API對機型兼容不好,例如4.0以下的機型,對viewnode server支持不友善,導致drag api不能正常工作。
4、由于monkeyrunner的實現基于python腳本,性能比較低下,對腳本的編寫有質量要求。
三、uniautomator
原理:是Android提供的自動化測試框架,UiAutomator是Google仿照微軟Uiautomation提供的一套自動化框架,基于Android AccessilibilityService提供(注:Android AccessilibilityService,是一個可訪問服務,是一個為增強用戶界面并幫助殘疾用戶的應用程序,或者用戶可能無法完全與設備的交互。例如,用戶在開車。那么用戶就有可能需要添加額外的或者替代的用戶反饋方式)。
應用場景:Android平臺的應用進行黑盒自動化測試,
利弊分析:基本上支持所有的Android事件操作,對比Instrumentation它不需要測試人員了解代碼實現細節(jié)(可以用UiAutomatorviewer抓去App頁面上的控件屬性而不看源碼)?;贘ava,測試代碼結構簡單、編寫容易、學習成本,一次編譯,所有設備或模擬器都能運行測試,能跨App(比如:很多App有選擇相冊、打開相機拍照,這就是跨App測試。
四、Appium
原理:Appium是一個開源、跨平臺的測試框架,可以用來測試原生及混合的移動端應用。Appium支持IOS、Android及FirefoxOS平臺。Appium使用WebDriver的json wire協議,來驅動Apple系統(tǒng)的UIAutomation庫、Android系統(tǒng)的UIAutomator框架。Appium對IOS系統(tǒng)的支持得益于Dan Cuellar’s對于IOS自動化的研究。Appium也集成了Selendroid,來支持老android版本。
應用場景:Ios、android黑盒自動化測試
利弊分析:Appium支持Selenium WebDriver支持的所有語言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl語言,更可以使用Selenium WebDriver的Api。Appium支持任何一種測試框架。如果只使用Apple的UIAutomation,我們只能用javascript來編寫測試用例,而且只能用Instruction來運行測試用例。同樣,如果只使用Google的UIAutomation,我們就只能用java來編寫測試用例。Appium實現了真正的跨平臺自動化測試。
MobileRunner(簡稱MR)是面向移動平臺(android和ios)的自動化測試工具。支持同時直接連接多臺移動設備,通過腳本錄制和執(zhí)行,實現移動設備和應用的自動化測試、設備兼容性測試、功能測試等工作。
應用場景:支持主流的兩大操作系統(tǒng),安卓與IOS系統(tǒng)全支持。
優(yōu)勢:使用Java作為腳本語言,使腳本更簡單,并且Java有大量的擴展包,能夠讓用戶自己來擴展功能。Java作為標準化、流行的開發(fā)技術,擁有大量的擁護者和開發(fā)者,容易學習,也更容易找到懂得Java的測試工程師,降低人員成本。MobileRunner支持函數調用,支持腳本調用腳本,能夠非常簡單地實現各種復雜腳本的編寫。
移動端自動化測試相關閱讀:
您的信息已成功提交!
我們的客服人員稍后會與您聯系