Android 手機(jī)自動(dòng)化測(cè)試工具有哪幾種
1、Monkey是Android SDK自帶的測(cè)試工具,在測(cè)試過(guò)程中會(huì)向系統(tǒng)發(fā)送偽隨機(jī)的用戶事件流,如按鍵輸入、觸摸屏輸入、手勢(shì)輸入等),實(shí)現(xiàn)對(duì)正在開(kāi)發(fā)的應(yīng)用程序進(jìn)行壓力測(cè)試,也有日志輸出。實(shí)際上該工具只能做程序做一些壓力測(cè)試,由于測(cè)試事件和數(shù)據(jù)都是隨機(jī)的,不能自定義,所以有很大的局限性。
2、MonkeyRunner也是Android SDK提供的測(cè)試工具。嚴(yán)格意義上來(lái)說(shuō)MonkeyRunner其實(shí)是一個(gè)Api工具包,比Monkey強(qiáng)大,可以編寫(xiě)測(cè)試腳本來(lái)自定義數(shù)據(jù)、事件。缺點(diǎn)是腳本用Python來(lái)寫(xiě),對(duì)測(cè)試人員來(lái)說(shuō)要求較高,有比較大的學(xué)習(xí)成本。
3、Instrumentation是早期Google提供的Android自動(dòng)化測(cè)試工具類,雖然在那時(shí)候JUnit也可以對(duì)Android進(jìn)行測(cè)試,但是Instrumentation允許你對(duì)應(yīng)用程序做更為復(fù)雜的測(cè)試,甚至是框架層面的。通過(guò)Instrumentation你可以模擬按鍵按下、抬起、屏幕點(diǎn)擊、滾動(dòng)等事件。Instrumentation是通過(guò)將主程序和測(cè)試程序運(yùn)行在同一個(gè)進(jìn)程來(lái)實(shí)現(xiàn)這些功能,你可以把Instrumentation看成一個(gè)類似Activity或者Service并且不帶界面的組件,在程序運(yùn)行期間監(jiān)控你的主程序。缺點(diǎn)是對(duì)測(cè)試人員來(lái)說(shuō)編寫(xiě)代碼能力要求較高,需要對(duì)Android相關(guān)知識(shí)有一定了解,還需要配置AndroidManifest.xml文件,不能跨多個(gè)App。
4、UiAutomator也是Android提供的自動(dòng)化測(cè)試框架,基本上支持所有的Android事件操作,對(duì)比Instrumentation它不需要測(cè)試人員了解代碼實(shí)現(xiàn)細(xì)節(jié)(可以用UiAutomatorviewer抓去App頁(yè)面上的控件屬性而不看源碼)。基于Java,測(cè)試代碼結(jié)構(gòu)簡(jiǎn)單、編寫(xiě)容易、學(xué)習(xí)成本,一次編譯,所有設(shè)備或模擬器都能運(yùn)行測(cè)試,能跨App(比如:很多App有選擇相冊(cè)、打開(kāi)相機(jī)拍照,這就是跨App測(cè)試)。缺點(diǎn)是只支持SDK 16(Android 4.1)及以上,不支持Hybird App、WebApp。
5、Espresso是Google的開(kāi)源自動(dòng)化測(cè)試框架。相對(duì)于Robotium和UIAutomator,它的特點(diǎn)是規(guī)模更小、更簡(jiǎn)潔,API更加精確,編寫(xiě)測(cè)試代碼簡(jiǎn)單,容易快速上手。因?yàn)槭腔贗nstrumentation的,所以不能跨App。配合Android Studio來(lái)編寫(xiě)測(cè)試的簡(jiǎn)單例子
6、Selendroid:也是基于Instrumentation的測(cè)試框架,可以測(cè)試Native App、Hybird App、Web App,但是網(wǎng)上資料較少,社區(qū)活躍度也不大。
7、Robotium也是基于Instrumentation的測(cè)試框架,目前國(guó)內(nèi)外用的比較多,資料比較多,社區(qū)也比較活躍。缺點(diǎn)是對(duì)測(cè)試人員來(lái)說(shuō)要有一定的Java基礎(chǔ),了解Android基本組件,不能跨App。
8、Athrun是淘寶出的一個(gè)移動(dòng)測(cè)試框架/平臺(tái),同時(shí)支持iOS和Android。Android部分也是基于Instrumentation,在Android原有的ActivityInstrumentationTestCase2類基礎(chǔ)上進(jìn)行了擴(kuò)展,提供一整套面向?qū)ο蟮腁PI。這里有詳細(xì)介紹。
9、Appium是最近比較熱門(mén)的框架,社區(qū)也很活躍。這個(gè)框架應(yīng)該是是功能最強(qiáng)大的,
它的優(yōu)點(diǎn):
開(kāi)源;
支持Native App、Hybird App、Web App;
支持Android、iOS、Firefox OS;
Server也是跨平臺(tái)的,你可以使用Mac OS X、Windows或者Linux;
它的哲理是:
用Appium自動(dòng)化測(cè)試不需要重新編譯App;
支持很多語(yǔ)言來(lái)編寫(xiě)測(cè)試腳本,Java、Javascript、PHP、Python、C#、Ruby等主流語(yǔ)言;
不需要為了自動(dòng)化測(cè)試來(lái)重造輪子,因?yàn)閿U(kuò)展了WebDriver。(WebDriver是測(cè)試WebApps的一種簡(jiǎn)單、快速的自動(dòng)化測(cè)試框架,所以有Web自動(dòng)化測(cè)試經(jīng)驗(yàn)的測(cè)試人員可以直接上手);
移動(dòng)端自動(dòng)化測(cè)試應(yīng)該是開(kāi)源的;
它的設(shè)計(jì)理念:
Client/Server架構(gòu),運(yùn)行的時(shí)候Server端會(huì)監(jiān)聽(tīng)Client端發(fā)過(guò)來(lái)的命令,翻譯這些命令發(fā)送給移動(dòng)設(shè)備或模擬器,然后移動(dòng)設(shè)備或模擬器做出響應(yīng)的反應(yīng)。正是因?yàn)檫@種架構(gòu),所以Client可以使用Appium client libraries多種語(yǔ)言的測(cè)試腳本,而且Server端完全可以部署在服務(wù)器上,甚至云服務(wù)器。
Session,每個(gè)Client連接到Server以后都會(huì)有一個(gè)Session ID,而且Client發(fā)送命令到Server端都需要這個(gè)Session ID,因?yàn)檫@個(gè)seesion id代表了你所打開(kāi)的瀏覽器或者是移動(dòng)設(shè)備的模擬器。所以你甚至可以打開(kāi)N個(gè)Session,同時(shí)測(cè)試不同的設(shè)備或模擬器。
Desired Capabilities,其實(shí)就是一個(gè)鍵值對(duì),設(shè)置一些測(cè)試的相關(guān)信息來(lái)告訴Server端,我們需要測(cè)試iOS、還是Android,或者換是WebApp等信息。
Appium Server是Node.js寫(xiě)的,所以可以直接用NPM來(lái)進(jìn)行安裝。
Appium Clients,Mac OS和Win下提供GUI,不需要裝Node.js,方便測(cè)試人員操作。
相關(guān)限制:
如果你在Windows使用Appium,你沒(méi)法使用預(yù)編譯專用于OS X的.app文件,因?yàn)锳ppium依賴OS X專用的庫(kù)來(lái)支持iOS測(cè)試,所以在Windows平臺(tái)你不能測(cè)試iOS Apps。這意味著你只能通過(guò)在Mac上來(lái)運(yùn)行iOS測(cè)試。
總結(jié):
在iOS部分是封裝了UIAutomation;Android 4.2以上是用UiAutomator,Android 2.3 ~ 4.1用的是 Instrumentation,也就說(shuō)Appium同時(shí)封裝了UiAutomator和Instrumentation。所以Appium擁有了以上幾大框架的所有優(yōu)點(diǎn):跨App,支持Native App、Hybird App、Web App,還支持N種語(yǔ)言來(lái)編寫(xiě)你的測(cè)試腳本。
-
自動(dòng)化測(cè)試
+關(guān)注
關(guān)注
0文章
270瀏覽量
27830 -
Android
+關(guān)注
關(guān)注
12文章
4034瀏覽量
134347
發(fā)布評(píng)論請(qǐng)先 登錄
ATE測(cè)試是什么?電源企業(yè)為什么必須上自動(dòng)化測(cè)試?
CW32單片機(jī)支持哪幾種開(kāi)發(fā)環(huán)境,比較常用的MDK支持嗎?
日本小松集團(tuán)選擇Qt Group,實(shí)現(xiàn)工程機(jī)械GUI自動(dòng)化測(cè)試
請(qǐng)問(wèn)單片機(jī)開(kāi)發(fā)的程序設(shè)計(jì)語(yǔ)言主要有哪幾種?
嵌入式軟件單元測(cè)試中AI自動(dòng)化與人工檢查的協(xié)同機(jī)制研究:基于專業(yè)工具的實(shí)證分析
北京泰斯汀通信技術(shù)有限公司并網(wǎng)及V2G的自動(dòng)化測(cè)試工具/測(cè)試服務(wù)
自動(dòng)化測(cè)試的「千里眼」:當(dāng)RTSM遠(yuǎn)程控制遇上自動(dòng)化,測(cè)試效率直接拉滿!
嵌入式C/C++回歸測(cè)試四大最佳實(shí)踐(附自動(dòng)化測(cè)試工具TESSY使用教程)
嵌入式軟件測(cè)試與專業(yè)測(cè)試工具的必要性深度解析
測(cè)試小白3分鐘上手,零代碼自動(dòng)化測(cè)試平臺(tái),15分鐘搭建自動(dòng)化測(cè)試方案
電源模塊的短路保護(hù)如何通過(guò)自動(dòng)化測(cè)試軟件完成測(cè)試
電子測(cè)試平臺(tái)ATECLOUD中是如何利用AI工具的?
自動(dòng)化測(cè)試平臺(tái)ATECLOUD推出AI算法功能
APP自動(dòng)化測(cè)試框架
TH2822系列LCR測(cè)試儀的自動(dòng)化測(cè)試
Android 手機(jī)自動(dòng)化測(cè)試工具有哪幾種
評(píng)論