AndroidDriver原理初步--Android自動化測試學習曆程

來源:互聯網
上載者:User

標籤:

主要講解內容及筆記:

一、AndroidDriver核心原理

對的解析:

PC端的連接埠通過adb,將android版的Remote Server的apk push到手機上,然後跟手機端的Remote Server進行通訊,手機端的Remote Server與瀏覽器進行通訊,通過WebDriver注入js指令碼到瀏覽器,完成想要完成的功能

 

基於控制項的所有的自動化架構都調用了Instrumentation,或者封裝了它,比如之前的Robotium等

 

二、AndroidDriver源碼分析

1、io.selendroid裡面的多線程

在robotium中對UI上的操作,也會涉及到這個部分,需要通過runonuithread才能進行正確調用,否則就會提示error

 

UIThreadController.java——走多線程,是為了不讓主線程卡住,在平時測試過程中是發現過類似這樣的問題,如果開發把某些處理直接放在主線程中做的話,就會很容易出現卡死的bug

 

比如說某些touch響應的操作啊,或者是keyevent事件等,都應該放在子線程中進行處理,但是開發在處理的時候:應該是通過主線程產生了子 線程,然後授權給子線程去做相關的事情,那麼在我們對程式進行相應處理的時候,比如一些mouseevent的事件時,應該要使用到handler進行回 調,對其中的原理還有一些地方不是很清晰,但是應該是:通過handler給程式發訊息,偽裝成主線程,這樣就可以有許可權對應相關操作了,否則諸如“對該 程式的操作不能由not original thread來完成”

 

2、io.selendroid.android裡面的InstrumentedKeySender

這個類有一個final的成員變數instrumentation,首先會把手機的這個Instrumentation instrumentation傳給這個成員變數

得到這個值之後,會去進行非同步作業:instrumentation.waitForIdleSync(),然後在try中做操作:sendKeySync(裡面就調用的還是monkey和monkeyrunner裡面的隱藏介面:點觸操作)

3、io.selendroid.server.handler裡面的ClearElement、ClickElement等,都在這個handler裡面

4、io.selendroid.server.modle——對資料的儲存和處理,都是放在modle裡面的,這就是mvc的m,然後v就是展示,c就是控制

5、它繼承了Selenium的東西,比如說Selenium的尋找控制項的方法,各種by啊

6、js指令碼注入

 

三、閑扯淡部分:

自己目前在用Robotium寫測試case,從查資料,怎麼搭架構,到開始寫程式用了兩天的時間,基本寫程式的話,用了一星期的時間吧,真正用起來還是很快的,感覺掌握了一些東西了,再回來看這個視頻的話,就覺得覺得很多東西很熟悉,理解起來也相對容易了

 

那麼接下來,要先把robotium的測試架構,開發過程中遇到的問題總結一下,then 看源碼,然後才能更好理解問題解決的方案,and now ,我對於多線程神馬的不是一知半解,是一點都不明白,要試著寫寫啊,java的程式雖然說很快上手,可以寫,但是覺得還是需要把最基本的java的知識搞 清楚,什麼反射回調之類的,還有interface什麼的,加油,加油!!不要害怕,一點一點做,就會越來越棒的!!!!

 

網易雲課堂:http://study.163.com/course/courseMain.htm?courseId=712011

金陽光測試

新浪微博:金陽光woody

         

          網站地址

1、百度搜:金陽光測試

2、官網:www.goldensunshine.cc

 

 

公眾號

AndroidDriver原理初步--Android自動化測試學習曆程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.