《軟體自動化測試成功之道》節選3 - DOM與IE Developer ToolBar

TIB發表於2010-04-30

《軟體自動化測試成功之道》節選3 - DOM與IE Developer ToolBar

 

 

 

 

如果自動化測試工程師僅僅滿足於掌握測試工具的使用,是遠遠不足以解決自動化測試過程中所碰到的種種問題的,下面舉個簡單的例子:

在某個基於WEB的自動化測試專案中,我們發現需要通過判斷Image測試物件的屬性來判斷某個分組是否處於展開狀態,如圖2.4所示。

 

 

在這種情況下,主要要看展開和摺疊的時候,物件的屬性有沒有什麼變化,不一定是Image有變化,還可以看看前面的小圖示是否有變化。我們可以找開發人員瞭解一下展開和摺疊時,究竟有哪些屬性發生了變化,但是這無疑會浪費很多寶貴的時間,我們完全可以安裝一個小巧的輔助工具IE Developer ToolBar來檢視頁面的DOM屬性。

 IE Developer ToolBar是一個IE外掛,安裝後可以在瀏覽器中選擇“檢視->瀏覽器欄->IE Developer ToolBar”開啟,可以看到頁面所有物件的DOM屬性。下面以126.com中的“郵箱服務”(如圖2.5所示)為例解釋一下這個分析和解決問題的過程:

 

 

 

開啟IE Developer ToolBar,我們可以看到“郵箱服務”前面的小圖示在DOM模型樹中的位置,如圖2.6所示:

 

 

 

 

可以看到小圖示的“class”屬性是“clsFd”,“title”屬性為“摺疊”,由此可以推測:依據title屬性可以判斷當前是否處於展開狀態,我們可以改變介面上的狀態,再次用IE Developer ToolBar檢視和驗證。

在此例中,如果我們依賴QTP的錄製過程生成的物件庫(Object Repository),會在回放時發生找不到測試物件的錯誤,這是因為QTP沒有正確地把“郵箱服務”前面的小圖示物件放到合適的位置中,我們必須手工新增測試物件,調整測試物件在“Test Objects”中的位置,如圖2.7所示:

 

 

 

 

接下來,在QTP的專家檢視中編輯如下所示的指令碼:

Dim obj

Set obj =Browser("網易電子郵箱 - 逍遙3.0Beta").Page("網易電子郵箱 - 逍遙3.0Beta").Frame("index").WebElement("郵箱服務").WebElement("WebElement")

'Msgbox obj.Object.title

If obj.Object.title = "摺疊" then

         obj.Click

else

         msgbox "已經處於摺疊狀態"

end if

執行上述指令碼,測試結果如圖2.8所示:

 

 

 

由此可見,僅僅掌握測試工具的使用方法,沒有深入理解測試工具背後的原理,以及被測試物件的核心內容和工作機制的話,是很難解決一些在自動化測試過程中碰到的實際問題的。同時,在本例中,我們還可以看到,一些輔助工具(例如測試WEB應用程式時,善於使用IE Developer ToolBar之類的DOM分析工具)可以有效幫助我們解決某些問題。

節選自《軟體自動化測試成功之道》http://www.china-pub.com/196509

相關文章