欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于自動測試web應用的方法和系統(tǒng)的制作方法

文檔序號:7913538閱讀:261來源:國知局
專利名稱:用于自動測試web應用的方法和系統(tǒng)的制作方法
用于自動測試WEB應用的方法和系統(tǒng)技術領域
本發(fā)明總體上涉及軟件應用的開發(fā),并且更具體地,涉及用于測試web應用的方法。
背景技術
Web應用的一大問題在于找出一種有效的方法用于web接口的測試自動化。該問題與利用web 2.0新技術(如AJAX或Javakript框架,例如Dojo)而建立的web接口更為相關。Web 2. O應用的網頁不僅僅是動態(tài)的而且是非常復雜的應用,它是多個面向對象語言 DOM元素(D0M是文檔對象模型,它是用于表示HMTL頁面以及管理HMTL中對象的硬件和語言獨立的模型)的合成的結果。每個DOM元素可以通過Jav必cript (JavaScript是SUN微系統(tǒng)公司或其子公司在美國和其他國家的商標或注冊商標)代碼而動態(tài)構建,JavaScript 代碼與后端交互并且實現AJAX (異步JavMcript和XML)技術,以創(chuàng)建客戶端側web應用甚至應用CSS樣式表以允許從客戶端側改變外觀。而且,用于創(chuàng)建DOM元素的代碼散布在多個點中,還可能由獨立編寫的(利用AJAX框架創(chuàng)建的)小部件(widget)生成以實現單個功能。
主要問題不僅僅在于實現用于單元測試套件的系統(tǒng)以測試單個功能、單小部件類,而且還在于測試由小部件生成的DOM元素與產生DOM元素的其他對方之間的真實交互。
用于測試web應用的現有技術工具僅基于網頁或應用的“外部”外觀,或者即使他們知道DOM元素,也將完全不顧應用的內部。反之,應用無法強制對這一重要區(qū)域的測試, 因為它無法訪問和驅動自身的“外部”行為,這種軟件對于主控環(huán)境(例如,瀏覽器中運行的那些應用)具有強依賴性。自動地測試此類web應用是當今的一個挑戰(zhàn)。
美國專利申請US2004/0025083A1描述了在程序中嵌入測試代碼的一般性思想, 使得該程序能夠測試其功能。但是,盡管該發(fā)明的范圍較寬,但是不能夠使用該方法來解決完全在瀏覽器和主控瀏覽器的操作系統(tǒng)的上下文中對應用的內部進行測試這一問題。應用中依賴于環(huán)境差異的某些代碼部分無法被測試;此外,應用中不僅依賴于此類差異而且還依賴于此類差異可能導致執(zhí)行的不同代碼路徑的某些代碼部分同樣將無法測試。例如, web應用必須在所支持的諸如hternet Explorer (Internet Explorer是微軟公司在美國和/或其他國家中的商標)、Firefox (Firefox是Mozilla Foundation的注冊商標)、 Opera (Opera是Opera Software ASA的商標或注冊商標)等每個瀏覽器上獨立地測試。然而,出于測試的目的,使測試代碼忽略每個瀏覽器可能引起的差異并且僅僅考慮對軟件功能的直接調用,這樣做是不可靠的。
需要一種利用對web接口的頁面中的用戶輸入進行仿真代碼來配置接口代碼的方法,以便在瀏覽器和主控瀏覽器的操作系統(tǒng)的上下文中測試應用的內部。發(fā)明內容
因此,本發(fā)明的目的之一在于提供一種自動測試方法,其對web接口的頁面中的用戶輸入進行仿真,并且在瀏覽器和主控該瀏覽器的操作系統(tǒng)的上下文中驗證web應用的 web接口內部數據結構。
根據權利要求1,該目的利用一種用于自動測試運行在測試計算機的web瀏覽器內部的web應用的方法來實現,該web應用配備(400)有測試代碼,所述方法包括
-通過web應用中定義的API,從該web應用中執(zhí)行的測試代碼向HTTP服務器發(fā)送(410)消息以請求該HTTP服務器對用戶輸入進行仿真,所述用戶輸入與該web應用中運行的測試代碼相關;
-HTTP服務器接收消息G20),根據該消息通過至少一個系統(tǒng)事件對用戶輸入進行仿真,并且將其提供給該網絡瀏覽器;
-Web瀏覽器處理(430)仿真的至少一個系統(tǒng)事件,該仿真的至少一個系統(tǒng)事件自身觸發(fā)web應用中的一些代碼的執(zhí)行;
-Web應用中的測試代碼通過檢視包括Javascript和DOM對象的web應用內部數據結構來檢查G40)由該至少一個系統(tǒng)事件對web應用中的一些代碼的觸發(fā)的結果的有效性。Web應用的該內部數據結構包括網頁上可見的HTML元素以及內部計數器或其他可能的變量和對象。
該方法還允許通過在仿真用戶輸入之后對應用數據結構的檢視來測試該應用的數據結構。該方法還允許通過將仿真用戶輸入已經發(fā)生之后的對象狀態(tài)與已存儲的模型對象狀態(tài)進行比較來檢查應用內部數據結構。
對象可以是HTML對象、DOM對象或Javascript對象。一種自動測試系統(tǒng)將包括 HTTP服務器以及用于生成與所測試的系統(tǒng)輸入相對應的仿真系統(tǒng)事件的代碼。
為了全面地測試web應用,本發(fā)明的方法不僅包括編寫一些測試代碼并且將該測試代碼嵌入到應用中,而且還給予web應用對“外部”環(huán)境的訪問,包括重現用戶與web應用的真實交互的能力。該方法允許對外部輸入進行仿真,使得能夠如同該外部輸入來自人類用戶或一些其他外部事件源那樣接收該外部輸入。以此方式,主控環(huán)境將也能夠處理該事件并且更新主控環(huán)境自己的數據結構,這對應用的行為也具有直接影響。在沒提出該系統(tǒng)的情況下,沒有測試能夠覆蓋整個軟件功能。
Web應用能夠借助于外部服務從“外部”與其自身交互。該服務控制瀏覽器和外部系統(tǒng)(盤等),并且借助于與特殊編碼的URL的HTTP連接來向web應用提供服務。Web應用轉而使用所提供的服務從“外部”操縱和控制該web應用自己的內部狀態(tài),這通常無法利用目前的測試自動化系統(tǒng)實現。
下面的方法和系統(tǒng)通過對人類用戶輸入進行重現和仿真而克服了目前測試方法的限制,并且使用該仿真來驗證其內部數據結構和算法。該方法從該網頁本身內部的 Javascript代碼調用由用戶輸入生成的系統(tǒng)事件,并且產生web接口的改變(由此改變例如對象模型元素DOM元素)。一旦改變被反映在DOM元素上(通過用戶事件請求), Javascript代碼可以通過與預期值進行比較來檢查該內部數據結構的狀態(tài)。
本發(fā)明的方法提供以下優(yōu)點
-可以通過測試應用網頁中的全部DOM元素來測試重現客戶情景的DOM元素的一切。該技術方案允許將感興趣的測試用例覆蓋到其他類型的產品無法覆蓋的高級示例部分上。
-可以在頁面自己的內部和外部測試網頁。
-一種基于DOM檢查和/或通過JSON(用于Javascript對象標記,是用串來表示對象的簡單格式)對象比較的檢查驗證點的方式。
-該技術方案不僅使用于DOJO框架,而且可以在用于生成網頁DOM元素的全部技術上使用。
-可以在用于測試套件和應用的語言不同于Javascript時實現本發(fā)明的方法。語言只需要是瀏覽器可理解的。
相對于現有技術的自動測試產品和方法,特別是對于web應用的自動測試產品和方法,現有技術雖然提供了多種特征,但是最終測試結果是通過將應用的“輸出”與已知為正確的某些模板進行比較來獲得的。對于web應用,輸出基本上是其產生或改變的HTML頁面,或者等效地說,是其DOM表示。利用本發(fā)明的方法,web應用可以訪問“外部”環(huán)境并且對真實行為(包括人類輸入)進行仿真,這通過簡單的代碼配備是不可能的。只能夠檢視程序“外觀”的工具不具有檢視內部結構的能力。


