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