国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于AJAX技術(shù)的應(yīng)用系統(tǒng)的測(cè)試

2014-09-17 14:40:02黃華峰黃華林
電腦知識(shí)與技術(shù) 2014年22期
關(guān)鍵詞:應(yīng)用系統(tǒng)測(cè)試

黃華峰 黃華林

摘要:隨著互聯(lián)網(wǎng)應(yīng)用的不斷普及,各類基于網(wǎng)絡(luò)的應(yīng)用系統(tǒng)的規(guī)模及復(fù)雜性也與日俱增。傳統(tǒng)的Web應(yīng)用服務(wù)結(jié)構(gòu)中服務(wù)器在響應(yīng)客戶端請(qǐng)求時(shí)返回一個(gè)新的完整的網(wǎng)頁(yè),而采用AJAX技術(shù)的web應(yīng)用服務(wù)僅返回頁(yè)面發(fā)生變化的部分。文中從AJAX技術(shù)的有關(guān)情況入手,分析了AJAX技術(shù)的工作流程和原理,以及該技術(shù)的優(yōu)點(diǎn)與缺點(diǎn),介紹了基于AJAX技術(shù)的應(yīng)用系統(tǒng)的一般測(cè)試方法。

關(guān)鍵詞:AJAX;應(yīng)用系統(tǒng);測(cè)試

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)22-5345-03

AJAX技術(shù)指的是一種創(chuàng)建交互式網(wǎng)頁(yè)的開(kāi)發(fā)技術(shù)。該技術(shù)是一種比較新型的Web應(yīng)用開(kāi)發(fā)技術(shù),采用AJAX技術(shù)可以為用戶提供最好的Web體驗(yàn)。AJAX技術(shù)是Web2.0時(shí)代的標(biāo)志性技術(shù),雖然提出的時(shí)間較晚,卻也得到廣泛的應(yīng)用和支持。在應(yīng)用AJAX技術(shù)中,很多用戶體驗(yàn)到該技術(shù)為網(wǎng)頁(yè)操作帶來(lái)的改變。眾所周知,瀏覽器的廠家和版本眾多,所采用的客戶端系統(tǒng)也有所不同,代碼兼容性有很高的要求,進(jìn)行調(diào)試比較困難。確保用戶可以更加快捷的提升操作速度的同時(shí),如何保障基于AJAX技術(shù)的Web應(yīng)用系統(tǒng)的質(zhì)量也同樣重要。

1 AJAX技術(shù)的工作原理及流程

AJAX技術(shù)的核心之一是XMLHttpRequest對(duì)象,這是一種可以支持異步請(qǐng)求的技術(shù)。換句話來(lái)說(shuō),XMLHttpRequest可以將用戶信息以異步方式發(fā)送到服務(wù)器端,并接收服務(wù)器響應(yīng)信息和數(shù)據(jù)。在建立Web應(yīng)用時(shí),AJAX為客戶端頁(yè)面的刷新提供很大的方便。例如,在電子商務(wù)系統(tǒng)中,AJAX技術(shù)可以對(duì)購(gòu)物車的物品總數(shù)進(jìn)行及時(shí)更新,不需要用戶單擊Update并等待服務(wù)器重新發(fā)送整個(gè)頁(yè)面。AJAX技術(shù)可以減少由服務(wù)器下載的數(shù)據(jù)量,從而提升應(yīng)用系統(tǒng)的性能。例如,在某個(gè)購(gòu)物車頁(yè)面中,如果對(duì)購(gòu)物車中的某項(xiàng)物品的數(shù)量進(jìn)行更新,會(huì)把整個(gè)頁(yè)面重新載入,這就要把整個(gè)頁(yè)面的數(shù)據(jù)從服務(wù)器端下載下來(lái)。若采用AJAX技術(shù)計(jì)算總數(shù)量,服務(wù)器端只返回更新后的總數(shù)量數(shù)據(jù),傳輸?shù)臄?shù)據(jù)量大大減少。采用AJAX技術(shù)可以直接對(duì)表格的數(shù)據(jù)進(jìn)行編輯,不需要用戶導(dǎo)航至新的頁(yè)面才能進(jìn)行數(shù)據(jù)編輯。如果用戶單擊了Edit,AJAX技術(shù)會(huì)把靜態(tài)的表格刷新為可進(jìn)行編輯的表格。如果用戶單擊了Done,就會(huì)發(fā)出一個(gè)AJAX請(qǐng)求實(shí)現(xiàn)更新服務(wù)器、刷新表格的效果。AJAX技術(shù)可以在無(wú)刷新的情況下更新界面,這就好比在用戶與服務(wù)器之間添加了一個(gè)中間層,確保用戶操作及服務(wù)器響應(yīng)達(dá)到異步化的目的。AJAX引擎主要負(fù)責(zé)處理、驗(yàn)證數(shù)據(jù),如果需要由服務(wù)器讀取新數(shù)據(jù)時(shí),可以讓引擎代為向服務(wù)器遞交請(qǐng)求。為了對(duì) AJAX技術(shù)的工作原理更加清晰的認(rèn)識(shí),通過(guò)圖1和圖2進(jìn)行比較。

