透析QTP自動化測試框架SAFFRON

發表于:2009-05-25來源:作者:點擊數: 標簽:自動化框架qtpQTPSAFFRON
1、為什么要使用框架? 框架是一組自動化 測試 的規范、 測試腳本 的基礎代碼,以及測試思想、慣例的集合??捎糜跍p少冗余代碼、提高代碼生產率、提高代碼重用性和可維護性。例如QTestWare就是 QTP 自動化 測試框架 中的一類。 2、SAFFRON簡介 SAFFRON是針對

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("miclearcase/" target="_blank" >cclass:=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函數中還進行框架其它方面的初始化。

原文轉自:http://www.anti-gravitydesign.com

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