透析QTP自動化測試框架SAFFRON

發表于:2014-11-25來源:uml.org.cn作者:陳能技點擊數: 標簽:
為什么要使用框架?框架是一組自動化測試的規范、測試腳本的基礎代碼,以及測試思想、慣例的集合??捎糜跍p少冗余代碼、提高代碼生產率、提高代碼重用性和可維護性。例如

1、為什么要使用框架?

框架是一組自動化測試的規范、測試腳本的基礎代碼,以及測試思想、慣例的集合??捎糜跍p少冗余代碼、提高代碼生產率、提高代碼重用性和可維護性。例如QTestWare就是QTP自動化測試框架中的一類。

2、SAFFRON簡介

SAFFRON是針對Web開發的一個簡單的QTP測試框架原型,是Adam Gensler于06年寫的,需要QTP 9.1版本以上。完整的SAFFRON腳本代碼可到以下地址獲?。篽ttp://www.itestware.com/ctest /index.php?option=com_content&view=article&id=62:webqtp-saffron&catid=35:testing_is_believing

3、如何使用SAFFRON?

SAFFRON框架以外部VBS文件的形式出現,因此使用方法比較簡單,直接在測試腳本中以資源形式導入即可使用,如圖所示:

導入后,可在“Available Keywords”視圖中看到SAFFRON的所有函數,如圖所示:

選中某個函數,拖拽到專家視圖的編輯器中,如圖所示:

后接一個URL地址,例如“http://www.itestware.com”,即可使用SAFFRON框架中的BrowseTo函數導航到指定的URL地址,如下腳本所示:
'BrowseTo(url)
BrowseTo "http://www.itestware.com"

4、SAFFRON框架代碼剖析

為了深入了解SAFFRON,以及框架的使用方法,下面我們將分別介紹SAFFRON中的主要函數,對SAFFRON代碼進行深入剖析。

4.1 導航到指定URL

SAFFRON使用名為BrowseTo函數來負責導航到指定的URL,如果瀏覽器尚未啟動,則先調用函數Launch來打開瀏覽器。BrowseTo函數的定義如下所示:
Public Function BrowseTo (url)
thirdlevel = ""
Report micPass, "Navigate to URL", "Navigating to URL: " & Quote(url)
If initialized Then
Execute GenerateDescription("Browser") & "Navigate " & Quote(url)
Else
Launch "website", url
End If
Reporter.Filter = rfDisableAll
End Function

在腳本中,會判斷是否初始化了瀏覽器,如果有則執行導航動作,導航到指定的URL。導航動作是執行這行腳本來完成的:
Execute GenerateDescription("Browser") & "Navigate " & Quote(url)

Execute是一個用于執行指定VBScript腳本語句的函數,GenerateDescription函數的定義如下所示:
' Generates a generic description based up on the "level" viarable
' levelstr - will be one of the values that is in the level array
' returns - string representative of the object hierarchy
Public Function GenerateDescription (levelstr)
l = IndexOf(level, levelstr)
If l >=0 Then
fdesc = level(0) & "(" & Quote(desc(0)) & ")."
If l >= 1 Then
fdesc = fdesc + level(1) & "(" & Quote(desc(1)) & ")."
If 2 >= l Then
If thirdlevel <> "" Then
fdesc = fdesc + level(2) & "(" & Quote(desc(2)) & "," & Quote("name:=" & thirdlevel) & ")."
End If
End If
End If
End If
GenerateDescription = fdesc
End Function

4.2 返回測試對象的描述

GenerateDescription函數用于返回對象的描述性語句,例如,指定Browser,則返回如下語句:
"Browser("micclass:=Browser")."

該語句代表了當前瀏覽器對象,并且后面加了個點號,這是為了方便后接"Navigate "這個瀏覽器對象的導航操作,以及指定的URL字符串,例如"http://blog.csdn.net/testing_is_believing"。在Execute時,其實執行的VBScript語句如下所示:
Browser("micclass:=Browser").Navigate "http://blog.csdn.net/testing_is_believing"

經過SAFFRON的框架封裝后,則只需要使用如下語句即可達到同樣的效果:
BrowseTo "http://blog.csdn.net/testing_is_believing"

4.3 啟動瀏覽器

SAFFRON使用名為BrowseTo函數來負責導航到指定的URL,但是如果瀏覽器未啟動,則會先調用函數Launch來打開瀏覽器。Launch函數的定義如下所示:
prepares the framework for usage, and configures all internal framework
' variables and structures
' apptype - used to launch different types of applications based
' upon different technologies -- currently there is only web
' val - string that represents what to launch
' returns - always returns true
Public Function Launch (apptype, val)
If "website" = apptype Then
thirdlevel = ""
Report micPass, "Initialize", "Initializing Framework"
level = split(webLevels, leveldelimiter, -1, 1)
desc = split(webLevelsDesc, leveldescdelimiter, -1, 1)
object = split(objects, objectdelimiter, -1, 1)
objectDescription = split(objectsDescription, objectsDescriptiondelimiter, -1, 1)
CloseBrowsers
Set IE = CreateObject("InternetExplorer.Application")
IE.visible = true
IE.Navigate val
While IE.Busy
wait 1
Wend
End If
initialized = true
Launch = true
End Function

可看到腳本中創建了IE的COM對象,然后設置IE的Visible屬性設置為Tue,讓瀏覽器可見,然后調用IE對象的Navigate方法導航到指定的URL。除了創建IE的COM對象外,在Launch函數中還進行框架其它方面的初始化。

4.4 給指定字符串前后加雙引號

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

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