專利名稱:用于重放預(yù)先確定的通過互聯(lián)網(wǎng)的路徑的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及網(wǎng)頁系統(tǒng)和方法,尤其涉及用于從中間服務(wù)器重放預(yù)先確定的網(wǎng)絡(luò)路徑的軟件系統(tǒng)和方法。
背景技術(shù):
隨著網(wǎng)站成為普遍存在的,企業(yè)在設(shè)置其網(wǎng)站的性能目標(biāo)和質(zhì)量標(biāo)準(zhǔn)方面的興趣不斷增加。實現(xiàn)這些目的的一種方法是模擬用戶對公司網(wǎng)站的經(jīng)歷。通過模擬用戶的經(jīng)歷,網(wǎng)站所有者可以判斷在其網(wǎng)頁中的鏈接和資源的完整性,并針對由企業(yè)規(guī)定的操作目標(biāo)評價用戶的經(jīng)歷。此外,公司的信息技術(shù)部門將能夠更好地跟蹤和測量關(guān)鍵的網(wǎng)絡(luò)資源。
模擬用戶通過網(wǎng)站的路徑的一種方法是在代理服務(wù)器記錄由用戶發(fā)出的所有的請求,記錄和每個請求有關(guān)的附加數(shù)據(jù),并打開套接口,向回發(fā)送所通過的確切數(shù)據(jù)。這種技術(shù)可以用于只含有靜態(tài)網(wǎng)頁的網(wǎng)站。然而,不斷增加的許多網(wǎng)站是動態(tài)的,因而,用于重放用戶通過網(wǎng)絡(luò)的路徑的方法必須能夠考慮到例如會話ID和表單等內(nèi)容。因為動態(tài)內(nèi)容能夠使網(wǎng)頁會話過期或者隨時間而改變,簡單地重放一系列的請求經(jīng)常會導(dǎo)致由目標(biāo)網(wǎng)站返回的錯誤。
當(dāng)前用于模擬通過網(wǎng)站的路徑的方法沒有充分針對動態(tài)網(wǎng)站。已研發(fā)過Microsoft Web Stress Analyzer Tool(微軟網(wǎng)絡(luò)強化分析工具),用于在使網(wǎng)站在互聯(lián)網(wǎng)上可用之前對網(wǎng)站進行強化測試。該微軟工具只支持基于cookie的動態(tài)網(wǎng)站技術(shù),而不支持其它技術(shù),也不支持在瀏覽器和網(wǎng)站之間的HTTPS通信。此外,該微軟工具需要將軟件下載和安裝到用戶的計算機上。
發(fā)明概述本發(fā)明提供一種網(wǎng)絡(luò)路徑重放系統(tǒng)和方法,其中基本上消除或減少了和以前研發(fā)的網(wǎng)絡(luò)路徑重放系統(tǒng)相關(guān)的缺點和問題。更具體地說,本發(fā)明提供一種用于重放預(yù)先確定的通過一組網(wǎng)頁的路徑的系統(tǒng)和方法。所述用于重放預(yù)先確定的網(wǎng)絡(luò)路徑的方法包括從請求歷史記錄中選擇和保存的URL相關(guān)的保存的請求。如果保存的請求是表單請求,則本發(fā)明可以由可以對其作出重放請求的始發(fā)網(wǎng)頁確定最佳適配的表單。或者,如果請求不是表單請求,則本發(fā)明在可以對其作出重放請求的始發(fā)網(wǎng)頁上選擇一個最佳適配的URL。在選擇最佳適配的表單或者最佳適配的URL作為目標(biāo)URL之后,本發(fā)明對所述目標(biāo)URL作出重放請求。
本發(fā)明和以前研發(fā)的系統(tǒng)相比的主要優(yōu)點是使得能夠重放通過動態(tài)網(wǎng)頁的路徑。
本發(fā)明具有的另一個技術(shù)優(yōu)點是,本發(fā)明是完全基于網(wǎng)絡(luò)的。
本發(fā)明的另一個重要的技術(shù)優(yōu)點是,本發(fā)明在工業(yè)標(biāo)準(zhǔn)服務(wù)器上運行。
本發(fā)明的另一個重要的技術(shù)優(yōu)點是支持HTTPS通信。
本發(fā)明的另一個重要的技術(shù)優(yōu)點是其不要求用戶在其計算機上安裝附加的軟件。
本發(fā)明提供的一個重要優(yōu)點是,和以前研發(fā)的方法相比,本發(fā)明能夠重放通過大量的網(wǎng)頁的路徑。
為了更完整地理解本發(fā)明及其優(yōu)點,請結(jié)合附圖參閱下面的說明,其中相同的標(biāo)號表示相同的特征,其中圖1示意地表示本發(fā)明的可以記錄和重放路徑的系統(tǒng);以及圖2是說明本發(fā)明的用于重放通過一組網(wǎng)頁的路徑的一個實施例的流程圖。
本發(fā)明的詳細說明附圖表示本發(fā)明的優(yōu)選實施例,在所有的附圖中,相同的標(biāo)號表示相同或相應(yīng)的部分。
在本發(fā)明的說明中,“內(nèi)容”指的是響應(yīng)用戶的命令(例如當(dāng)用戶選擇有關(guān)鏈接時)由網(wǎng)頁返回用戶的瀏覽器的HTML和其它的數(shù)據(jù)?!办o態(tài)”內(nèi)容指的是被返回用戶的瀏覽器的不隨時間改變的內(nèi)容。“動態(tài)”網(wǎng)頁指的是可以包含不同的未預(yù)格式化的內(nèi)容的網(wǎng)頁,所述內(nèi)容對同一個用戶的指令的響應(yīng)可以隨時間而改變?!奥窂健敝傅氖蔷哂刑囟樞虻囊幌盗芯W(wǎng)絡(luò)請求。
本發(fā)明提供一種用于從中間服務(wù)器重放用戶通過網(wǎng)絡(luò)的路徑的系統(tǒng)。圖1示意地表示可以實施本發(fā)明的系統(tǒng),用于記錄和重放用戶通過網(wǎng)絡(luò)的路徑。用戶可以通過網(wǎng)絡(luò)瀏覽器20訪問在中間服務(wù)器10的軟件程序5。在一個實施例中,用戶訪問在中間服務(wù)器10的軟件程序之后,可以使用網(wǎng)絡(luò)瀏覽器20向軟件程序5提供一個路徑名(例如“路徑1”)和一個起始URL。所述路徑名和起始URL可以被保存在數(shù)據(jù)庫15中。路徑名用于分類由用戶確定的特定的路徑,而起始URL是用戶路徑的開始點。例如,一旦用戶點擊“開始”按鈕,表示他們準(zhǔn)備好開始確定路徑,軟件程序5便在網(wǎng)絡(luò)瀏覽器20中打開一個顯示窗口。所述顯示窗口是一個在網(wǎng)絡(luò)瀏覽器20中的新窗口,在其中將顯示響應(yīng)用戶的命令而收到的內(nèi)容。網(wǎng)絡(luò)瀏覽器20對軟件程序5發(fā)出起始URL的請求,軟件程序5在把所述請求保存在數(shù)據(jù)庫15中之后,便把所述請求發(fā)送給目標(biāo)網(wǎng)服務(wù)器30。然后,目標(biāo)網(wǎng)服務(wù)器30向中間服務(wù)器10返回相應(yīng)于和請求中的URL相關(guān)的網(wǎng)頁35的內(nèi)容。然后,軟件程序5可以調(diào)整所述內(nèi)容,使得由用戶根據(jù)網(wǎng)頁35的內(nèi)容作出的任何另外的請求將被通過到中間服務(wù)器10發(fā)送。網(wǎng)頁內(nèi)容的調(diào)整可以按照在專利申請序列號為,名稱為“A System and Method of Mediating a Web Page”(調(diào)整網(wǎng)頁的系統(tǒng)和方法),發(fā)明人為Clay Davis,Walter Bodwell和Michael Klobe,申請日為2000年11月10日的專利申請中所述的方法進行,該專利的全文被包括在本說明中作為參考。
軟件程序5在調(diào)整所述內(nèi)容之后,便可以把調(diào)整的內(nèi)容發(fā)送到網(wǎng)絡(luò)瀏覽器20的顯示窗口。在用戶看來,在網(wǎng)絡(luò)瀏覽器20的顯示窗口中顯示的網(wǎng)頁和其直接訪問目標(biāo)網(wǎng)服務(wù)器30所看到的顯示相同看起來可以完全一樣。不過,網(wǎng)絡(luò)瀏覽器20的顯示窗口可以不用導(dǎo)航或狀態(tài)條而被打開。這樣,用戶便不會無意中不通過在顯示窗口顯示的調(diào)整的內(nèi)容訪問URL,而在網(wǎng)絡(luò)瀏覽器20的頂部直接輸入URL,從而繞過的路徑確定過程。
在用戶針對新網(wǎng)頁(例如“目標(biāo)網(wǎng)頁36”)作出附加請求之后,網(wǎng)頁35成為“始發(fā)網(wǎng)頁”。目標(biāo)網(wǎng)頁36可以和與始發(fā)網(wǎng)頁35相同的一個目標(biāo)網(wǎng)服務(wù)器30相關(guān),或者和一個不同的目標(biāo)網(wǎng)服務(wù)器30相關(guān)。響應(yīng)所述的附加請求,軟件程序5再次調(diào)整目標(biāo)網(wǎng)頁36的內(nèi)容,并把調(diào)整的內(nèi)容返回瀏覽器20。應(yīng)當(dāng)理解,始發(fā)網(wǎng)頁35和目標(biāo)網(wǎng)頁36兩者都被調(diào)整。如果用戶從目標(biāo)網(wǎng)頁36發(fā)出附加請求,則目標(biāo)網(wǎng)頁36對于另一個目標(biāo)網(wǎng)頁36而言等同于始發(fā)網(wǎng)頁35,并依此類推。例如,如果“網(wǎng)頁A”和起始URL相關(guān),并且用戶根據(jù)調(diào)整的“網(wǎng)頁A”的內(nèi)容請求“網(wǎng)頁B”,則對于目標(biāo)“網(wǎng)頁B”,“網(wǎng)頁A”將是始發(fā)網(wǎng)頁35。軟件程序5將調(diào)整網(wǎng)頁B的內(nèi)容,并把調(diào)整的內(nèi)容發(fā)送到網(wǎng)絡(luò)瀏覽器20。如果用戶從網(wǎng)頁B發(fā)出請求網(wǎng)頁C的附加請求,則網(wǎng)頁B成為網(wǎng)頁C的始發(fā)網(wǎng)頁35。網(wǎng)頁A,網(wǎng)頁B和網(wǎng)頁C可以和同一個網(wǎng)服務(wù)器相關(guān),或者各自和一個不同的網(wǎng)服務(wù)器相關(guān)。當(dāng)用戶根據(jù)網(wǎng)絡(luò)瀏覽器的顯示窗口中顯示的內(nèi)容輸入附加請求時,軟件程序5就在數(shù)據(jù)庫中保存所述的附加請求。
除去把請求保存到數(shù)據(jù)庫15中之外,軟件程序5還可以記錄隨用戶的請求發(fā)出的或者在網(wǎng)頁35的內(nèi)容中被返回的內(nèi)容,例如cookies,頭信息,和表單參數(shù)。用這種方式,中間服務(wù)器10可以建立含有相應(yīng)于用戶做的每個請求的信息的請求歷史記錄。一般地說,軟件程序5可以在數(shù)據(jù)庫15中作為對于所述路徑的“請求歷史記錄”需要服務(wù)器干預(yù)的所有的交互作用。當(dāng)用戶完成通過網(wǎng)的路徑的確定時,用戶可以停止路徑確定過程,并且所述路徑在由用戶提供的路徑名下被保存。
在本發(fā)明的重放過程中,軟件程序5訪問在數(shù)據(jù)庫15中存儲的請求歷史記錄,并按照作出所述請求的原始順序發(fā)出所述請求。此外,軟件程序5將發(fā)出特定網(wǎng)頁所需的合適的頭信息,cookies與/或表單參數(shù)。目標(biāo)網(wǎng)服務(wù)器30將返回相應(yīng)于每個請求的目標(biāo)網(wǎng)頁36的合適的內(nèi)容。對于每個附加的請求,前一請求的目標(biāo)網(wǎng)頁36將成為下一個重放請求的始發(fā)網(wǎng)頁。軟件程序5將繼續(xù)從請求歷史記錄發(fā)出請求,直到由用戶確定的路徑被完全重放。
圖2是表示按照本發(fā)明用于重放通過一組網(wǎng)頁的預(yù)定路徑的一個實施例的流程圖。在步60,軟件程序5可以訪問數(shù)據(jù)庫15中的請求歷史記錄,所述數(shù)據(jù)庫含有例如起始URL、附加請求、頭信息,cookies,表單請求是否是POST或GET、在始發(fā)頁35的內(nèi)容中的URL的地址以及表單參數(shù)等信息。在本發(fā)明的第一次迭代中,所述請求相應(yīng)于用戶路徑的起始URL。因為第一請求是對起始URL作出的,程序5一般不必發(fā)送相應(yīng)于動態(tài)內(nèi)容的信息。不過,附加請求可以要求軟件程序5發(fā)送其屬性為動態(tài)的信息。從數(shù)據(jù)庫15存儲的請求歷史記錄中,在步70,軟件程序5選擇一個保存的請求。該保存的請求一般按照時間順序選擇,使得用戶的路徑可被正確地重放。
在選擇特定的保存請求之后,在步80,軟件程序5可以確定該保存的請求是否是表單請求。特定的URL請求可以被識別為表單請求,因為在數(shù)據(jù)庫15存儲的請求歷史記錄中,URL可能已經(jīng)被標(biāo)記為和一個“FORM”標(biāo)記相關(guān)。如果沒有找到這種相關(guān),則所述請求不是表單請求。如圖2所示,如果保存的請求是表單請求,則本發(fā)明在執(zhí)行步120之前執(zhí)行步90和100。如果保存的請求不是表單請求,則本發(fā)明在執(zhí)行步120之前執(zhí)行步110。
如果保存的請求是表單請求,則在步90,軟件程序5可以確定對于哪個表單應(yīng)當(dāng)稍后作出重放請求。與簡單地對保存的請求中的URL發(fā)送重放請求相比,更多涉及的可能是確定應(yīng)當(dāng)對其作出重放請求的表單。始發(fā)表單35的“當(dāng)前配置”,即當(dāng)路徑被重放時遇到的配置,可能和用戶最初確定所述路徑時遇到的配置不同。此外,始發(fā)頁35的當(dāng)前配置可能含有一個以上的可以對其作出重放請求的表單,并且甚至可能含有共用一個公共URL的多個表單。考慮到這些困難,在步90,軟件程序5從位于始發(fā)頁35的當(dāng)前配置上的潛在表單中選擇最佳適配的表單。
選擇最佳適配的表單的方法和用戶最初確定路徑時保存的表單參數(shù)有關(guān)。表單參數(shù)可以用幾種方法產(chǎn)生。第一,當(dāng)用戶最初填寫所述表單時產(chǎn)生表單參數(shù)。第二,根據(jù)用戶的輸入,通過JavaScript由網(wǎng)絡(luò)瀏覽器20產(chǎn)生或者修改表單參數(shù)。最后,表單參數(shù)可以被包括在表單本身中,值由目標(biāo)網(wǎng)服務(wù)器30產(chǎn)生。由JavaScript產(chǎn)生的或者被包括在表單本身中的表單參數(shù)對于用戶通常是隱藏的。相應(yīng)于保存的請求的保存的表單參數(shù)通常包括由用戶填寫的表單參數(shù)。不過,如果網(wǎng)絡(luò)瀏覽器20利用JavaScript產(chǎn)生的表單參數(shù)代替或者改變用戶提交的表單參數(shù),則JavaScript產(chǎn)生的表單參數(shù)將被保存在請求歷史記錄中,而不保存用戶提交的表單參數(shù)。例如,如果用戶點擊一個復(fù)迭框,而JavaScript已經(jīng)把其改變?yōu)椤?”,則當(dāng)路徑被重放時,重放請求只包括“1”,而不包括檢驗所述框的操作。這樣做是因為中間服務(wù)器10只需要提交會由目標(biāo)網(wǎng)服務(wù)器30產(chǎn)生合適響應(yīng)的參數(shù)。
如果保存的請求是表單請求,則在步90,軟件程序5讀出始發(fā)頁35中的標(biāo)記,確定是否有和保存的請求中的URL匹配的任何表單。不包括匹配的URL的任何表單將被拒絕。用于在網(wǎng)頁35上篩選出剩余的表單的步驟的順序取決于保存的請求是“POST”還是“GET”。軟件程序5可以區(qū)分“POST”和“GET”,這是因為在用戶最初確定路徑時表單請求的分類被保存在請求歷史記錄中。如果保存的請求是POST請求,則在始發(fā)網(wǎng)頁35中的每個不要求被保存在請求歷史記錄中并且將被包括在重放請求中的所有參數(shù)的表單被拒絕。例如,如果“name”參數(shù)在請求歷史記錄中和一個保存的請求相關(guān),則在始發(fā)網(wǎng)頁上的不要求“name”參數(shù)的每個表單將被拒絕。如果始發(fā)網(wǎng)頁上仍然具有一個以上的潛在表單,則本發(fā)明將拒絕網(wǎng)頁35上的不含有被保存在所述保存的請求的請求歷史記錄中的所有隱藏的參數(shù)的所有表單。如果在經(jīng)過這些初步篩選處理之后仍然剩下一個以上的潛在表單,則以預(yù)先確定的方式選擇一個表單,例如,可以選擇網(wǎng)頁上第一個剩下的表單,或者隨機選擇一個剩下的表單。應(yīng)當(dāng)理解,可以使用任何預(yù)定的選擇方法從剩余的合格的表單中選擇最佳適配的表單。
如果所述請求是GET,則拒絕任何不符合保存的請求中的URL的表單的第一次篩選和表單請求是POST時的相同。不過,第二和第三次篩選被調(diào)換順序。在GET的情況下,和在POST的情況下相反,軟件程序5首先拒絕所有不含有在保存的請求的請求歷史記錄中保存的所有隱藏參數(shù)的表單。如果在網(wǎng)頁35上剩下一個以上的潛在表單,則本發(fā)明拒絕所有不含有保存在請求歷史記錄中的會被包括在重放請求中的所有參數(shù)的表單。如同結(jié)合POST請求說明的,在始發(fā)頁35上的表單可能不需要在請求歷史記錄中保存的所有參數(shù)。如果在進行初期篩選之后仍然剩下一個以上的潛在表單可用,則和在POST請求的情況下一樣,用預(yù)定的方式選擇表單。例如,可以選擇頁面上剩下的第一個表單或者隨機選擇剩下的表單。同樣,應(yīng)當(dāng)理解,可以使用任何方式從合格的表單中選擇一個表單。
在確定一個請求應(yīng)當(dāng)和哪個表單相關(guān)之后,在步100,軟件程序5可以將呈現(xiàn)在網(wǎng)頁35的當(dāng)前配置中的表單上的參數(shù)與請求歷史記錄中保存的參數(shù)中的參數(shù)合并。軟件程序5可以通過比較表單參數(shù)是如何產(chǎn)生的,來確定哪些參數(shù)要包括在重放表單參數(shù)中。如果用戶輸入了一個表單參數(shù),則該參數(shù)將被包括在重放表單參數(shù)中,除非,如上所述該參數(shù)被JavaScript改變了。如果表單參數(shù)在網(wǎng)絡(luò)瀏覽器20由JavaScript修改或產(chǎn)生,則JavaScript產(chǎn)生的參數(shù)而不是用戶輸入的參數(shù)將被包括在重放表單參數(shù)中。如果在用戶作出初始請求時提交了一個表單參數(shù),但是所述參數(shù)不是用戶輸入的或JavaScript產(chǎn)生的,則軟件程序5假定所述參數(shù)被包括在表單本身中。此時軟件程序5則用在始發(fā)網(wǎng)頁的當(dāng)前配置的表單中提供的表單參數(shù)代替在請求歷史記錄中初始保存的表單參數(shù)。作為一個例子,在始發(fā)網(wǎng)頁35中的一個表單可能包括一個當(dāng)路徑被最初確定時的會話ID。如果重放請求包括在請求歷史記錄中保存的表單參數(shù),則在作出重放請求時可能發(fā)生錯誤。所述錯誤可以使“會話過期”的信息返回軟件程序5,因而用戶的路徑將不能被正確地模擬。因此,軟件程序5將利用包括在網(wǎng)頁35的當(dāng)前配置的表單中的會話ID代替在請求歷史記錄中存儲的會話ID,借以阻止發(fā)生過期錯誤。用這種方式,軟件程序5可以把合適的內(nèi)容放入被更新的表單字段(form field)中(例如會話ID,時間信息等)。
如果在步80軟件程序5判斷保存的請求不是表單請求,則軟件程序5在步110確定在網(wǎng)頁35中的哪個URL鏈接對于保存的請求中的URL是最佳適配的。如果在網(wǎng)頁35上的鏈接中從保存的請求中找到了準(zhǔn)確的URL,則在下一個請求中使用這個精確的URL。如果不能找到精確的URL,則本發(fā)明確定是否能在網(wǎng)頁35上的和原始的URL請求的URL地址相應(yīng)的地址找到不匹配的URL。
在本文中,“地址”指的是在網(wǎng)頁30上的最初找到一個保存的請求的位置。當(dāng)用戶確定路徑時,軟件程序5能夠?qū)φ埱蟮拿總€URL分配一個網(wǎng)頁地址。所述地址可以根據(jù)網(wǎng)頁35中的標(biāo)記的結(jié)構(gòu)和屬性進行分配。例如,給定下面的網(wǎng)頁<pre listing-type="program-listing"><![CDATA[<html><head> <base href=http://www.company.com/server/home.html> <title>Server</title></head><body> <a href=first.html>Click HereFirst</a> <a href=http://www.company.com/next.html>Click Here Next</a></body></html>]]></pre>該結(jié)構(gòu)化網(wǎng)頁的根是一個<html>標(biāo)記。這個標(biāo)記含有兩個標(biāo)記,即<head>標(biāo)記和<body>標(biāo)記。<head>標(biāo)記含有<title>標(biāo)記,等等。這種結(jié)構(gòu)使得在HTML頁上的各個屬性值能夠被分配給一個地址。例如,具有文本“Click Here Next”的<a>的地址是“html
.body
.a[1].href
”。這個地址識別標(biāo)記或?qū)傩栽诰W(wǎng)頁35上的精確位置。如果在網(wǎng)頁35中沒有找到保存的請求中的精確的URL,則可以使用在相應(yīng)的地址處的URL。例如,如果在確定路徑網(wǎng)頁35時用戶點擊了“Click Here Next”,但是不能找到相應(yīng)的URLhttp://www.company.dom/next.html,則重放請求將對位于位網(wǎng)頁35中的地址“html
.body
.a[1].href
”處的URL作出。應(yīng)當(dāng)理解,可以使用能夠產(chǎn)生在網(wǎng)頁35的HTML內(nèi)的一個位置的其它的尋址方式。
或者,如果在網(wǎng)頁35中不能找到保存的請求中的精確的URL,則軟件程序5可以匹配一個部分的URL。例如,部分URL匹配可以包括根據(jù)URL之間匹配的字符的數(shù)量使有些不同的URL和保存的請求中的URL匹配。
當(dāng)網(wǎng)絡(luò)瀏覽器20通過JavaScript修改在網(wǎng)頁35中最初找到的URL時,軟件程序5也可以匹配URL。例如,如果JavaScript在對URL作出初始請求時對URL附加了個字符串,則具有附加字符串的請求將被存儲在請求歷史記錄中。不過,當(dāng)軟件程序5在重放期間針對保存的請求中使用的精確URL解析網(wǎng)頁35的當(dāng)前配置時,找不到所述URL,這是因為在網(wǎng)頁35中沒有所述字符串。軟件程序5可以對在網(wǎng)頁35的最初找到被請求URL的地址找到的URL附加上在請求歷史記錄中保存的字符串。
總之,在步110,軟件程序5可以用幾種方式找到一個最佳適配的URL。軟件程序5可以使用精確匹配或部分匹配在網(wǎng)頁35的當(dāng)前配置中選擇一個最佳適配的URL。軟件程序5也可以使用一個地址系統(tǒng)來選擇最佳適配的URL。軟件程序5也可以使用部分匹配和地址的組合來選擇最佳適配的URL,尤其是當(dāng)保存的請求中的URL是利用JavaScript修改的結(jié)果時。
如圖2所示,在選擇最佳適配的URL(步110)之后,或者在選擇并填充最佳適配的表單(步90和100)之后,在步120,軟件程序5可以可選地對重放請求附加合適的頭信息。許多網(wǎng)頁是瀏覽器相關(guān)的,即,它們根據(jù)所用的瀏覽器的類型返回不同的數(shù)據(jù)。為了精確地模擬用戶的路徑,軟件程序5發(fā)出被存儲在請求歷史記錄中的頭信息,使得響應(yīng)的網(wǎng)頁將返回同樣的內(nèi)容,就好象重放請求是由用戶的瀏覽器作出的一樣。此外,如果目標(biāo)網(wǎng)頁36要求用戶的身份驗證,例如通過返回狀態(tài)碼401,則本發(fā)明可以返回具有驗證頭信息的請求。因為用戶的模擬不涉及實際的用戶,所以沒有理由訪問目標(biāo)網(wǎng)頁36的驗證窗口,因而所述窗口可以被繞開。
在步130,軟件程序5可以根據(jù)cookie的創(chuàng)建細節(jié)確定是否應(yīng)當(dāng)把cookies返回目標(biāo)網(wǎng)頁36。此外,軟件程序5可以修改cookies,使得目標(biāo)網(wǎng)頁36不會返回過期錯誤。例如,如果用戶最初在3月3日訪問過一個網(wǎng)頁,并且返回有效期一天的cookiie,則本發(fā)明可以修改cookie,使得在cookie中返回的日期是路徑重放的當(dāng)前日期,例如10月17日,有效期一天。日期可以修改,這是因為在確定路徑時軟件程序5在數(shù)據(jù)庫15中存儲了cookie的創(chuàng)建細節(jié)。因為軟件程序5可以修改cookie,使得目標(biāo)網(wǎng)頁36不會返回錯誤信息,所以可以在以后通過動態(tài)網(wǎng)頁重放用戶的路徑。
在確定合適的目標(biāo)網(wǎng)頁36和要被包括的數(shù)據(jù)之后,在步140,軟件程序5可以作出重放請求。重放請求模擬應(yīng)當(dāng)由用戶發(fā)出的命令,以便重放由用戶在先前確定的路徑。在對目標(biāo)網(wǎng)服務(wù)器30發(fā)出重放請求之后,軟件程序5確定目標(biāo)網(wǎng)服務(wù)器30是否響應(yīng)了所述重放請求。如果目標(biāo)網(wǎng)服務(wù)器30響應(yīng)了,則使用被返回的目標(biāo)網(wǎng)頁36的當(dāng)前配置作為請求歷史記錄中的下一個請求的始發(fā)頁35。或者,目標(biāo)網(wǎng)服務(wù)器30可能不響應(yīng),或者返回錯誤信息。軟件程序5可能收到“超時錯誤”或者“網(wǎng)頁未找到”錯誤,表示合適的目標(biāo)網(wǎng)服務(wù)器30或者目標(biāo)網(wǎng)頁36沒有找到。如果軟件程序5收到這種性質(zhì)的錯誤,在步160,軟件程序5可以通過電子郵件或其它方法向用戶通知該錯誤信息,并終止重放過程。如果目標(biāo)網(wǎng)服務(wù)器30利用目標(biāo)網(wǎng)頁36響應(yīng),則在步170,軟件程序5可以對請求歷史記錄中保存的每個請求重復(fù)本發(fā)明的步60-160,從而重放由用戶最初確定的路徑。
本發(fā)明提供了一種用于重放預(yù)先確定的路徑的系統(tǒng)和方法,使得能夠模擬通過靜態(tài)和動態(tài)網(wǎng)頁的路徑。這使得和以前研發(fā)的用于重放通過網(wǎng)頁的路徑的方法相比,本發(fā)明可以應(yīng)用于數(shù)量大得多的網(wǎng)頁。
上面對本發(fā)明進行了詳細說明,應(yīng)當(dāng)理解,不脫離由所附權(quán)利要求限定的本發(fā)明的構(gòu)思和范圍,可以作出許多改變和改型。
權(quán)利要求
1.一種用于重放預(yù)先確定的通過一組網(wǎng)頁的路徑的方法,包括從請求歷史記錄中選擇相應(yīng)于一個保存的URL的保存的請求;如果該保存的請求是表單請求,則從始發(fā)網(wǎng)頁中的一組表單中選擇一個最佳適配的表單作為目標(biāo)URL;如果所述保存的請求不是表單請求,則在始發(fā)網(wǎng)頁上選擇一個最佳適配的URL作為目標(biāo)URL;以及對所述目標(biāo)URL發(fā)出重放請求。
2.如權(quán)利要求1所述的方法,其中所述重放請求包括一組重放表單參數(shù)。
3.如權(quán)利要求2所述的方法,其中所述一組重放表單參數(shù)包括一組保存的表單參數(shù);以及一組合并的表單參數(shù),其中所述一組合并的表單參數(shù)包括始發(fā)網(wǎng)頁的當(dāng)前配置的參數(shù)。
4.如權(quán)利要求3所述的方法,其中選擇一個最佳適配的表單的步驟包括如果一個潛在表單的URL不以所述保存的URL開始,則拒絕所述潛在表單;如果表單請求是POST,如果一組剩余表單中的某個剩余表單不要求如果對該剩余表單位出重放請求就應(yīng)當(dāng)被包括在重放表單參數(shù)中的每個參數(shù),則拒絕該剩余表單;如果所述剩余表單組仍然含有一個以上的剩余表單,如果該組剩余表單中的某一個剩余表單不要求所述保存表單參數(shù)組中的所有隱藏的表單參數(shù),則拒絕該剩余表單;以及如果在剩余表單組中仍然有一個以上的剩余表單,則以預(yù)定的方式從所述剩余表單組中選擇一個最佳適配的表單,否則,就選擇所述剩余表單組剩余的一個表單作為最佳適配的表單。
5.如權(quán)利要求3所述的方法,其中選擇最佳適配的表單的步驟還包括如果一個潛在表單的URL不以所述保存的URL開始,則拒絕所述潛在表單;如果表單請求是GET,如果剩余表單組中的某一個不要求被包括在保存的表單參數(shù)中的所有隱藏的表單參數(shù),則拒絕該剩余表單;如果所述剩余表單組仍然含有一個以上的剩余表單,如果重放,如果所述剩余表單組中的一個第二剩余表單不要求如果對該第二剩余表單作出重放請求就應(yīng)當(dāng)包括在重放表單參數(shù)中的所有表單參數(shù),則拒絕該第二剩余表單;以及如果在剩余表單組中仍然有一個以上的剩余表單,則以預(yù)定方式從所述剩余表單組中選擇一個最佳適配的表單,否則,就選擇所述剩余表單組剩余的一個表單作為最佳適配表單。
6.如權(quán)利要求1所述的方法,選擇最佳適配的URL的步驟還包括如果一個鏈接的URL和保存的URL精確地匹配,則選擇所述鏈接作為最佳適配的URL;如果所述鏈接的URL和保存的URL不精確匹配,則選擇位于一個和保存的請求相關(guān)的地址上的不匹配的URL作為最佳適配的URL。
7.如權(quán)利要求6所述的方法,還包括如果不匹配的URL和保存的URL部分地匹配,則選擇所述不匹配的URL作為最佳適配的URL。
8.如權(quán)利要求7所述的方法,還包括對不匹配的URL附加一個在保存的請求中包含的字符串,從而形成用于重放請求的URL。
9.如權(quán)利要求1所述的方法,其中所述重放請求包括一組頭信息,使得目標(biāo)網(wǎng)頁返回相同的內(nèi)容,就好象重放請求是由特定類型的瀏覽器作出的一樣。
10.如權(quán)利要求1所述的方法,其中所述重放請求包括一組cookie,并且所述一組cookie包含一個相應(yīng)于保存的cookie的修改的cookie,其中所述修改的cookie已被修改,使得目標(biāo)網(wǎng)頁返回的內(nèi)容就好象重放請求是由新的用戶作出的那樣。
11.如權(quán)利要求1所述的方法,還包括確定保存的請求是POST還是GET。
12.一種用于重放通過一組網(wǎng)頁的預(yù)先確定的路徑的方法,包括(a)從請求歷史記錄中選擇相應(yīng)于一個保存的URL的一個保存的請求;(b)如果所述保存的請求是表單請求,則從始發(fā)網(wǎng)頁中的一組表單中選擇一個最佳適配的表單作為目標(biāo)URL;(c)如果所述保存的請求不是表單請求,則在始發(fā)網(wǎng)頁上選擇一個最佳適配的URL作為目標(biāo)URL;(d)對所述目標(biāo)URL發(fā)出重放請求;以及(e)重復(fù)步(a)到(e),直到請求歷史記錄中的每個保存的請求都被重放為止。
13.一種用于重放通過一組網(wǎng)頁的預(yù)先確定的路徑的系統(tǒng),包括計算機可讀介質(zhì);以及被存儲在所述計算機可讀介質(zhì)上的一組軟件指令,其通過操作可以使計算機從請求歷史記錄中選擇相應(yīng)于一個保存的URL的保存的請求;如果所述保存的請求是表單請求,則從始發(fā)網(wǎng)頁中的一組表單中選擇一個最佳適配的表單作為目標(biāo)URL;以及如果所述保存的請求不是表單請求,則在始發(fā)網(wǎng)頁上選擇一個最佳適配的URL作為目標(biāo)URL;以及對所述目標(biāo)URL發(fā)出重放請求。
14.如權(quán)利要求13所述的系統(tǒng),其中所述重放請求包括一組重放表單參數(shù)。
15.如權(quán)利要求14所述的系統(tǒng),其中所述一組重放表單參數(shù)包括一組保存的表單參數(shù);以及一組合并的表單參數(shù),其中所述一組合并的表單參數(shù)包括始發(fā)網(wǎng)頁的當(dāng)前配置中的參數(shù)。
16.如權(quán)利要求15所述的系統(tǒng),其中所述軟件指令還通過以下步驟選擇一個最佳適配的表單如果一個潛在表單的URL不以所述保存的URL開始,則拒絕所述潛在表單;如果表單請求是POST,如果一組剩余表單中的某個剩余表單不要求如果對該剩余表單位出重放請求就應(yīng)當(dāng)被包括在重放表單參數(shù)中的每個參數(shù),則拒絕該剩余表單;如果所述剩余表單組仍然含有一個以上的剩余表單,如果該組剩余表單中的某一個剩余表單不要求所述保存表單參數(shù)組中的所有隱藏的表單參數(shù),則拒絕該剩余表單;以及如果在剩余表單組中仍然有一個以上的剩余表單,則以預(yù)定的方式從所述剩余表單組中選擇一個最佳適配的表單,否則,就以預(yù)定的方式選擇所述剩余表單組剩余的一個表單作為最佳適配的表單。
17.如權(quán)利要求15所述的系統(tǒng),其中所述軟件指令還通過以下步驟選擇一個最佳適配的表單如果一個目標(biāo)表單URL不以一個與保存的URL相應(yīng)的URL開始,則拒絕一個潛在表單;如果表單請求是GET,如果剩余表單組中的某一個不要求被包括在保存的表單參數(shù)中的所有隱藏的表單參數(shù),則拒絕該剩余表單;如果所述剩余表單組仍然含有一個以上的剩余表單,如果重放,如果所述剩余表單組中的一個第二剩余表單不要求如果對該第二剩余表單作出重放請求就應(yīng)當(dāng)包括在重放表單參數(shù)中的所有表單參數(shù),則拒絕該第二剩余表單;以及如果在剩余表單組中仍然有一個以上的剩余表單,則以預(yù)定方式從所述剩余表單組中選擇一個最佳適配的表單,否則,就選擇所述剩余表單組剩余的一個表單作為最佳適配表單。
18.如權(quán)利要求13所述的系統(tǒng),其中所述軟件指令還通過以下步驟選擇一個最佳適配的URL如果一個鏈接的URL和保存的URL精確地匹配,則選擇所述鏈接作為最佳適配的URL;如果所述鏈接的URL和保存的URL不精確匹配,則選擇位于一個和保存的請求相關(guān)的地址上的不匹配的URL作為最佳適配的URL。
19.如權(quán)利要求18所述的系統(tǒng),其中所述軟件指令還通過以下步驟選擇一個最佳適配的URL如果不匹配的URL和保存的URL部分地匹配,則選擇所述不匹配的URL作為最佳適配的URL。
20.如權(quán)利要求19所述的系統(tǒng),其中所述軟件還使所述計算機對不匹配的URL附加一個在保存的請求中包含的字符串,從而形成重放請求中的URL。
21.如權(quán)利要求13所述的系統(tǒng),其中所述重放請求包括一組頭信息,使得目標(biāo)網(wǎng)頁返回相同的內(nèi)容,就好象重放請求是由特定類型瀏覽器作出的一樣。
22.如權(quán)利要求13所述的系統(tǒng),其中所述重放請求包括一組cookie,并且所述一組cookie包含相應(yīng)于一個保存的cookie的修改的cookie,其中所述修改的cookie已被修改,使得目標(biāo)網(wǎng)頁返回的內(nèi)容就好象重放請求是由新的用戶作出的那樣。
23.如權(quán)利要求13所述的系統(tǒng),其中所述軟件程序還確定保存的請求是POST還是GET。
24.一種用來重放通過一組網(wǎng)頁的預(yù)先確定的路徑的系統(tǒng),包括中間服務(wù)器,其包括計算機可讀介質(zhì);計算機處理器;以及數(shù)據(jù)庫;以及被存儲在所述計算機可讀介質(zhì)上的一組軟件指令,使得所述計算機處理器能夠執(zhí)行以下操作從請求歷史記錄中選擇相應(yīng)于一個保存的URL的保存的請求,其中所述請求歷史記錄被存儲在所述數(shù)據(jù)庫上;如果保存的請求是一個起始URL請求,則選擇起始URL作為目標(biāo)URL;如果保存的請求是表單請求,則從始發(fā)網(wǎng)頁中的一組表單中選擇一個最佳適配的表單作為目標(biāo)URL;以及如果保存的請求不是表單請求,則在始發(fā)網(wǎng)頁上選擇一個最佳適配的URL作為URL;對所述目標(biāo)URL發(fā)出重放請求。
25.如權(quán)利要求24所述的系統(tǒng),其中所述重放請求包括一組頭信息,使得目標(biāo)網(wǎng)頁返回相同的內(nèi)容,就好象重放請求是由特定類型瀏覽器作出的一樣。
26.如權(quán)利要求25所述的系統(tǒng),其中所述重放請求包括一組cookie,并且所述一組cookie包含相應(yīng)于保存的cookie的修改的cookie,其中所述修改的cookie已被修改,使得目標(biāo)網(wǎng)頁返回的內(nèi)容就好象重放請求是由新的用戶作出的那樣。
27.一種用于創(chuàng)建通過一組網(wǎng)頁的路徑并重放所述路徑的方法,包括保存路徑,其中保存路徑的步驟還包括接收對于始發(fā)網(wǎng)頁的第一用戶請求;在中間服務(wù)器的請求歷史記錄中保存所述第一用戶請求;把所述第一用戶請求發(fā)送到目標(biāo)網(wǎng)服務(wù)器;接收來自目標(biāo)網(wǎng)服務(wù)器的始發(fā)網(wǎng)頁;調(diào)整所述始發(fā)網(wǎng)頁,使其指向中間服務(wù)器;把始發(fā)網(wǎng)頁發(fā)送給用戶;接收對于目標(biāo)網(wǎng)頁的附加用戶請求,其中所述附加的用戶請求基于始發(fā)網(wǎng)頁的被調(diào)整的內(nèi)容;以及在請求歷史記錄中記錄所述附加用戶請求;以及重放路徑,其中重放路徑的步驟包括從請求歷史記錄中選擇一個保存的請求;如果所述保存的請求相應(yīng)于一個起始URL,則選擇該起始URL作為目標(biāo)URL;如果所述保存的請求是表單請求,則從始發(fā)網(wǎng)頁當(dāng)前配置中的一組表單中選擇一個最佳適配的表單作為目標(biāo)URL;如果所述保存的請求不是表單請求,則從始發(fā)網(wǎng)頁的當(dāng)前配置中選擇一個最佳適配的URL作為目標(biāo)URL;以及對所述目標(biāo)URL發(fā)出重放請求。
全文摘要
一種用于重放預(yù)先確定的通過一組網(wǎng)頁的路徑的系統(tǒng)和方法。所述系統(tǒng)和方法包括從請求歷史記錄中按照時間順序選擇一個保存的請求。所述保存的請求相應(yīng)于在一組網(wǎng)頁中的一個網(wǎng)頁作出的一組用戶請求。此外,本發(fā)明包括確定保存的請求是否是表單請求,如果是,就在所述網(wǎng)頁組中的網(wǎng)頁上查找一個最佳適配的表單,并對最佳適配的表單發(fā)出重放請求。如果保存的請求不是表單請求,則向最佳適配URL發(fā)出重放請求。
文檔編號G06F12/00GK1589434SQ00816857
公開日2005年3月2日 申請日期2000年11月10日 優(yōu)先權(quán)日1999年11月12日
發(fā)明者克萊·戴維斯, 沃爾特·R·勃德威爾, 米切爾·C·克羅伯 申請人:Bmc軟件公司