自動化測試的定義,這裏先引用一段維基百科的定義:android
在軟件測試中,測試自動化(英語:Test automation)是一種測試方法,使用特定的軟件,去控制測試流程,並比較實際的結果與預期結果之間的差別。經過將測試自動化,可讓正式的測試過程當中的必要測試,能夠反覆進行;經過這種方法,也能夠將難以手動進行的測試,交由軟件來作。這種測試方法,是持續交付流程中的必要組成。編程
用我本身的話說就是,自動化測試的價值在於將重複性的測試工做經過代碼和工具組織成一套可屢次使用的測試流程,按下回車鍵或者點擊開始按鈕便可泡杯咖啡喝杯茶靜待其完成整個測試任務。微信
自動化測試的工具和框架有不少,近些年比較知名的有 Appium、UI Automator 等等。今天我先介紹下 UI Automator 的入門知識。框架
UI Automator 是一個跨應用(系統應用和第三方應用)的 UI 自動化測試框架,由谷歌官方維護,適用於安卓系統。注意啦~這個框架目前只支持 Android4.3(API level 18) 及以上的安卓系統。工具
UI Automator 測試框架提供了一系列的 API,這些 API 能夠用來編寫基於系統應用和第三方應用的自動化測試用例,例如打開系統設置頁面或者啓動被測應用。UI Automator 測試框架很是適合編寫黑盒自動化測試,測試代碼不依賴於被測應用的內部執行細節。佈局
UI Automator 測試框架包含如下三個主要功能:測試
下面詳細說明此三功能:
UI Automator Viewer
uiautomatorviewer 是安卓 sdk 自帶的一個工具(位於'<android-sdk>/tools/bin'目錄下),能夠用來掃描和分析安卓設備上當前顯示的應用頁面,輸出的結果包含頁面中各 UI 組件的佈局層級和各項屬性。利用這些信息能夠編寫出更加細緻的自動化測試用例。
ui
Accessing device state
UiDevice 是一個類,能夠用來和測試設備上的被測應用進行交互。你能夠調用它的方法獲取到設備信息,諸如當前屏幕旋轉角度或者顯示屏大小。此外,它還能執行其餘操做,例如:3d
UiDevice.pressHome()
UI Automator APIs
一組 API,經過它們,無需瞭解被測應用的具體實現細節,便可編寫出健壯的自動化測試用例。你可使用這些 API 去捕獲和操縱跨應用的 UI 組件:code
device = UiDevice.getInstance(getInstrumentation device.pressHome(); // Bring up the default launcher by searching for a UI component // that matches the content description for the launcher button. UiObject allAppsButton = device.findObject(new UiSelector().description("Apps")); // Perform a click on the button to load the launcher. allAppsButton.clickAndWaitForNewWindow();
好啦,本篇文章先是引用了維基百科中關於「自動化測試」的定義,而後說了我對於「自動化測試」的理解,最後介紹了 UI Automator 的入門知識。
其實說到底,自動化測試要作的無非就是如下三件事情:
先寫到這裏,下篇再分享 UI Automator 的具體應用(從環境搭建到跑通第一個自動化測試用例)。
參考資料:
https://developer.android.com/training/testing/ui-automator
歡迎關注微信公衆號"測試開發Stack"