久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

Ajax- 分析JsUnit 之使用JsUnit服務(wù)器

來自站長(zhǎng)百科
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

導(dǎo)航: 上一頁(yè) | ASP | PHP | JSP | HTML | CSS | XHTML | aJAX | Ruby | JAVA | XML | Python | ColdFusion

雖然向測(cè)試運(yùn)行工具傳遞各種參數(shù)可以較容易地完成自動(dòng)化測(cè)試,但是你很快就會(huì)厭倦這樣以常規(guī)方式手工地運(yùn)行測(cè)試,特別是要考慮到多個(gè)操作系統(tǒng)上的多個(gè)瀏覽器時(shí),更是如此。你可能想跟蹤以前運(yùn)行的結(jié)果,以便進(jìn)行審計(jì)或完成質(zhì)量保證。為解決這些問題,JsUnit服務(wù)器會(huì)提供測(cè)試結(jié)果的XML日志,從JUnit或Ant腳本運(yùn)行測(cè)試,以及在遠(yuǎn)程主機(jī)上從JUnit或Ant腳本運(yùn)行測(cè)試。

利用JsUnit服務(wù)器,你只需點(diǎn)擊一個(gè)按鈕,就能基于你的操作系統(tǒng)/瀏覽器運(yùn)行整個(gè)測(cè)試集。另外,只需在一個(gè)重要步驟中把JavaScript的測(cè)試增加到Ant腳本中,就能使之成為構(gòu)建過程的一部分。JsUnit服務(wù)器包括一組Java servlet,它們?cè)诳汕度氲腏etty開源Web服務(wù)器上運(yùn)行,這樣你就無需在打算測(cè)試的每個(gè)主機(jī)上都配置一個(gè)Web服務(wù)器/servlet容器。一旦完成配置,這個(gè)過程就很簡(jiǎn)單了,只是按下一個(gè)按鈕而已!

配置服務(wù)器

在利用JsUnit服務(wù)器之前,需要先進(jìn)行配置。為此可以修改build.xml文件,這個(gè)文件在jsunit文件夾中。這個(gè)文件的最前面有一組屬性,可以修改這些屬性來滿足你的需要。這些變量都很好理解,詳細(xì)內(nèi)容請(qǐng)見表6-2。

表6-2 
服務(wù)器配置

環(huán)境變量                內(nèi)  容
browserFileNames 你想測(cè)試的一組瀏覽器可執(zhí)行文件,這是一個(gè)完全路徑列表,各個(gè)路徑之間用逗號(hào)分隔
url 測(cè)試運(yùn)行工具的URL,包括適當(dāng)?shù)牟樵兇畞碜詣?dòng)運(yùn)行適當(dāng)?shù)臏y(cè)試集
port 運(yùn)行JsUnit服務(wù)器的端口,如果沒有這個(gè)變量,會(huì)就使用端口8080
resourceBase 定義JsUnit服務(wù)器的文檔根。如果是空值(一般設(shè)置),就會(huì)使用jsunit安裝目錄
logsdirectory 運(yùn)行測(cè)試的結(jié)果會(huì)寫到這個(gè)目錄。如果是空值,則默認(rèn)為jsunit/logs
remoteMachineURLs 指定你想在哪些遠(yuǎn)程主機(jī)上運(yùn)行測(cè)試,即這些遠(yuǎn)程主機(jī)的URL列表,各URL之間用逗號(hào)分隔。這些遠(yuǎn)程主機(jī)需要已經(jīng)安裝配置了一個(gè)JsUnit服務(wù)器

一旦配置了測(cè)試集(或測(cè)試頁(yè))和瀏覽器組合,只需運(yùn)行standalone_test目標(biāo)。在NetBeans開發(fā)環(huán)境中,可以得到如圖6-25所示的結(jié)果。

Image0251.jpg

圖6-25 從NetBeans運(yùn)行standalone_test目標(biāo)

運(yùn)行這個(gè)目標(biāo),會(huì)在你指定的端口上啟動(dòng)Jetty服務(wù)器,而一旦服務(wù)器開始運(yùn)行,就會(huì)啟動(dòng)你指定的瀏覽器,而且會(huì)運(yùn)行你配置的測(cè)試。當(dāng)然,不必特別注意結(jié)果,如果出現(xiàn)一個(gè)失敗或錯(cuò)誤,它會(huì)顯示在Ant任務(wù)的輸出中,指出任務(wù)失敗。


testPageWithError.html:testValidArgs had an error:
Error message is: "TypeError: document.getElementById("arg1") has no properties"
Stack trace follows:
addNumbers()@file:////Users/nate/projects/chapter6/web/testPageWithError.html:21
testValidArgs()@file:////Users/nate/projects/chapter6/web/testPageWithError.html:16
("testValidArgs")@file:///Users/nate/projects/chapter6/web/jsunit/
app/jsUnitTestManager.js:359
("testValidArgs")@file:///Users/nate/projects/chapter6/web/jsunit/
app/jsUnitTestManager.js:359 ()@file:///Users/nate/projects/chapter6/web/jsunit/
app/jsUnitTestManager.js:166 ("file:////Users/nate/projects/chapter6/web/
testPageWithError.html")
@file:///Users/nate/projects/chapter6/web/jsunit/app/jsUnitTestManager.js:104
()@file:///Users/nate/projects/chapter6/web/jsunit/app/jsUnitTestManager.js:338
@file:///Users/nate/projects/chapter6/web/jsunit/app/jsUnitTestManager.js:335

假設(shè)在查詢串上增加了submitResults=true,還可以查看日志文件來檢查結(jié)果。日志文件采用JUnit結(jié)果同樣的XML格式,所以像自動(dòng)化JUnit測(cè)試集一樣,可以用同樣的轉(zhuǎn)換很容易地加以處理??梢灾苯硬榭碭ML文件,也可以使用JsUnit內(nèi)置的“displayer”servlet。

要使用“displayer”servlet,首先確保JsUnit服務(wù)器已經(jīng)運(yùn)行。如果未運(yùn)行,只需運(yùn)行start_server目標(biāo)。一旦JsUnit服務(wù)器開始運(yùn)行,打開你最喜歡的瀏覽器,指向localhost:8080/jsunit/displayer?id=×××,這里的×××是你想查看的結(jié)果日志的ID。你會(huì)看到測(cè)試運(yùn)行的結(jié)果,如圖6-26所示。

Image0261.jpg

圖6-26 查看測(cè)試運(yùn)行的結(jié)果

在遠(yuǎn)程主機(jī)上運(yùn)行測(cè)試

如果想在分布式主機(jī)上運(yùn)行測(cè)試集,需要使用distributed_test Ant任務(wù)。當(dāng)然,必須在要用的每個(gè)遠(yuǎn)程主機(jī)上配置一個(gè)JsUnit服務(wù)器,并配置適當(dāng)?shù)臏y(cè)試和瀏覽器。運(yùn)行distributed_test Ant任務(wù)會(huì)調(diào)用一個(gè)JUnit測(cè)試(net.jsunit.DistributedTest),它會(huì)進(jìn)一步在配置中提供的每個(gè)遠(yuǎn)程主機(jī)上調(diào)用一個(gè)servlet。這個(gè)servlet運(yùn)行的基于JUnit的測(cè)試與本地運(yùn)行的測(cè)試(net.jsunit.StandaloneTest)是一樣的。然后,會(huì)在遠(yuǎn)程主機(jī)上配置的瀏覽器中運(yùn)行測(cè)試,結(jié)果發(fā)送回發(fā)起者。