- 相關(guān)推薦
Web自動(dòng)化測(cè)試框架 架構(gòu)的設(shè)計(jì)
【生生不息原創(chuàng)】自己動(dòng)手寫Web自動(dòng)化測(cè)試框架7 - 框架架構(gòu)的設(shè)計(jì)
上次我們分析了什么是我們想要的自動(dòng)化測(cè)試框架,這一次我們基于上一次的分析,來設(shè)計(jì)我們的自動(dòng)化測(cè)試框架架構(gòu)。
首先,我們需要一個(gè)類,去做幫助我們處理和IE相關(guān)的事情,幫助我們操縱IE,打開和關(guān)閉IE。然后,我們需要一組的類,來描述網(wǎng)頁上的元素,比如TextBox和Button,去模擬他們的事件,去取得他們的狀態(tài)?傮w來說就是封裝這些元素。
除此之外,我們還需要一些輔助的類來幫助我們做一些工作。
接下來我們就先去分析幫助我們操縱IE的類應(yīng)該有那些功能。所以我們把這個(gè)類命名為WebBrowser。參考附帶的WebBrowser.cs文件。
首先,我們需要一些內(nèi)部的成員和輔助類,我們打開的IE進(jìn)程會(huì)用SHDocVw.InternetExplorer類來接受,我們可以把這個(gè)變量存在整個(gè)類的私有變量去。還有我們其實(shí)要取出的是這個(gè)網(wǎng)頁的HTMLDocument類,以供以后來使用。這里我們直接寫成了internal,成員變量,其實(shí)可以封裝成一個(gè)屬性,看大家的用法了。除了這些,我們還需要一個(gè)Timer類,這個(gè)類幫助我們完成一些計(jì)時(shí)的工作。見附帶的timer.cs文件。
其次,打開IE進(jìn)程這樣的事情應(yīng)該是由這個(gè)類來做的,由于這次對(duì)WebBrowser的要求不高,我就在構(gòu)造函數(shù)里面講IE進(jìn)程初始化好,具體如何處理這些請(qǐng)參見《【生生不息原創(chuàng)】自己動(dòng)手寫Web自動(dòng)化測(cè)試框架2 - 打開和操縱IE》。我們給這個(gè)類構(gòu)造函數(shù)提供了一個(gè)帶有string參數(shù)的方法,目的是讓用戶可以方便的傳入U(xiǎn)RL而打開瀏覽器并且轉(zhuǎn)到我們要的頁面去。當(dāng)我們沒有參數(shù)給構(gòu)造函數(shù)時(shí),用戶就會(huì)得到一個(gè)空的頁面。
再次,我們需要一個(gè)NavigateTo函數(shù),來操縱瀏覽器轉(zhuǎn)到某一個(gè)地方去。這個(gè)函數(shù)不多說,就是我們以前的內(nèi)容。
最后,我們?cè)谶@里添加了一個(gè)DoWait的函數(shù),這個(gè)函數(shù)的主要目的是完成我們《【生生不息原創(chuàng)】自己動(dòng)手寫Web自動(dòng)化測(cè)試框架5 - 判斷瀏覽器是否加載完成》里面所討論的等待瀏覽器加載完成。DoWait放在這里的原因是我們需要在幾個(gè)地方判斷頁面加載完成:瀏覽器瀏覽到了新的頁面、用戶點(diǎn)擊了某些按鈕或者鏈接、或者甚至用戶改變了控件的狀態(tài),導(dǎo)致頁面回刷,這幾個(gè)地方會(huì)分別被WebBrowser和以后的Web控件類所使用,所以我們把這個(gè)DoWait放在WebBrowser里面,以后的Web控件回去引用WebBrowser類的這個(gè)方法來判斷瀏覽器是否完成加載。
Notice注意,這里把DoWait的代碼寫在WebBrowser里面是基于我們以上的頁面沒有Ajax和框架的假設(shè)做出的,如果頁面可能有Ajax,我們就不可能簡(jiǎn)簡(jiǎn)單單的用這個(gè)DoWait去等待加載完成。
我們以后會(huì)有對(duì)目前框架的改進(jìn)文章,這些文章會(huì)討論這些問題。
這樣我們的WebBrowser就大概寫完了。下一次我們會(huì)講解一組類來實(shí)現(xiàn)Web控件。
[Web自動(dòng)化測(cè)試框架 架構(gòu)的設(shè)計(jì)]相關(guān)文章:
【W(wǎng)eb自動(dòng)化測(cè)試框架 架構(gòu)的設(shè)計(jì)】相關(guān)文章:
關(guān)于城軌嵌入式軟件自動(dòng)化測(cè)試框架的設(shè)計(jì)和實(shí)現(xiàn)的論文07-03
[精選]系統(tǒng)架構(gòu)設(shè)計(jì)師的職責(zé)07-14
系統(tǒng)架構(gòu)設(shè)計(jì)師的職責(zé)11-29
[轉(zhuǎn)]網(wǎng)頁寬度Web頁面設(shè)計(jì)規(guī)范07-10
基于Web的網(wǎng)絡(luò)考試系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)論文07-03