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