robotium原理

robotium集成instrumentation



Android測試環境的核心是Instrumentation框架,Instrumentation框架通過將主程序和測試程序在同一個進程來實現這些功能。在測試工程的manifest文件中添加<Instrumentation>元素來指定要測試的應用程序。官網api:http://developer.android.com/reference/android/app/Instrumentation.html 

AndroidInstrumentation對某個監控程序進行交互時:

1.啓動時將項目配置文件AndroidManifest.xml文件中的instrumentation標籤中的內容進行初始化(標明瞭所使用的測試運行類,目標項目包名)

2.執行測試時(可用adb命令觸發),將啓動目標應用的Activity,同時將待測試ActivityThread作爲一個引用進行初始化。

3.在測試時測試項目的任何對目標項目進行的操作,都會採用異步的方式,將消息體放在目標程序的MessageQueue中,這樣目標程序在看到自己的MessageQueue中有內容時就會執行。

InstrumentationTestRunner繼承Instrumentation部署在android設備上,Messager service也部署在android設備上用於接收消息調用合適的processerprocesser會啓運行相應appActivitiyInstrumentationTestCase2實現類的setUp方法,首先啓動目標app的入口activity,每一個test測試類都放在MessageQueue中,solo實例通過Instrumentation來真正控制目標app的行爲。整個控制過程中用例放在消息體中通過Instrumentation進行通信,而且沒完成一個testcase都會重新拉起應用跑下一個testcase

原理參閱網址:http://www.apmbe.com/robotium

http://wenku.baidu.com/link?url=kD0_XNKOoARCFEW0AB_f9wT9_A8OFS48dzR4NdPXP3xEv9MFNptEyKwMVeuI6Umo1kwfrmTHt-NX-ly369ZW3_sVSiNPLXeB0pmwAYi6e0e 


robotium如何定位控件?

search類獲取當前所有的view,然後根據類型或者文本去篩選,找到view後獲取座標,然後點擊座標。本質都是通過座標點擊。solo.clickonScreen方法,底層調用MotionEvent類。

MotionEvent,android.view中的類,Objectused to report movement (mouse, pen, finger, trackball) events

定位webview

nativedriverseleniumandroid版本,通過js腳本控制webview,在webview注入js腳本,然後調用nativedriver操作。

簽名加上包名,確定唯一app

簽名一致,兩個app進程可以進行通信。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章