乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      ?。?!Ruby應(yīng)用httpwatch進行前端頁面自動化

       看見就非常 2015-09-18

      Ruby應(yīng)用httpwatch進行前端頁面自動化

      HttpWatch概述

      HttpWatch是IE和Firefox瀏覽器上的一款插件工具,用來捕獲瀏覽過程中所產(chǎn)生的數(shù)據(jù)信息,并記錄其相關(guān)日志文件。雖然HttpWatch 能通過手動來控制運行,但很多時候為了提高效率,對于一些重復(fù)執(zhí)行的任務(wù),比如性能測試需要自動化來完成,這樣就可以使用HttpWatch來配合自動化 測試性能來自動獲取其相關(guān)數(shù)據(jù)信息,從而使得HttpWatch也能自動化進行操作。因此為了更好的配合自動化測試,HttpWatch插件專門提供自動 化接口類程序,以便外部程序來自動化獲取其已經(jīng)存在的數(shù)據(jù)信息。HttpWatch中提供了大約三十種以上的自動化接口,但只有四個主要的類用于控制 HttpWatch插件。

      下圖就是描述了這個四個類與瀏覽器之間的關(guān)系:

      四個主要的自動化接口類分別如下描述:

      控制類(Controller Class)

      HttpWatch的控制出發(fā)點就是控制類,一個自動化客戶端使用它來創(chuàng)建一個HttpWatch插件實例,或者是打開一個已經(jīng)存在的實例文件。

       

      插件類(Plugin Class)

      HttpWatch分別為IE和Firefox提供了插件類,它主要是針對Http協(xié)議交互提供啟動和停止方法去控制 HttpWatch的錄制功能,另外還提供了一些方法和屬性去管理和配置自動化錄制方式。其中插件類中的“GotoURL”方法可以用于重定向瀏覽任何指 定的URL地址。另外一些屬性則是為了說明客戶端中哪些網(wǎng)頁是否已經(jīng)加載完成,哪些請求是否是當(dāng)前的錄制請求。日志中的屬性信息可以說明錄制請求是否已經(jīng) 達到錄制的標準。

       

      日志類(Log Class)

      通過插件去訪問日志對象,獲取日志信息,這些日志信息就是HttpWatch錄制過程記錄的請求和響應(yīng)信息。日志類提供了許多 屬性和方法,并且允許對這些錄制的數(shù)據(jù)信息進行檢索和保存,或者以多種格式導(dǎo)出等等。另外,可以通過這個控制類的一個“OpenLog”方法打開一個日志 文件,并且返回這個日志文件的相應(yīng)的說明信息,這個說明信息包括的就是錄制過中的請求和響應(yīng)文件信息。

       

      屬性類(Entry Class)

      每個日志文件都包含一個屬性列表,且這個屬性列表中包括詳細的HTTP交互信息。這些內(nèi)容具體包括請求的資源信息和一些返回的信息。這個請求和響應(yīng)屬性信息提供了訪問頭文件和Cookies文件,這些信息都是在與服務(wù)器發(fā)生交互過程中產(chǎn)生的。

      Ruby自動化控制HttpWatch

      首先,在httpwatch中調(diào)用Ruby,必須要安裝ruby工具包

      其次通過Ruby去訪問httpwatch需要調(diào)用ruby的相關(guān)庫文件,httpwatch自動化庫中已經(jīng)包含了一個com組建,為了使用ruby去訪問它就需要引入“win32ole”庫文件,通常在代碼中添加以下聲明即可:

      Require ‘win32ole’

      第三,關(guān)于與httpwatch插件的交互

      需要先創(chuàng)建一個控制類,通過控制類來創(chuàng)建它的實例。通過httpwatch接口直接創(chuàng)建控制類如下:

      controller = WIN32OLE.new('HttpWatch.Controller')

      接下來就是需要去創(chuàng)建一個瀏覽器的實例對象,這個瀏覽器的實例對象包括IE和Firefox兩種,且分別對這兩種類型瀏覽器都 給予支持。而這兩種對象都有兩個方法為:New和Attach。這個New方法是用來創(chuàng)建一個新的實例,這個新的實例類型必須與這個瀏覽器對象中插件類型 想一致。而Attach方法則表示可以創(chuàng)建一個新的實例并且可以嵌入已經(jīng)創(chuàng)建過的另外一些組件。兩種方法均返回的是httpwatch插件對象。

      下面這段代碼表示創(chuàng)建一個新的IE實例,并嵌入了httpwatch插件組件:

      controller = WIN32OLE.new('HttpWatch.Controller')

      plugin = controller.IE.New()

      關(guān)于Firefox的新實例和組件如下:

      controller = WIN32OLE.new('HttpWatch.Controller')

      plugin = controller.Firefox.New()

      關(guān)于Attach方法在IE和Firefox瀏覽器實例中使用是不同的,IE實例需要依賴IE IWebBrowser2接口,如下所示代碼段:

      ieBrowser = WIN32OLE.new('InternetExplorer.Application')

      ieBrowser.Visible = true    # Required to see the new window

      control = WIN32OLE.new('HttpWatch.Controller')

      plugin = controller.IE.Attach(ieBrowser)

      相比IE,F(xiàn)irefox需要配置文件名才能運行實例,如下:

      controller = WIN32OLE.new('HttpWatch.Controller')

      plugin = controller.Firefox.Attach('FirefoxProfileName')

      所有的返回對象都是插件對象類型,且能被控制類所調(diào)用。

      錄制

      首先你的瀏覽器實例中必須嵌入HttpWatch插件,這個時候你的應(yīng)用程序?qū)刂祁惡筒寮?象。一般情況下,我們在使用httpwatch進行錄制之前需要配置很多功能,此時說到是過濾器,過濾器一般用于精確查找我們想要的信息,從而去掉那些不 需要的信息。然后一般在沒有特定需求和目標的時候,將默認關(guān)閉過濾器設(shè)置。代碼段如下:

      plugin.Log.EnableFilter(false)

      在錄制之前需要清空httpwatch的日志信息和瀏覽器的緩存信息。代碼段如下:

      plugin.Clear()

      接下來我們可以開始錄制了,代碼段如下:

      plugin.Record()

      當(dāng)頁面發(fā)生加載產(chǎn)生http協(xié)議流量信息時,此時錄制機制才會記錄這些過程。關(guān)于如何驅(qū)動瀏覽器進行頁面加載,有如下三種方法:

      1、通過瀏覽器自身的接口來驅(qū)動,如IE中的IWebBrowser2

      2、通過設(shè)計框架來驅(qū)動,如Watir、WatiN等

      3、調(diào)用插件對象自身的方法”GotoURL”

      通常我們使用第三中方法,因為它是插件的內(nèi)置方法,可以方便測試網(wǎng)頁加載的正確性和度量頁面的性能。而且該方法可以很好的控制由于頁面加載而導(dǎo)致的連接超時等問題,如下代碼段:

      myUrl = 'http://www.'

      plugin.GotoUrl( myUrl )

      control.Wait( plugin, -1 ) # don't return until the page loads

      錄制完頁面請求過程之后就需要停止錄制,就需要調(diào)用插件對象的stop方法了,并且還要關(guān)閉瀏覽器,調(diào)用插件對象的CloseBrowser方法。

       Watir驅(qū)動瀏覽器

      關(guān)于Watir的下載和安裝請詳細見《自動化測試框架設(shè)計理解文檔V3.0》。

      通過watir來調(diào)用httpwatch插件需要引入watir庫文件,代碼段如下:

      require 'win32ole'

      require 'watir'

      # Open the IE browser using Watir

      ie = Watir::IE.new

      # Attach HttpWatch

      control = WIN32OLE.new('HttpWatch.Controller')

      plugin = control.Attach(ie.ie)

      # Start recording

      plugin.Record()

      保存日志文件

      當(dāng)錄制運行完之后,需要保存當(dāng)前的運行日志,代碼段如下:

      plugin.Log.Save('c:\\mylogfiles\\mylogfile.hwl')

       

       打開日志文件

      當(dāng)需要訪問日志的時候,就需要調(diào)用插件對象中的方法OpenLog,代碼段如下:

      # You always need to create an instance of Controller to use the HttpWatch Automation

      controller = WIN32OLE.new('HttpWatch.Controller')

      # Open the log file and keep a reference to the returned Log object

      log = controller.OpenLog("c:\\temp\\test.hwl")

      # Access the data in the log file using properties of the log object

      printf "The log file contains %d entries", log.Entries.Count

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多