通過(guò)比較得出,AJAX技術(shù)與傳統(tǒng)的Web開(kāi)發(fā)有所不同,AJAX沒(méi)有以靜態(tài)頁(yè)面的形式看待Web應(yīng)用。AJAX技術(shù)的Web應(yīng)用是由相對(duì)較少的頁(yè)面組合而成,這里不同頁(yè)面就如一個(gè)小型的AJAX應(yīng)用。AJAX向服務(wù)器發(fā)送出HTTP請(qǐng)求,并異步方式處理服務(wù)器響應(yīng),其采用客戶端瀏覽器XMLHttpRequest對(duì)象并對(duì)其加以初始化,運(yùn)用XMLHttpRequest對(duì)象的open和send方法對(duì)服務(wù)器發(fā)出HTTP請(qǐng)求,在其onreadyStateChange事件響應(yīng)中指定一個(gè)事件處理函數(shù)來(lái)處理XMLHttpRequest對(duì)象的執(zhí)行結(jié)果。

2 分析AJAX技術(shù)的優(yōu)點(diǎn)與缺點(diǎn)

1) AJAX技術(shù)可以在網(wǎng)頁(yè)內(nèi)部與服務(wù)器間達(dá)到通信的效果,沒(méi)有必要對(duì)整個(gè)頁(yè)面進(jìn)行刷新,不僅節(jié)省出大量的網(wǎng)絡(luò)資源,也在一定程度上減輕了服務(wù)器的負(fù)擔(dān),提升了Web應(yīng)用的響應(yīng)速率,為用戶帶來(lái)更加全新的體驗(yàn)。AJAX技術(shù)可以在網(wǎng)頁(yè)內(nèi)部與服務(wù)器進(jìn)行通信,確??梢越⒅悄芑目蛻舳丝丶1热纾航?shù)據(jù)表格、樹(shù)形控件等的復(fù)雜控件。

2) 智能化的客戶端控件可通過(guò)XMLHttpReqeust和服務(wù)器進(jìn)行通信,從而獲取相應(yīng)的數(shù)據(jù),也可以對(duì)數(shù)據(jù)進(jìn)行處理和緩存操作。智能化的客戶端控件有自己獨(dú)特的屬性、方法、及事件,確保Web編程如桌面的編程一樣具有豐富的功能。

3) AJAX技術(shù)不僅可以保障Web應(yīng)用保留自己B/S結(jié)構(gòu)的優(yōu)點(diǎn),也具備C/S結(jié)構(gòu)應(yīng)用比較強(qiáng)大的功能和用戶感受。由此可見(jiàn),AJAX技術(shù)就是Web標(biāo)準(zhǔn)和Web應(yīng)用的集合體,它在很大程度上改善了Web應(yīng)用的可用性和用戶的交互體驗(yàn),最后獲取用戶及市場(chǎng)的一致認(rèn)可。

3 AJAX應(yīng)用系統(tǒng)的測(cè)試

3.1 基于AJAX的應(yīng)用系統(tǒng)測(cè)試難點(diǎn)

1) AJAX的異步響應(yīng)的特性使得測(cè)試變得困難

傳統(tǒng)的Web應(yīng)用服務(wù)下,終端用戶習(xí)慣了點(diǎn)擊按鈕或鏈接然后等待瀏覽器載入頁(yè)面。但在動(dòng)態(tài)HTML和AJAX應(yīng)用中,終端用戶希望通過(guò)頁(yè)面進(jìn)行方便的互動(dòng),用戶界面測(cè)試就變得復(fù)雜了。加上各種基于AJAX的架構(gòu)出現(xiàn)巨大的變化,對(duì)測(cè)試人員的技能水平要求更高了。

基于AJAX技術(shù)的應(yīng)用系統(tǒng),把更多工作轉(zhuǎn)移到客戶端,其用戶界面變得越來(lái)越相似,AJAX應(yīng)用變得越來(lái)越復(fù)雜。因?yàn)锳JAX以異步方式運(yùn)行,所以測(cè)試程序沒(méi)法設(shè)定狀態(tài),需要AJAX開(kāi)發(fā)者從語(yǔ)法上分析服務(wù)端調(diào)用是如何影響性能及測(cè)試策略的。

