剛上班翅娶,部門讓從自動(dòng)化測(cè)試做起弄屡,順帶熟悉業(yè)務(wù)量承,到現(xiàn)在為止做自動(dòng)化測(cè)試已經(jīng)三個(gè)月了搬设,從 UI Automator
到Espersso
,到Mockito
再到JUnit
等等撕捍,學(xué)習(xí)了很多新知識(shí)拿穴,也還有許多不到位的地方要繼續(xù)去深入研究。
利用空閑時(shí)間對(duì)這段時(shí)間學(xué)的知識(shí)做個(gè)總結(jié)并分享忧风。個(gè)人表達(dá)能力不太好默色,寫的不好的地方還請(qǐng)多多批評(píng)指正。
UI Automator綜述
UI Automator 是一套黑盒UI自動(dòng)化測(cè)試框架阀蒂,具有靈活性強(qiáng)该窗、支持跨進(jìn)程進(jìn)行自動(dòng)化測(cè)試弟蚀、不依賴源碼等優(yōu)點(diǎn)蚤霞,在自動(dòng)化測(cè)試領(lǐng)域占有一席之地。UI Automator 測(cè)試框架非常適合編寫黑盒自動(dòng)化測(cè)試义钉,其中的測(cè)試代碼不依賴于目標(biāo)應(yīng)用的內(nèi)部實(shí)現(xiàn)詳情昧绣。。
Android API要求
UIAutomator必須在?Android4.3?(?API18?)?以上運(yùn)行捶闸。
UI Automator框架
UIAutomator框架可以分為一基類夜畴、一配置、一設(shè)備一異常删壮、兩接口三控件以及一個(gè)選擇器贪绘,介紹如下:
基類:
UIAutomatorTestCase
--負(fù)責(zé)測(cè)試用例信息獲取和參數(shù)執(zhí)行,所有的測(cè)試類都必須繼承于它央碟,UIAutomatorTestCase繼承于junit.framework.TestCase税灌;配置:
Configurator
--可以控制測(cè)試用例執(zhí)行過程中事件等待超時(shí)、控件可見超時(shí)等;設(shè)備:
UIDevice
--設(shè)備封裝類菱涤,負(fù)責(zé)獲取設(shè)備信息以及與設(shè)備進(jìn)行交互等苞也,eg: 返回桌面、點(diǎn)擊粘秆、檢查屏幕情況等等如迟;異常:
UiObjectNotFoundException
--測(cè)試異常,在當(dāng)前界面下找不到控件時(shí)拋出該異常攻走;-
接口:
UiWatcher
--界面觀察者殷勘,可以處理中斷彈窗,使測(cè)試用例順利執(zhí)行昔搂;IAumatormationSupport
--輔助類劳吠;
-
控件:
UiObject
--代表一個(gè)控件,代表Android中的一個(gè)控件巩趁;UiCollection
--控件集合痒玩,可以用來遍歷集合;UiScrollable
--可以滾動(dòng)的控件议慰,eg:ListView等蠢古;
選擇器:
UiSelector
--控件選擇器,可以利用控件的屬性匹配目標(biāo)控件别凹;
UI Automator 查看器
關(guān)于UI Automator 查看器草讶,官網(wǎng)是這樣描述的:
uiautomatorviewer 工具提供了一個(gè)方便的 GUI,可以掃描和分析 Android 設(shè)備上當(dāng)前顯示的 UI 組件炉菲《檎剑可以使用此工具檢查布局層次結(jié)構(gòu),并查看在設(shè)備前臺(tái)顯示的 UI 組件屬性拍霜。利用此信息嘱丢,您可以使用 UI Automator(例如,通過創(chuàng)建與特定可見屬性匹配的 UI 選擇器)創(chuàng)建控制更加精確的測(cè)試祠饺。
uiautomatorviewer 工具位于 <android-sdk>/tools/bin
目錄下越驻,如果配置了ANDROID_HOME環(huán)境變量,則可以在terminal窗口中運(yùn)行:
./uiautomatorviewer
查看器如下圖所示:
- 手機(jī)或者模擬器當(dāng)前界面道偷;
- 當(dāng)前界面的布局樹缀旁;
- 當(dāng)前選中控件的屬性;
UI Automator 配置
- 要將 AndroidJUnitRunner 設(shè)置為 Gradle 項(xiàng)目中的默認(rèn)測(cè)試儀器運(yùn)行器勺鸦,請(qǐng)?jiān)?build.gradle 文件中指定此依賴關(guān)系:
android {
defaultConfig {
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}
- 要在 Gradle 項(xiàng)目中使用 Android 測(cè)試支持庫并巍,請(qǐng)?jiān)?build.gradle 文件中添加這些依賴關(guān)系:
dependencies {
androidTestCompile 'com.android.support.test:runner:0.5'
// JUnit 4 rules
androidTestCompile 'com.android.support.test:rules:0.5'
// UI Automator
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
}
接下來就可以盡情的擼代碼了……