国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
!??!Ruby應(yīng)用httpwatch進(jìn)行前端頁(yè)面自動(dòng)化

Ruby應(yīng)用httpwatch進(jìn)行前端頁(yè)面自動(dòng)化

HttpWatch概述

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

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

四個(gè)主要的自動(dòng)化接口類分別如下描述:

控制類(Controller Class)

HttpWatch的控制出發(fā)點(diǎn)就是控制類,一個(gè)自動(dòng)化客戶端使用它來(lái)創(chuàng)建一個(gè)HttpWatch插件實(shí)例,或者是打開(kāi)一個(gè)已經(jīng)存在的實(shí)例文件。

 

插件類(Plugin Class)

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

 

日志類(Log Class)

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

 

屬性類(Entry Class)

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

Ruby自動(dòng)化控制HttpWatch

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

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

Require ‘win32ole’

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

需要先創(chuàng)建一個(gè)控制類,通過(guò)控制類來(lái)創(chuàng)建它的實(shí)例。通過(guò)httpwatch接口直接創(chuàng)建控制類如下:

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

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

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

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

plugin = controller.IE.New()

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

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

plugin = controller.Firefox.New()

關(guān)于Attach方法在IE和Firefox瀏覽器實(shí)例中使用是不同的,IE實(shí)例需要依賴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需要配置文件名才能運(yùn)行實(shí)例,如下:

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

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

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

錄制

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

plugin.Log.EnableFilter(false)

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

plugin.Clear()

接下來(lái)我們可以開(kāi)始錄制了,代碼段如下:

plugin.Record()

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

1、通過(guò)瀏覽器自身的接口來(lái)驅(qū)動(dòng),如IE中的IWebBrowser2

2、通過(guò)設(shè)計(jì)框架來(lái)驅(qū)動(dòng),如Watir、WatiN等

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

通常我們使用第三中方法,因?yàn)樗遣寮膬?nèi)置方法,可以方便測(cè)試網(wǎng)頁(yè)加載的正確性和度量頁(yè)面的性能。而且該方法可以很好的控制由于頁(yè)面加載而導(dǎo)致的連接超時(shí)等問(wèn)題,如下代碼段:

myUrl = 'http://www.example.com'

plugin.GotoUrl( myUrl )

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

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

 Watir驅(qū)動(dòng)瀏覽器

關(guān)于Watir的下載和安裝請(qǐng)?jiān)敿?xì)見(jiàn)《自動(dòng)化測(cè)試框架設(shè)計(jì)理解文檔V3.0》。

通過(guò)watir來(lái)調(diào)用httpwatch插件需要引入watir庫(kù)文件,代碼段如下:

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)錄制運(yùn)行完之后,需要保存當(dāng)前的運(yùn)行日志,代碼段如下:

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

 

 打開(kāi)日志文件

當(dāng)需要訪問(wèn)日志的時(shí)候,就需要調(diào)用插件對(duì)象中的方法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

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Watir、Selenium2、QTP區(qū)別
軟件測(cè)試(網(wǎng)頁(yè)自動(dòng)化測(cè)試實(shí)現(xiàn))
autoit3學(xué)習(xí)筆記
性能測(cè)試輔助工具
用Kibana和logstash快速搭建實(shí)時(shí)日志查詢、收集與分析系統(tǒng)
Eclipse RCP中的日志
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服