透析QTP自動化測試框架SAFFRON(5)

發表于:2014-11-25來源:uml.org.cn作者:陳能技點擊數: 標簽:
Web頁面測試的最后一個步驟一般都是關閉瀏覽器,在SAFFRON中,也把這個過程封裝成了一個名為CloseBrowsers的函數,該函數的定義如下: close all opened browse

Web頁面測試的最后一個步驟一般都是關閉瀏覽器,在SAFFRON中,也把這個過程封裝成了一個名為“CloseBrowsers”的函數,該函數的定義如下:
' close all opened browsers
Public Function CloseBrowsers
If Browser("micclass:=Browser").Exist (0) Then
Browser("micclass:=Browser").Close
End If
While Browser("micclass:=Browser", "index:=1").Exist (0)
Browser("index:=1").Close
Wend
If Browser("micclass:=Browser").Exist (0) Then
Browser("micclass:=Browser").Close
End If
End Function

CloseBrowsers函數會把當前所有打開的瀏覽器都關閉,腳本中采用描述性編程的方式獲取所有對象類型為“Browser”的測試對象,然后循環逐個關閉所有這種類型的測試對象。

5、對SAFFRON框架進行擴展

SAFFRON是一個基本的框架,它封裝了瀏覽器的相關測試操作、封裝了一些基本對象的測試操作,例如Link、 WebButton、WebEdit、WebList等控件,可用于基本的WEB頁面的測試,并且簡化了測試腳本的編寫,可以讓代碼的可讀性和可維護性得到增強。

但是SAFFRON僅僅是一個基礎框架,我們還需要進一步地對其擴展才能應用到實際的WEB自動化測試項目中去,例如擴展對更多的控件的支持。下面是一個對Activate函數擴展Image對象的點擊操作的過程:

(1)首先打開SAFFRON框架的VBS文件,找到開頭的變量定義處,添加Image對象,讓框架可以識別和支持Image對象:
' 擴展對Image對象的支持
objects = "Link|WebButton|WebList|WebEdit|Image"
objectsDescription = "micclass:=Link|micclass:=WebButton|micclass:=WebList|micclass:=WebEdit|micclass:=Image"

(2)修改Activate方法,添加對Image對象的Click操作的支持,腳本修改成如下所示:
' Activates an object based upon its object type
' objtype - the type of object should be limited to values in the object array
' text - identifying text for the control - for a link, it's the text of the link
Public Function Activate (objtype, text)
localDesc = ""
If thirdlevel <> "" Then
localDesc = GenerateDescription(level(2))
Else
localDesc = GenerateDescription(level(1))
End If

AutoSync()

Select Case objtype
Case "Link"
Execute localDesc & GenerateObjectDescription("Link","innertext:=" & text) & "Click"
Report micPass, "Link Activation", "The Link " & Quote(text) & " was clicked."
Case "WebButton"
Execute localDesc & GenerateObjectDescription("WebButton", "value:=" & text) & "Click"
Report micPass, "WebButton Activation", "The WebButton " & Quote(text) & " was clicked."
' 擴展對Image類型的按鈕的支持
Case "Image"
Execute localDesc & GenerateObjectDescription("Image", "alt:=" & text) & "Click"
Report micPass, "ImageButton Activation", "The ImageButton " & Quote(text) & " was clicked."
End Select
End Function

(3)調試和測試修改后的腳本,例如采用下面的腳本來看對Activate函數的擴展是否生效:
' 啟動瀏覽器
Launch "website","http://127.0.0.1:1080"
' 導航到“http://127.0.0.1:1080/WebTours”
BrowseTo "http://127.0.0.1:1080/WebTours/"

' 輸入用戶名
EnterTextIn "username","chennengji"
' 輸入密碼
EnterTextIn "password","123"

' 單擊Login按鈕
Activate "Image","Login"

' 單擊"Flights"按鈕
Browser("Web Tours").Page("Web Tours").Frame("navbar").Image("Search Flights Button").Click

' 獲取航班起始城市
DepartureCity = GetTextFrom( "WebList","depart")
' 獲取航班終點城市
ArrivalCity = GetTextFrom( "WebList","arrive")
' 獲取乘客數量
PassengerNumber = GetTextFrom( "WebEdit","numPassengers")

' 選擇航班起始城市為"San Francisco"
SelectFromList "depart","San Francisco"

If Verify ("Link","administration")= False then
Reporter.ReportEvent micFail,"檢查鏈接","鏈接不存在"
Else
' 點擊名為“administration”的鏈接
Activate "Link","administration"
End IF

腳本的測試結果如圖所示:

 

原文轉自:http://www.uml.org.cn/Test/200810108.asp

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97