對于Android App的自動化測試框架的使用,其實在很多書上面都會有說明,我們可以先來看一個常用的自動化測試實例,先不說框架,主要是測試用戶操作的模擬、執(zhí)行結(jié)果的判斷,以便獲得對測試自動化的理解與認...
對于Android App的自動化測試框架的使用,其實在很多書上面都會有說明,我們可以先來看一個常用的自動化測試實例,先不說框架,主要是測試用戶操作的模擬、執(zhí)行結(jié)果的判斷,以便獲得對測試自動化的理解與認識。
案例需求如下:比如說微信打開手機存儲卡的文件,通過自動化測試獲取其打開某一文件的響應時間,這里首先需要做細分,把需求拆分為幾個關鍵點,即進入瀏覽器、文件打開操作、獲取手機屏幕、截圖分析、結(jié)果統(tǒng)計輸出。自動化測試就是實現(xiàn)機器完成這些關鍵點的一系列操作,并且在腳本的實際運行中添加需要的業(yè)務邏輯判斷,實現(xiàn)測試自動化。根據(jù)腳本的具體實現(xiàn),整理出打開文件測試流程圖:
自動化測試框架,是在實際項目中總結(jié)出來的且基本能運行的通用基礎框架原型,它包括三個核心部分:一是如何獲取坐標/控件并操作控件模擬用戶端事件,二是腳本中的結(jié)果如何判斷,三是測試結(jié)果報告的輸出與展示。
自動化測試的首要條件是能夠操作控件,最好像開發(fā)一樣操作控件,實現(xiàn)的方式有多種,一種最常見的腳本錄制方法,其主要思想是記錄控件的坐標位置和發(fā)生的事件,通過回放腳本完成測試事件流,像MonkeyRunner框架就提供比較方便的錄制回放功能;另一種方法就是通過工具(比如:源碼、UIAutomatorviewer等)獲得測試界面的控件布局,找到目標空間的ID、名字、描述或者位置信息。測試框架可以通過這些信息得到控件對象,并對控件對象執(zhí)行一系列事件操作像Robotium、UIAutomater等,這個階段理解為測試的動作執(zhí)行。
對于有跨應用App的控件操作會受到Android進程安全限制,這對于跨應用的操作是一個難點,在測試一款App應用時,它的某個功能會調(diào)起系統(tǒng)攝像頭進行視頻等,那這個功能就會涉及跨應用了。像Robotium就無法調(diào)用系統(tǒng)的一些INPUT事件完成跨應用的控件操作(其實Robotium從Android 4.3之后開始支持UIAutomation框,理應可以支持跨應用的),基于Robotium框架的測試腳本跟被測對象需在同一個App或者可以相互訪問,一般要求重新簽名打包。所以在選定框架時就需要考慮相關的權(quán)限問題,當前可以直接支持跨應用的框架有MonkeyRunner、UIAutomater等。