2) JavaScript的調(diào)試也較為困難

JavaScript是AJAX應(yīng)用的基礎(chǔ),其本身就存在一些獨(dú)有的測(cè)試問(wèn)題。從某些角度看,JavaScript是一種“啰嗦”的腳本語(yǔ)言,調(diào)試起來(lái)比較困難。測(cè)試人員需要找出JavaScript引擎在什么地方出現(xiàn)問(wèn)題,然后與開(kāi)發(fā)者一起圍繞該問(wèn)題點(diǎn)進(jìn)行改進(jìn)。AJAX應(yīng)用傾向于調(diào)用JavaScript程序,并且程序的加載順序需要測(cè)試人員事先明確指定。再有,不同的瀏覽器對(duì)AJAX的處理也不盡相同,測(cè)試人員也要為此做更多的修改工作。

3) AJAX框架還會(huì)涉及其他方面的變化。

AJAX框架還會(huì)涉及其他方面的變化。例如JSON,很多AJAX架構(gòu)在AJAX中使用JSON部分取代了XML,同時(shí)提升其JavaScript對(duì)象特性。JSON數(shù)據(jù)格式比較簡(jiǎn)單,易于讀寫(xiě),易于解析,支持多種服務(wù)器端語(yǔ)言,已廣泛使用。但是,不同AJAX框架的編碼請(qǐng)求方式不盡相同,在測(cè)試AJAX應(yīng)用時(shí),測(cè)試人員需要花時(shí)間來(lái)弄清楚相應(yīng)請(qǐng)求報(bào)文的含義。

3.2 用Selenium測(cè)試AJAX應(yīng)用

1) Selenium簡(jiǎn)介

Selenium是一套較為流行的針對(duì)WEB應(yīng)用的測(cè)試工具。使用Selenium可以編寫(xiě)模擬終端用戶對(duì)Web頁(yè)面所作操作的測(cè)試腳本,設(shè)定測(cè)試用例后可以自動(dòng)地對(duì)Web 應(yīng)用執(zhí)行黑盒測(cè)試任務(wù)。Selenium可以作為瀏覽器的插件直接在瀏覽器內(nèi)執(zhí)行操作,為當(dāng)前多種主流的瀏覽器所支持。第二代Selenium測(cè)試工具功能更加強(qiáng)大,其集成了WebDriver,WebDriver可以很便捷的直接控制瀏覽器。針對(duì)不同瀏覽器,測(cè)試人員可以選定相應(yīng)的WebDriver去進(jìn)行Web應(yīng)用的測(cè)試。

2) Selenium測(cè)試AJAX應(yīng)用程序

不需要服務(wù)器一次返回完整頁(yè)面到客戶端,是AJAX 應(yīng)用程序的一大優(yōu)勢(shì)??蛻舳艘援惒椒绞较蚍?wù)器請(qǐng)求數(shù)據(jù),服務(wù)器也只按需返回變化的數(shù)據(jù),客戶端只重新渲染頁(yè)面的變化部分,提高了用戶體驗(yàn),縮短了響應(yīng)時(shí)間,相對(duì)傳統(tǒng)的Web服務(wù)有著顛覆的變化,對(duì)AJAX 應(yīng)用程序進(jìn)行測(cè)試,其過(guò)程也有較大改變。

AJAX應(yīng)用的以異步的方式執(zhí)行發(fā)出請(qǐng)求到響應(yīng)服務(wù)器回應(yīng)的一系列動(dòng)作的過(guò)程是,客戶端先向服務(wù)器發(fā)出請(qǐng)求,接著AJAX處理程序進(jìn)入等待狀態(tài),直到異步通信完成(獲得服務(wù)器回應(yīng)或出現(xiàn)異常等)。異步通訊完成后,AJAX程序?qū)⒁罁?jù)服務(wù)器的回應(yīng)數(shù)據(jù)繼續(xù)操作或是處理異常。在這個(gè)異步通信的過(guò)程中,AJAX處理程序存在等待狀態(tài),問(wèn)題是,進(jìn)行測(cè)試時(shí),這個(gè)等待狀態(tài)應(yīng)該持續(xù)多長(zhǎng)時(shí)間?

