隨著消費(fèi)者對(duì)移動(dòng)應(yīng)用使用的占比增加, APP測試越來越被重視! 在現(xiàn)已出現(xiàn)的開源移動(dòng)自動(dòng)化測試工具中,總結(jié)了幾個(gè)最實(shí)用的,希望對(duì)大家有幫助:
1)Calabash(適用于Android和iOS)
Calabash-android是支持android的UI自動(dòng)化測試框架,PC端使用了cucumber框架,通過http和json與模擬器和真機(jī)上安裝的測試apk通信,測試apk調(diào)用robotium的方法來進(jìn)行UI自動(dòng)化測試,支持webview操作。
Calabash-android 是支持 android 的 UI 自動(dòng)化測試框架,PC 端使用了 cucumber 框架,通過 http 和 json 與模擬器和真機(jī)上安裝的測試 apk 通信,測試 apk 調(diào)用 Robotium 的方法來進(jìn)行 UI 自動(dòng)化測試,支持 webview 操作, 依靠Ruby代碼的支持.
Calabash-android 架構(gòu)圖
Features —— 這里的 feature 就是 cucumber 的 feature,用來描述 user stories 。
Step Definitions —— Calabash Android 事先已經(jīng)定義了一些通用的 step。你可以根據(jù)自己的需求,定義更加復(fù)雜的步驟。
Your app —— 測試之前,你不必對(duì)你的應(yīng)用修改。(這里其實(shí)是有問題,后面我們會(huì)說到。)
Instrumentation Test Server —— 這是一個(gè)應(yīng)用,在運(yùn)行測試的時(shí)候會(huì)被安裝到設(shè)備中去。 這個(gè)應(yīng)用是基于 Android SDK 里的 ActivityInstrumentationTestCase2。它是 Calabash Android 框架的一部分。Robotium 就集成在這個(gè)應(yīng)用里.
2)Appium(Android和iOS)
1、Appium 是什么?
Appium是一個(gè)開源的,適用于原生或混合移動(dòng)應(yīng)用( hybrid mobile apps )的自動(dòng)化測試工具,Appium應(yīng)用WebDriver: JSON wire protocol驅(qū)動(dòng)安卓和iOS移動(dòng)應(yīng)用。
2、Appium的特點(diǎn):
支持多平臺(tái)(Android、iOS等)
支持多語言(python、java、ruby、js、c#等)
Appium是跨平臺(tái)的,可以用在OSX,Windows以及Linux桌面系統(tǒng)上運(yùn)行。
Appium選擇了Client/Server的設(shè)計(jì)模式。只要client能夠發(fā)送http請求給server,client用什么語言來實(shí)現(xiàn)都是可以的,這就是如何做到支持多語言的原因;
Appium擴(kuò)展了WebDriver的協(xié)議,沒有自己重新去實(shí)現(xiàn)一套。這樣的好處是以前的WebDriver API能夠直接被繼承過來,以前的Selenium(WebDriver)各種語言的binding都可以拿來就用,省去了為每種語言開發(fā)一個(gè)client的工作量。
3、Appium的哲學(xué):
不需要重新編譯或者修改應(yīng)用
不被一種語言或者框架約束
不重復(fù)造輪子
開源免費(fèi)
Appium測試相當(dāng)于黑盒測試。這個(gè)測試框架,一般用于測試UI邏輯的正確性,不能升入測試業(yè)務(wù)邏輯流程。
3)Robotium(Android )
Robotium是Android平臺(tái)上類似于selenium的開源自動(dòng)化測試框架,主要針對(duì)Android平臺(tái)的應(yīng)用進(jìn)行黑盒自動(dòng)化測試,它提供了模擬各種手勢操作(點(diǎn)擊、長按、滑動(dòng)等)、查找和斷言機(jī)制的API,能夠?qū)Ω鞣N控件進(jìn)行操作。有JUnit基礎(chǔ)的開發(fā)者,還是非常容易上手的。
Robotium結(jié)合Android官方提供的測試框架達(dá)到對(duì)應(yīng)用程序進(jìn)行自動(dòng)化的測試。另外,Robotium 4.0版本已經(jīng)支持對(duì)WebView的操作。Robotium的核心類是Solo,通過Solo可以對(duì)控件進(jìn)行各種操作. Robotium 對(duì)Activity,Dialog,Toast,Menu 都是支持的。
最明顯的缺點(diǎn)有兩個(gè),一是必須要和被測系統(tǒng)簽名保持一致,二是不能做任何跨進(jìn)程的操作。
robotium 是 android 自帶類 Instrumentation 的一個(gè)封裝,方便測試人員直接調(diào)用封裝好的接口,也就是說,實(shí)際上我們直接使用Instrumentation 也能夠進(jìn)行自動(dòng)化測試,但robotium可以簡化我們的測試步驟,我們只需要調(diào)用某個(gè)robotium的API,傳幾個(gè)參數(shù),就等于我們在調(diào)用一部分的Instrumentation幫我們實(shí)現(xiàn)測試。
4)Frank(iOS)
Frank 提供了針對(duì)iOS平臺(tái)的功能測試能力,可以模擬用戶的操作對(duì)應(yīng)用程序進(jìn)行黑盒測試,并且使用Cucumber編寫測試用例,使測試用例如同自然語言一樣描述功能需求,讓測試以“可執(zhí)行的文檔”的形式成為業(yè)務(wù)客戶與交付團(tuán)隊(duì)之間的橋梁。
Frank 是 iOS 開發(fā)環(huán)境下一款實(shí)現(xiàn)自動(dòng)測試的工具,Xcode 環(huán)境下開發(fā)完成后,通過 Frank 實(shí)現(xiàn)結(jié)構(gòu)化的測試用例,其底層語言為 Ruby,作為一款開源的 iOS 測試工具,在國外已經(jīng)有廣泛的應(yīng)用。但是國內(nèi)相關(guān)資料卻比較少。其最大的優(yōu)點(diǎn)是允許我們用熟悉的自然語言實(shí)現(xiàn)實(shí)際的操作邏輯。
它提供了針對(duì) iOS 平臺(tái)的功能測試能力,可以模擬用戶的操作對(duì)應(yīng)用程序進(jìn)行黑盒測試,并且使用 Cucumber 編寫測試用例,使測試用例如同自然語言一樣描述功能需求,讓測試以“可執(zhí)行的文檔”的形式成為業(yè)務(wù)客戶與交付團(tuán)隊(duì)之間的橋梁。
優(yōu)點(diǎn): 測試場景是在 Cucumber 的幫助下,用可理解的英語句子寫的,還有活躍的社區(qū)支持,以及不斷擴(kuò)大中的庫。
缺點(diǎn):對(duì)手勢的支持有限,所以在設(shè)備上運(yùn)行測試有點(diǎn)難。
5)UiAutomator(Android)
uiautomator是Android官方推出的安卓應(yīng)用界面自動(dòng)化測試工具,是理想的針對(duì)APK進(jìn)行自動(dòng)化功能回歸測試的利器。能夠根據(jù)文本、控件id、坐標(biāo)進(jìn)行點(diǎn)擊、長按、滑動(dòng)、查找等操作,實(shí)現(xiàn)與人一致的手動(dòng)操作邏輯,根據(jù)測試用例使用python編碼后根據(jù)指定命令操作,檢查預(yù)期結(jié)果,進(jìn)行測試。最終通過單元測試執(zhí)行用例腳本生成相應(yīng)報(bào)告
一、Uiautomator簡介
Android SDK提供下述工具來支持自動(dòng)化的功能界面測試:
1、uiautomatorviewer:掃描、分析待測應(yīng)用的UI組件的圖像工具。
2、uiautomator:包含創(chuàng)建定制功能界面測試API和自動(dòng)化運(yùn)行測試用例的引擎的JAVA類庫。
優(yōu)點(diǎn):可以對(duì)所有操作進(jìn)行自動(dòng)化,操作簡單;
缺點(diǎn):Android版本需要高于4.0。
二、Uiautomator常用API了解
以下是uiautomator最基本最常用到的三個(gè)類,這里只是簡單地介紹這三個(gè)類的作用,后續(xù)本人還會(huì)寫相關(guān)隨筆詳細(xì)說明。
1、UiDevice:用于獲取設(shè)備的各種狀態(tài)。
獲取設(shè)備信息:屏幕分辨率、選裝狀態(tài)、亮滅屏......
操作:按鍵、坐標(biāo)操作、滑動(dòng)、拖拽、截圖......
監(jiān)聽器功能
2、UiSelector:通過組件的各種屬性與節(jié)點(diǎn)關(guān)系定位組件。
涉及到的android基礎(chǔ):Android常用組件、Android組件的屬性
3、UiObject:代表一個(gè)組件對(duì)象,對(duì)象有許多模擬實(shí)際操作手機(jī)的方法和屬性。
文本的編輯, 手勢操作, 獲取子類,判斷對(duì)象是否存在
6)Katalon
KatalonStudio是一個(gè)能提供一整套功能來實(shí)現(xiàn)Web,API和Mobile的全自動(dòng)測試解決方案的自動(dòng)化測試平臺(tái)。
KatalonStudio構(gòu)建于開源Selenium和Appium框架之上,通過減少學(xué)習(xí)和集成這些框架以滿足。
自動(dòng)化測試需求所需的工作量和專業(yè)知識(shí),使團(tuán)隊(duì)能夠快速開始測試自動(dòng)化。
Katalonstudio是一個(gè)非常好的工具,特別是對(duì)于那些有最少編程或開發(fā)背景的人。
如果你問我,在沒有開發(fā)背景的情況下如何開始自動(dòng)化測試。那么,使用像 Katalon studio 這樣的工具是一個(gè)很好的開始。
更多關(guān)于軟件測試培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師,如果想要了解我們的師資、課程、項(xiàng)目實(shí)操的話可以點(diǎn)擊咨詢課程顧問,獲取試聽資格來試聽我們的課程,在線零距離接觸千鋒教育大咖名師,讓你輕松從入門到精通。