Monkey原始碼分析3—Monkey原始碼的整體設計結構
Monkey原始碼地址,點選檢視
Monkey自動化測試的本質就是隨機生成一個事件,然後向Android設備註入一個事件。通俗的來說就是,monkey隨機生成一個點選螢幕事件,然後選取Android螢幕的一個座標,對此座標進行點選操作。來實現自動化測試的。當然產生的事件不僅僅侷限於點選螢幕,還有滑動螢幕,反轉螢幕,點選音量等按鍵,休眠等等不同的事件。針對不同的事件也有不同的注入方式。
Monkey原始碼中有三種生成事件的方式。預設方式、從網路獲取方式、從指令碼獲取方式。命令列輸入執行monkey -p 包名 -v 100執行是預設的方式。從網路獲取方式主要為monkeyrunner使用。從指令碼獲取方式基本沒有人用。因此我們只講解預設生成事件的方式。接下來所有的Monkey原始碼講解均指預設方式。
預設方式涉及的類生成如下URM類圖:
簡單介紹一下類圖中涉及的類。
Monkey類:程式入口。
實現MonkeyEventSource介面MonkeySourceRandom類:主要來生成各種不同的事件。
繼承MonkeyEvent的各種不同的事件類:全部重新MonkeyEvent中的注入方法,用來向設備註入事件。
MonkeyEventQueue類:事件佇列,將生成的事件新增到此事件佇列中。注入事件的時候,從佇列中獲取事件。
Monkey原始碼核心URM序列圖:
是不是發現Monkey原始碼的整體設計結構還是非常簡單明瞭的?到此,準備工作全部完成。下一節就開始詳細解析Monkey原始碼啦。
備註:
1.圖片被部落格壓縮後看不清了,放大瀏覽器就可以看清楚了。按住Ctrl的同時向上滑動滑鼠中間的滑動按鈕。
2.原始碼連結需要翻牆訪問。如果無法翻牆,我上傳了AndroidV5.0版本的Monkey原始碼。點選下載