圖1示出了可在其中實現本發(fā)明的技術方案的web應用的常見上下文;
圖2示出了 web應用的常見上下文中的優(yōu)選實施方式的方法的實現;
圖3是與根據優(yōu)選實施方式的仿真事件交叉的web應用環(huán)境的示意圖4是根據優(yōu)選實施方式的本發(fā)明方法的一般性流程圖。
具體實施方式
圖1示出了能夠在其中實現本發(fā)明的技術方案的web應用的常見上下文。Web應用的常見上下文包括在用戶工作站(105)的瀏覽器(110)中運行的web客戶端應用(115)。 瀏覽器使用用戶的工作站的操作系統(tǒng)的文件系統(tǒng)(120)。如果web應用服務器是遠程服務器,web客戶端應用已通過網絡從web應用服務器被下載。Web應用可以用Javascript編寫。用戶通過瀏覽器生成的網頁與該應用交互。用戶輸入可以是在生成系統(tǒng)事件的網頁字段中輸入的數據(例如來自鍵盤或鼠標)。
圖2示出了在web應用的常見上下文中的優(yōu)選實施方式的方法的實現。以瀏覽器可理解的語言(例如JavMcript)編寫的測試套件作為web應用(115)運行在測試主機 (240)上。網絡測試自動化系統(tǒng)O00)向運行在測試主機上的web應用(11 提供測試服務。測試服務包括三個子系統(tǒng)用于接收命令的HTTP服務器010),用于生成特定系統(tǒng)事件的系統(tǒng)事件生成器(21 ,以及用于在測試計算機是遠程計算機時向運行測試套件的主機分派事件的遠程事件分派器025)。這些子系統(tǒng)可實現為軟件程序。測試服務的子系統(tǒng)使用庫(220)來下載/保存表示應用狀態(tài)的串行化對象或其他數據(JS0N可以是編碼存儲在該庫中的串行化對象的一個實例)。
在測試主機中運行的web應用中,Javascript API支持Javascript測試代碼的自引導(self-piloting)。用于Javascript API的自引導命令(235)允許來自瀏覽器(web 應用)的Javascript代碼與測試服務之間的通信。瀏覽器啟動器(230)是可選的,并且用于基于測試主機的URL啟動瀏覽器。當使用時,它從遠程事件分派器(225)接收事件并且將事件傳輸給瀏覽器,遠程事件分派器(22 本身從系統(tǒng)事件生成器(21 接收事件。當不存在瀏覽器啟動器時,瀏覽器可以直接接收仿真系統(tǒng)事件,因為瀏覽器在web應用中的測試代碼執(zhí)行之前即被啟動。瀏覽器(110)接收并且處理測試主機上的相同事件。在web 應用內部,測試套件代碼(包含html/Javascript/Dojo代碼的網頁)包含用于測試對象的代碼,并且使用用于Javascript API的自引導命令(235)來檢查驗證點以及觸發(fā)針對提供測試服務的HTTP服務器010)的動作。
注意,包括測試自動化系統(tǒng)和測試服務器的組件的整個測試系統(tǒng)可以位于單個計算機上。在測試系統(tǒng)和測試服務器位于單個計算機上的情況中,不需要具有遠程事件分派器(22 ,并且?guī)焓莣eb應用本地的。
Javascript API建立與HTTP服務器的通信,以允許web應用發(fā)送事件命令。服務得到該命令,并且通過系統(tǒng)事件生成器生成由瀏覽器(其總是作為置頂窗口運行)捕捉的鍵盤或鼠標事件,事件和網頁改變如同由用戶自己創(chuàng)建的那樣發(fā)生改變。此時,測試自動化代碼繼續(xù)在web應用內部執(zhí)行自己。
基于網頁對象檢查(例如,DOM檢查)的驗證點的示例
假設web接口提供按鈕。當用戶點擊該按鈕時顯示新面板。在該示例中,測試自動化的Javascript代碼應該是下面這樣的Javascript請求鼠標在上述按鈕的元素上的點擊。然后,服務通過Javascript API接收命令并且產生相關的系統(tǒng)事件。一旦接收到事件,在DOM中生成新的容器結構(<DIV>)以包含新面板(子DOM)。Javascript代碼繼而可以檢查該DOM元素是否如預期那樣被插入。
基于對象狀態(tài)檢查的示例驗證點
用于實現驗證點的另一種方式是在請求仿真系統(tǒng)事件之前保存對象(例如被線性化為JSON串),然后一旦接收仿真系統(tǒng)事件并且改變應被應用于D0M,便可以加載之前保存的JSON對象并且將其與改變的對象進行比較。假設web應用在網頁中包括一個小部件, 其在鼠標位于其上時改變背景顏色。假設,在主庫上將該小部件對象串行化為主值(當鼠標位于該小部件之上時具有預期顏色的背景顏色)。在這種情況中,Javascript測試包括請求Javascript命令事件“鼠標在小部件之上”,繼而,當該事件到達瀏覽器并且鼠標自動移動到該小部件之上時,Javascript測試請求服務對實際小部件狀態(tài)與庫中維護的小部件狀態(tài)進行比較。這些測試套件中的每個測試套件生成以下動作在動態(tài)頁面上做出HTTP請求,保存JSON對象作為當前狀態(tài),生成事件命令,(由瀏覽器)捕獲事件和頁面改變,通過將結果與主值(模板)進行比較來驗證DOM改變,將JSON對象與主值進行比較。每個測試套件生成瀏覽器與系統(tǒng)之間的任意類型的常見交互。
可以實現以下示例性測試
· “預測”,(生成用于鍵入要搜索的字符串的第一字符的事件)。
· “字段確認”(生成全部鍵盤字符)。
· “保存頁面”(生成用于訪問瀏覽器菜單并且保存頁面的事件)。
· “文件上傳”(生成用于在瀏覽器彈出窗口上鍵入并且打開文件的事件)。
· “本地化”(生成訪問瀏覽器菜單并且改變?yōu)g覽器語言的事件)。
· “瀏覽器依賴”,生成用于測試事件在不同瀏覽器上的不同行為的相同鍵盤和鼠標事件。
“可訪問性測試用例”,使用一系列鍵盤事件(空格、回車)。
用于Javascript API的自引導命令在一個端口上被異步地發(fā)送到HTTP服務器, 例如
http//Servicehostname :port/ ? receiverhost = hostname&command = < name > &argl = valuel&.......&argN = valueN
某些基本API命令可以如下
click(x,y)(點擊(x,y))
doub 1 ec 1 ick (χ,y)(雙擊(χ, y))
key(k)’特殊的鍵是(制表,回車,左,右,上,下)
pause (delay)(暫停(延遲))
fileload(filename)(文件上傳(文件名))
filesave (filename)(文件保存(文件名))
用于基于JSON比較的驗證點的一些API命令可以如下
saveAsJSON(object, name),保存對象為 JSON 字串。
ObjectloadJSON(name),將 JSON 字串轉化成對象。
checkJSON(object, object),比較兩個 JSON 對象。
圖3是與根據優(yōu)選實施方式的仿真事件交叉的web 2. 0應用環(huán)境的示意圖。對于事件處理的學習允許理解與僅僅提出將代碼嵌入到程序中的現有測試方法的差異。Web 2.0應用存活于容器(例如,web瀏覽器)中,該容器提供對關鍵組件的支持(例如,HTML 繪制、文檔的DOM表示,Javascript語言解釋器和函數庫、HTTP和HTTPS網絡通信,等等) 以及用于從系統(tǒng)接收實踐(例如,響應于用戶動作或輸入)的機制。此類容器以及全部相關組件的實現和行為對于web 2. 0應用而言至關重要如果在測試期間沒有考慮這種的復雜環(huán)境,則無法全面測試web 2. 0應用。
從圖3中的步驟編號2處開始(向系統(tǒng)的事件生成請求)?;旧线@同樣是用戶動作的相同起始點。如圖所示,在被分派到web 2.0應用之前,實踐通過多個組件和代碼層并由其處理。在這期間,它通常通過例如修改其數據結構等而在代碼層和組件中“留下蹤跡”。當事件最終分派并且由web應用處理之后,應用可以對事件做出響應,就如同它在真實世界情況中被“真實”觸發(fā)一樣,也即,web應用將發(fā)現其環(huán)境已經處理了該事件并且有機會對其做出反應。這在應用仿真完全靠它自己接收事件而忽略所有這些處理的情況下是不可能的。
在web應用只能測試其對一類“抽象”事件(它是未知的,并且不影響環(huán)境和web 應用容器)的響應的情況下,完全代碼覆蓋是不可能的。相反,每個容器(例如,web瀏覽器)彼此不同,并且通常甚至與他自己的其他版本也是不同的,對于web應用尤其如此。因此,有必要在每個所支持的環(huán)境中測試web應用,并且在在環(huán)境完全被集成到測試情境中的情況下也肯定是不可能的。
圖3是事件如何被生成以及被分派到軟件應用的示例。在事件被處理的同時,存在無法由嵌入式代碼單獨重現的影響主機環(huán)境的步驟(步驟編號3,用于對事件進行仿真的事件處理;以及編號5,由圖中的瀏覽器重現事件的事件)。
圖4是根據優(yōu)選實施方式的本發(fā)明方法的一般性流程圖。該方法在一個主機上實現,或者在兩個主機但是兩個服務器上實現。一個服務器在其環(huán)境(web瀏覽器)中運行 web應用,并且與web應用對接的一個測試服務器操作測試。用于自動測試web應用的方法包括用于在web應用代碼內實現測試代碼以測試web應用的第一步驟000)。第二步驟 (410)由一段測試代碼執(zhí)行,用于通過API向測試服務器發(fā)送包括命令的消息。在第三步驟 (420)中,測試服務器接收消息,并且解釋該命令以對web應用的頁面中的用戶輸入進行仿真,或者以生成web應用的環(huán)境和web應用均可理解的系統(tǒng)事件。用戶輸入或系統(tǒng)事件與 web應用中運行的測試代碼相關。web瀏覽器(430)處理觸發(fā)所測試的通常web應用執(zhí)行的用戶輸入或系統(tǒng)事件。Web應用中的測試代碼編程地或是通過將web應用內部數據結構的表示與已知模板進行比較來檢視web應用內部數據結構,從而檢查(440) web應用代碼執(zhí)行的結果的有效性。
該方法的某些特定步驟涉及基于HTML對象檢查的驗證點的示例。例如,假設web 面板(它是網頁的一部分)中的用戶鼠標點擊生成將由應用顯示的新web面板,則步驟410 將包括要求鼠標點擊仿真,并且步驟430還將包括web應用在其常規(guī)代碼執(zhí)行(不包括測試代碼執(zhí)行)中生成與一個HTML對象(D0M對象)實例化相對應的新容器結構,該HTML對象實例化對應于將要顯示的新網頁。步驟440將包括測試代碼檢查與新網頁相對應的對象已在web應用中被正確地實例化。
該方法的其他特定步驟涉及基于對象狀態(tài)檢查的驗證點的示例。例如,檢查用戶對小部件的使用已正確地改變了 HTML頁面的背景顏色。來自web應用的測試代碼的請求 (410)可以包括要求保存該小部件對象的初始狀態(tài)(例如,將小部件保存為庫中的JSON字串),并且通過Javascript命令要求要求在被顯示給用戶并且包括此小部件的網頁中對系統(tǒng)事件(例如,鼠標的小部件上移動)進行仿真。繼而,在接收到仿真系統(tǒng)事件時,當瀏覽器執(zhí)行仿真鼠標移動時,web應用執(zhí)行相應功能,并且測試代碼(440)捕獲網頁改變、向測試服務(410)發(fā)送從庫中獲取保存對象(JS0N字串)的新請求、通過web應用API接收保存的對象,測試代碼讀取當前小部件狀態(tài)并且通過將JSON對象與庫中保存的對象進行比較來驗證DOM改變。每個測試套件生成瀏覽器與系統(tǒng)之間的任意類型的常見交互。
歸納而言,用于自動測試web應用的方法是完整的,因為它測試web應用的內部結構(440)和web應用的外部環(huán)境(430)。
說明內部結構測試的一個示例是如果假設web應用保持內部計數器以跟蹤出錯小部件的數目,使得如果該數目大于零則整個面板是無效的并且不能被處理。檢查web應用對來自用戶的無效輸入的正確響應的測試可以包括3個測試
1)相應的小部件改變背景顏色以便顯示錯誤,
2)消息出現以通知用戶,
3)內部計數器增加一個單位。第3)點涉及應用的內部數據結構。內部計數器僅存在于web應用中,不能通過測試外部輸入來測試內部計數器,因為沒有HTML元素或外部表示對應于該計數器。代碼可以分析自身。HTML對象、DOM對象或Javascript對象具有一種數據結構,當從web應用的web接口看時它是外部,而當其包括web應用的內部數據(如上述計數器)時它是內部的。
示出web應用的外部環(huán)境測試的一個示例是假設在主控web應用的計算機的操作系統(tǒng)中,在web應用之外發(fā)生了一些事情。該測試方法可以測試該應用如何響應于系統(tǒng)事件而做出反應。如果改變?yōu)g覽器或者改變web應用執(zhí)行于其上的主機中的操作系統(tǒng),則行為是不同的。因此,內部結構可以響應于外部事件而被測試,就像現有技術方法的嵌入式測試代碼一樣;應用的內部結構可以僅可以響應于由測試代碼本身而非由系統(tǒng)上下文仿真的內部輸入而被測試。
權利要求
1.一種用于自動測試運行于測試計算機的web瀏覽器內部的web應用的方法,所述 web應用配備(400)有測試代碼,所述方法包括通過所述web應用中定義的API,從所述web應用中執(zhí)行的所述測試代碼向HTTP服務器發(fā)送(410)消息以要求所述HTTP服務器對用戶輸入進行仿真,所述用戶輸入與運行于所述web應用中的所述測試代碼相關;所述HTTP服務器接收所述消息020),并且觸發(fā)系統(tǒng)事件生成器(215)對與所述用戶輸入相對應的至少一個系統(tǒng)事件進行仿真,并且將仿真的至少一個系統(tǒng)事件提供給所述 web瀏覽器;所述web瀏覽器處理(430)所述仿真的至少一個系統(tǒng)事件,所述仿真的至少一個系統(tǒng)事件自身觸發(fā)所述web應用中的代碼的執(zhí)行;所述web應用中的所述測試代碼通過檢視web應用內部數據結構,來檢查(440)所述至少一個系統(tǒng)事件對所述web應用中的代碼的所述觸發(fā)的結果的有效性。
2.根據權利要求1所述的方法,其中所述測試代碼的檢查步驟(440)包括檢查所述web應用正確地生成與將由所述web 應用顯示的網頁修改相對應的內部數據結構。
3.根據權利要求2所述的方法,其中所述仿真的至少一個系統(tǒng)事件是需要所述網頁修改的鼠標點擊。
4.根據權利要求1所述的方法,還包括所述發(fā)送的步驟(410)包括所述測試代碼存儲網頁中的內部對象數據結構或外部對象數據結構的初始狀態(tài),在所述消息中要求所述HTTP服務器將所述初始狀態(tài)存儲在庫中并且對與所述網頁中的所述對象相關的至少一個系統(tǒng)事件進行仿真;所述測試代碼的檢查步驟(440)包括檢查所述web應用已改變所述網頁中的所述內部對象數據結構或所述外部對象數據結構,在所述網頁的改變之后捕獲所述對象數據結構,通過所述web應用中定義的相同API在新消息中要求測試服務器從所述庫中獲取所述對象的所述初始狀態(tài),接收獲取的初始對象狀態(tài),并且通過將初始內部數據結構與改變的內部數據結構進行比較來驗證所述改變是否正確。
5.根據權利要求4所述的方法,其中所述仿真的至少一個系統(tǒng)事件是網頁中在對象之上的鼠標移動,所述對象是小部件。
6.根據權利要求1到5任一項所述的方法,其中所述步驟在HTML對象、DOM對象或 Javascript對象上執(zhí) 亍。
7.根據權利要求6所述的方法,其中在所述發(fā)送的步驟和所述檢查的步驟中,當所述對象是Javascript對象時,所述對象由所述HTTP服務器作為JSON串在所述庫中進行存儲和獲取。
8.根據權利要求1到7任一項所述的方法,其中所述發(fā)送的步驟還包括在所述HTTP 服務器在遠程的情況下,將所述至少一個系統(tǒng)事件從所述HTTP服務器分派至所述web應用在其上執(zhí)行的服務器。
9.根據權利要求1到8任一項所述的方法,還包括以所述瀏覽器可理解的語言來編碼所述測試和所述web應用的初始步驟。
10.根據權利要求1到9任一項所述的方法,還包括以Javascript來編碼所述測試和所述web應用的初始步驟。
11.根據權利要求1到10任一項所述的方法,其中所述發(fā)送的步驟(410)和所述應用檢查的步驟(440)還包括通過引導應用來手動觸發(fā)所述應用內部的所述測試代碼的初始步驟。
12.根據權利要求1到10任一項所述的方法,其中所述發(fā)送的步驟(410)和所述應用檢查的步驟G40)由所述web應用在啟動之后的執(zhí)行而被自動執(zhí)行。
13.—種系統(tǒng),包括適于執(zhí)行根據權利要求1到12任一項所述的方法的裝置。
全文摘要
一種用于自動測試WEB瀏覽器內部運行的WEB應用的方法和系統(tǒng)。測試代碼段被包括在WEB應用代碼中。HTTP服務器向配備有測試代碼的WEB應用提供測試服務。通過API接口,測試代碼請求HTTP服務器對用戶輸入進行仿真并且將其發(fā)送給瀏覽器。HTTP服務器生成與該用戶輸入相對應的仿真系統(tǒng)事件(鼠標點擊、鍵盤輸入等),并且將其發(fā)送給瀏覽器。瀏覽器照常處理針對WEB應用的系統(tǒng)事件。以此方式,測試代碼將檢查WEB應用的數據結構(對象),并且WEB應用的整個環(huán)境也將被包括。當檢查到WEB應用對對象的良好處理時,WEB應用測試代碼可以請求HTTP服務器將對象(例如,JSON格式)存儲在庫中并且從庫中獲取對象。測試代碼將會對WEB應用處理之前和之后的對象進行比較以檢查正確執(zhí)行。
文檔編號H04L12/26GK102511037SQ201080040943
公開日2012年6月20日 申請日期2010年8月10日 優(yōu)先權日2010年8月10日
發(fā)明者A·斯科蒂, F·卡特里, F·平佐蒂, L·拉扎羅 申請人:國際商業(yè)機器公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
砀山县| 元朗区| 贵港市| 容城县| 甘孜| 新干县| 疏勒县| 屏东市| 天长市| 松溪县| 星子县| 固安县| 玉田县| 峨眉山市| 泾川县| 韶山市| 安远县| 阜平县| 屯留县| 文登市| 黑水县| 东丽区| 固镇县| 郴州市| 布拖县| 莱阳市| 图们市| 宜州市| 崇仁县| 樟树市| 额敏县| 罗江县| 通化市| 阳原县| 新安县| 喜德县| 新泰市| 读书| 萨嘎县| 措美县| 墨脱县|