(1)UI Element
Web頁面是由一系列的對象元素組成的,比如按鈕、文本框等。UI Element就代表了這些通用的網頁接口元素。UI Element類一般都是super class(超類),這個類通常會有以下的類成員:
string Name: UI Element元素的名稱。作為這個元素的唯一標識。
Driver UIDriver: 是對UI Element所使用的UI驅動實施的一個引用。針對不同的瀏覽器會選擇不同的驅動方法。
List>AttributeLists: UI Element屬性的集合,UI Driver將遍歷所有的屬性列表去定位匹配的Element。當某個元素在不同的狀態可能會有不同的屬性時,例如我們熟知的button的三態,我們就需要有多個屬性列表。UIElementAttr通常是一個集合,一般包含有屬性名稱、屬性值、是否準確匹配等。
string ContainerName: UI Element所在的容器名稱。對于Web頁面,就是指元素所在的框架的名稱。
以上只是一些基本的類成員,可以根據實際情況對這個類進行補充。通常我們會創建一些UIElement子類內置到我們的測試架構中,這此子類主要是如下的一些常見的Web控件:
TextBox Button RadioButton Link Label Image Checkbox SelectItem ComboBox DropDownMenu |
我們通常會將靜態的UI Element存儲到XML文檔,這樣做的好處是當UI Element元素發生變化時,只需要修改這個XML文檔,而不必修改我們的測試代碼。
有時候可能在TestCases運行期間,用來確定UI Element唯一性的屬性會變化,這時候我們也需要用編碼動態地去更新屬性列表,來創建這個UI Element。
(2)Browser Agent
我們設計Web測試框架最主要的目的就是能夠讓測試代碼在不同的瀏覽器,比如IE、Firefox中都能自動地、正常地運行。提供Browser Agent可以更靈活設置瀏覽器的類型,以及完成一些常規的瀏覽器功能,比如清除瀏覽器的緩存及載入頁面等。
(3)UI Driver Interface
為了實現測試代碼在不同瀏覽器都能夠自動執行這個目的,可以抽象出一個UI的驅動層。在這一層里可以設計出能在各種瀏覽器里執行的、所有可能的UI動作,而且我們設計的Test Cases也只與這一層進行交互。這樣可以將驅動的實現與Test Cases進行分離,將來Test Cases的修改不會影響到Driver Implement層代碼的實現部分,而且UI Driver Implement層的改變也會不影響到測試代碼。常見的一些方法如下:
文章來源于領測軟件測試網 http://www.kjueaiud.com/