要讓客戶端有適當(dāng)?shù)牡却龝r(shí)間來(lái)獲得服務(wù)器回應(yīng),最簡(jiǎn)單最暴力的做法是在測(cè)試應(yīng)用程序中暫停一段時(shí)間,例如使用Thread.sleep(5000)或者使用selenium.wait(5000),這種做法大多時(shí)候是可行的。不過(guò),一旦遇到網(wǎng)絡(luò)擁塞,AJAX處理程序發(fā)出請(qǐng)求過(guò)了暫停時(shí)間仍沒(méi)得到服務(wù)器回應(yīng),那么測(cè)試用例就執(zhí)行失敗了。

使用Selenium過(guò)程中,要處理Web測(cè)試過(guò)程中的等待時(shí)間有幾種便捷的方案可以選用。其中一種方式是,創(chuàng)建一個(gè)WebDriverWait對(duì)象,在指定時(shí)間內(nèi)等待一個(gè)頁(yè)面元素的出現(xiàn),在WebDriverWait對(duì)象的until()函數(shù)中定義等待的退出條件。以下是使用WebDriverWait類的一段樣例代碼。WebDriverWait對(duì)象在5秒內(nèi)每隔500毫秒掃描1次頁(yè)面變化,當(dāng)出現(xiàn)指定的元素"myElementId"后結(jié)束。

4 結(jié)束語(yǔ)

在Web應(yīng)用服務(wù)中引入AJAX技術(shù)能顯著提升Web應(yīng)用服務(wù)的性能,增強(qiáng)應(yīng)用系統(tǒng)的交互性,提升用戶體驗(yàn),同時(shí)系統(tǒng)的測(cè)試難度也增大了。該文以AJAX應(yīng)用系統(tǒng)的測(cè)試為研究依據(jù),概述了AJAX技術(shù)的工作原理及工作流程,分析了AJAX技術(shù)的優(yōu)缺點(diǎn),介紹了使用Selenium對(duì)基于AJAX技術(shù)應(yīng)用系統(tǒng)進(jìn)行測(cè)試的一般方法。

參考文獻(xiàn):

[1] 蘇慶林.AJAX技術(shù)在基于Domino的油田協(xié)同辦公中的應(yīng)用[J].信息技術(shù),2014(1):121-123,127.

[2] 呂國(guó)勇,史祥龍.基于嵌入式Linux和AJAX技術(shù)的Web異步交互設(shè)計(jì)[J].計(jì)算機(jī)應(yīng)用,2013,33(z1):247-251.

[3] 陳瑞祥,季斌,王亞芳,等.基于AJAX的太陽(yáng)能集熱工程遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)[J].制造業(yè)自動(dòng)化,2013(22):104-107.

[4] 王宏偉,孫文磊,何麗等.AJAX技術(shù)在Web零件庫(kù)系統(tǒng)中的應(yīng)用研究[J].制造業(yè)自動(dòng)化,2011,33(12):107-110.

[5] 楊鐵軍,李旭東.AJAX技術(shù)在糧情測(cè)控系統(tǒng)中的應(yīng)用研究[J].農(nóng)機(jī)化研究,2011,33(7):181-185.

[6] 黃華林.基于Selenium WebDriver的B/S架構(gòu)軟件的自動(dòng)化測(cè)試研究[J].電腦知識(shí)與技術(shù),2013,9(23).

猜你喜歡
應(yīng)用系統(tǒng)測(cè)試
幽默大測(cè)試
幽默大師(2020年11期)2020-11-26 06:12:12
“攝問(wèn)”測(cè)試
“攝問(wèn)”測(cè)試
“攝問(wèn)”測(cè)試
VB應(yīng)用技術(shù)下電教管理系統(tǒng)
高職學(xué)院信息化建設(shè)中面臨的問(wèn)題和思考
科技視界(2016年22期)2016-10-18 17:29:57
基于微信公眾平臺(tái)的應(yīng)用系統(tǒng)開(kāi)發(fā)模式研究
科技視界(2016年22期)2016-10-18 17:08:33
企業(yè)云平臺(tái)建設(shè)研究
邵阳县| 广河县| 定结县| 三穗县| 黎城县| 美姑县| 敦煌市| 垣曲县| 进贤县| 上犹县| 日照市| 龙口市| 贡觉县| 普定县| 九龙城区| 深泽县| 大名县| 榆树市| 高阳县| 威宁| 邵东县| 福清市| 化德县| 靖边县| 濮阳市| 同江市| 清涧县| 永安市| 外汇| 揭西县| 翼城县| 青州市| 光山县| 榆林市| 荃湾区| 翁牛特旗| 莒南县| 保靖县| 镇江市| 法库县| 若羌县|