一種反向代理的測試方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種反向代理的測試方法,包括:請求加載處理器將預先生成的http請求發(fā)送給反向代理服務器;所述反向代理服務器將收到的http請求轉(zhuǎn)發(fā)給應答回放處理器,并接收所述應答回放處理器在收到http請求后返回的預先錄制的response信息,將所述response信息轉(zhuǎn)發(fā)給所述請求加載處理器;所述請求加載處理器將從所述反向代理服務器收到的response信息與本地預設的response信息進行比較,依據(jù)比較結果得到所述反向代理服務器的測試結果;本發(fā)明還提供一種反向代理的測試系統(tǒng)。根據(jù)本發(fā)明提供的技術方案,能夠高效地實現(xiàn)反向代理服務器的功能測試。
【專利說明】一種反向代理的測試方法及系統(tǒng)
【【技術領域】】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)領域的測試技術,尤其涉及一種反向代理的測試方法及系統(tǒng)。【【背景技術】】
[0002]反向代理是指用反向代理服務器來接收internet上的連接請求,然后將該請求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡上的服務器,并將從服務器上得到的結果返回給internet上請求連接的客戶端。反向代理被廣泛應用于各大互聯(lián)網(wǎng),主要用于進行流量統(tǒng)計、流量轉(zhuǎn)發(fā)以及七層防攻擊等。
[0003]目前,反向代理的測試過程中需要利用不同的客戶端,如手機、計算機、平板電腦等,向反向代理服務器發(fā)送不同類型的http請求,同時需要在web服務器構造各種處理不同http請求的服務,用來測試反向代理服務器是否能正常工作。其中,各種不同的http請求以及web服務器上對應的服務都需要測試人員手動構造,因此現(xiàn)有的反向代理的測試過程時間較長,也很難模擬出真實的http請求和應答環(huán)境,這樣即使反向代理服務器上所有的測試用例都能夠通過檢驗,也不能夠保證反向代理服務器能夠在線上正常工作,從而導致web服務器不能對外提供正常的服務。
【
【發(fā)明內(nèi)容】
】
[0004]本發(fā)明提供了一種反向代理的測試方法及系統(tǒng),能夠高效地實現(xiàn)反向代理服務器的功能測試。
[0005]本發(fā)明的具體技術方案如下:
[0006]根據(jù)本發(fā)明一優(yōu)選實施例,一種反向代理的測試方法,包括:`[0007]請求加載處理器將預先生成的http請求發(fā)送給反向代理服務器;
[0008]所述反向代理服務器將收到的http請求轉(zhuǎn)發(fā)給應答回放處理器,并接收所述應答回放處理器在收到http請求后返回的預先錄制的response信息,將所述response信息轉(zhuǎn)發(fā)給所述請求加載處理器;
[0009]所述請求加載處理器將從所述反向代理服務器收到的response信息與本地預設的response信息進行比較,依據(jù)比較結果得到所述反向代理服務器的測試結果。
[0010]上述方法中,所述請求加載處理器預先生成http請求的方法為:
[0011 ] 請求加載處理器預先存儲web服務器的請求日志文件,所述web服務器的請求日志文件包含web服務器的請求日志信息;
[0012]請求加載處理器從所述web服務器的請求日志信息中提取字段;
[0013]請求加載處理器利用提取的字段填充預設的http請求模板,生成http請求。
[0014]上述方法中,所述請求加載處理器預先生成http請求的方法為:
[0015]請求加載處理器接收用戶輸入的http信息;
[0016]請求加載處理器利用用戶輸入的http信息填充預設的http請求模板,生成http請求。[0017]上述方法中,所述應答回放處理器預先錄制response信息的方法為:
[0018]應答回放處理器接收并存儲請求加載處理器或瀏覽器發(fā)送的http請求;
[0019]應答回放處理器將收到的http請求轉(zhuǎn)發(fā)給web服務器,并接收所述web服務器返回的對應所述http請求的response信息;
[0020]應答回放處理器存儲所述response信息及response信息與http請求的對應關系O
[0021]上述方法中,請求加載處理器中預設response信息的方法為:
[0022]請求加載處理器接收從應答回放處理器拷貝出的response信息及response信息與http請求的對應關系。
[0023]上述方法中,所述應答回放處理器在收到http請求后返回預先錄制的response信息的方法為:
[0024]應答回放處理器依據(jù)預設的http請求與response信息的對應關系,找到所述http請求對應的response信息;
[0025]應答回放處理器依據(jù)預先設置的發(fā)送延時固定值或發(fā)送延時區(qū)間中的隨機值,將找到的response信息返回給反向代理服務器。
[0026]上述方法中,所述依據(jù)比較結果得到所述反向代理服務器的測試結果,具體為:
[0027]如果兩個response信息中的信息不相同,則判斷出反向代理服務器的功能存在異常,將報警郵件發(fā)送到預設的用戶郵箱;所述報警郵件中包括:從反向代理服務器收到的異常的response信息、異常的response信息對應的http請求、本地預設的所述http請求對應的response信息;
[0028]如果兩個response信息中的信息相同,則判斷出反向代理服務器的功能正常,將測試報告發(fā)送到預設的用戶郵箱;所述測試報告包括:發(fā)送的http請求的數(shù)量、每個響應時間段對應的response信息的個數(shù)、響應時間的平均值以及收到的response信息中的返回值。
[0029]一種反向代理的測試系統(tǒng),包括:請求加載處理器、反向代理服務器、應答回放處理器;其中,
[0030]請求加載處理器,用于將預先生成的http請求發(fā)送給反向代理服務器;
[0031]反向代理服務器,用于將收到的http請求轉(zhuǎn)發(fā)給應答回放處理器,并接收所述應答回放處理器在收到http請求后返回的預先錄制的response信息,將所述response信息轉(zhuǎn)發(fā)給所述請求加載處理器;
[0032]請求加載處理器,還用于將從所述反向代理服務器收到的response信息與本地預設的response信息進行比較,依據(jù)比較結果得到所述反向代理服務器的測試結果。
[0033]上述系統(tǒng)中,所述請求加載處理器預先生成http請求,具體為:
[0034]預先存儲web服務器的請求日志文件,所述web服務器的請求日志文件包含web服務器的請求日志信息;
[0035]從所述web服務器的請求日志信息中提取字段;
[0036]利用提取的字段填充預設的http請求模板,生成http請求。
[0037]上述系統(tǒng)中,所述請求加載處理器預先生成http請求,具體為:
[0038]接收用戶輸入的http信息;[0039]利用用戶輸入的http信息填充預設的http請求模板,生成http請求。
[0040]上述系統(tǒng)中,所述應答回放處理器預先錄制response信息,具體為:
[0041]接收并存儲請求加載處理器或瀏覽器發(fā)送的http請求;
[0042]將收到的http請求轉(zhuǎn)發(fā)給web服務器,并接收所述web服務器返回的對應所述http請求的response信息;
[0043]存儲所述response信息及response信息與http請求的對應關系。
[0044]上述系統(tǒng)中,在請求加載處理器中預設response信息,具體為:
[0045]請求加載處理器接收從應答回放處理器拷貝出的response信息及response信息與http請求的對應關系。
[0046]上述系統(tǒng)中,所述應答回放處理器在收到http請求后返回預先錄制的response信息,具體為:
[0047]依據(jù)預設的http請求與response信息的對應關系,找到所述http請求對應的response 信息;
[0048]依據(jù)預先設置的發(fā)送延時固定值或發(fā)送延時區(qū)間中的隨機值,將找到的response信息返回給反向代理服務器。
[0049]上述系統(tǒng)中,所 述請求加載處理器依據(jù)比較結果得到所述反向代理服務器的測試結果,具體為:
[0050]如果兩個response信息中的信息不相同,則判斷出反向代理服務器的功能存在異常,將報警郵件發(fā)送到預設的用戶郵箱;所述報警郵件中包括:從反向代理服務器收到的異常的response信息、異常的response信息對應的http請求、本地預設的所述http請求對應的response信息;
[0051]如果兩個response信息中的信息相同,則判斷出反向代理服務器的功能正常,將測試報告發(fā)送到預設的用戶郵箱;所述測試報告包括:發(fā)送的http請求的數(shù)量、每個響應時間段對應的response信息的個數(shù)、響應時間的平均值以及收到的response信息中的返回值。
[0052]由以上技術方案可以看出,本發(fā)明提供的具有以下有益效果:
[0053]通過請求加載處理器、反向代理服務器和應答回放處理器之間的閉環(huán)自動交互,實現(xiàn)反向代理服務器的功能測試,不需要在web服務器上搭建復雜的web服務和應答環(huán)境,從而大大降低測試的時間,提高反向代理的測試效率。
【【專利附圖】
【附圖說明】】
[0054]圖1是本發(fā)明實現(xiàn)反向代理的測試系統(tǒng)的優(yōu)選實施例的結構示意圖;
[0055]圖2是本發(fā)明實現(xiàn)反向代理的測試方法的優(yōu)選實施例的流程示意圖;
[0056]圖3是本發(fā)明應答回放處理器錄制response信息方法的流程示意圖;
[0057]圖4是本發(fā)明測試反向代理服務器時的組網(wǎng)示意圖。
【【具體實施方式】】
[0058]本發(fā)明的基本思想是:請求加載處理器將預先生成的http請求發(fā)送給反向代理服務器;所述反向代理服務器將收到的http請求轉(zhuǎn)發(fā)給應答回放處理器,并接收所述應答回放處理器在收到http請求后返回的預先錄制的response信息,將所述response信息轉(zhuǎn)發(fā)給所述請求加載處理器;所述請求加載處理器將從所述反向代理服務器收到的response信息與本地預設的response信息進行比較,依據(jù)比較結果得到所述反向代理服務器的測試結果。
[0059]為了使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面結合附圖和具體實施例對本發(fā)明進行詳細描述。
[0060]本發(fā)明提供一種反向代理的測試系統(tǒng),圖1是本發(fā)明實現(xiàn)反向代理的測試系統(tǒng)的優(yōu)選實施例的結構示意圖,如圖1所示,該系統(tǒng)包括:請求加載處理器10、應答回放處理器11和反向代理服務器12。 [0061]基于上述系統(tǒng),本發(fā)明還提供一種反向代理的測試方法,圖2是本發(fā)明實現(xiàn)反向代理的測試方法的優(yōu)選實施例的流程示意圖,如圖2所示,該優(yōu)選實施例包括以下步驟:
[0062]步驟201,請求加載處理器從web服務器的請求日志信息中提取字段,依據(jù)提取的字段和預設的http請求模板生成http請求;或請求加載處理器接收輸入的http信息,依據(jù)所述http信息和預設的http請求模板生成http請求。
[0063]具體的,本優(yōu)選實施例中,設置有一個以上請求加載處理器,對于每個請求加載處理器,用戶都需要預先將web服務器的請求日志文件存儲到請求加載處理器中,web服務器的請求日志文件的內(nèi)容是在用戶通過瀏覽器發(fā)送http請求給web服務器時,web服務器依據(jù)收到的http請求保存的日志,屬于線上真實的http請求日志,該web服務器的請求日志文件中包含一個以上web服務器的請求日志信息,請求加載處理器依據(jù)預設的策略從web服務器的請求日志信息中提取多個字段,如請求類型、請求地址、瀏覽器能夠解碼的數(shù)據(jù)編碼方式、cookie數(shù)據(jù)、瀏覽器類型、源URL、初始URL中的主機和端口等;所述預設的策略可以是提取字符串中引號所引用的字段或提取字符串中空格后的字段;請求加載處理器在從web服務器的請求日志信息中提取出字段后,依據(jù)用戶預先設置的http請求模板,將提取出的字段填充到http請求模板,生成http請求;這里,請求加載處理器需要依據(jù)web服務器的請求日志文件中web服務器的請求日志信息的數(shù)量,生成相同數(shù)量的http請求,即為每個web服務器的請求日志信息都對應生成一個http請求。
[0064]或者,請求加載處理器接收用戶輸入的http信息,該http信息包括:請求類型、請求地址、瀏覽器能夠解碼的數(shù)據(jù)編碼方式、cookie數(shù)據(jù)、瀏覽器類型、源URL、初始URL中的主機和端口等;然后,請求加載處理器將用戶輸入的http信息填充到用戶預先設置的http請求模板,生成http請求;這里,請求加載處理器支持用戶輸入的http信息,可以非常方便的實現(xiàn)構造各種類型的http請求,用于測試反向代理服務器的功能。
[0065]例如,有如下一個web服務器的請求日志信息:
[0066]61.236.32.126—[05/Mar/2007:00:00:00+0800] " GET/index.php?tn=btplus_cb HTTP/1.1" 2001467mod_gzip: 54pct." www.host.com" " www.referer.com" BAIDUID= 141550BC0DD29E1F93BFD49836DA40CC;/ Mozilla/4.0 (compatible ;MSIE 6.0; Windows NT5.1;SV1)"
[0067]其中,GET為請求類型,替換http請求模板中的method字段;/index.php?tn=btplus_cb HTTP/1.1為請求地址,替換http請求模板中的URL字段;gzip為瀏覽器能夠解碼的數(shù)據(jù)編碼方式,替換http請求模板中的Accept-Encoding字段;BAIDUID=141550BC0DD29E1F93BFD49836DA40CC 為 cookie 數(shù)據(jù),替換 http 請求模板中的 cookie 字段;Mozilla/4.0 (compatible;MSIE 6.0; Windows NT 5.I; SVl 為瀏覽器類型,替換 http 請求模板中的User-Agent字段;www.host, com為初始URL中的主機和端口,替換http請求模板中的Host字段;www.referer.com為源URL,替換http請求模板中的Referer字段;此外,http 請求模板中的 Accept 字段固定為 text/html, application/xhtml+xml, application/xml;q=0.9,*/*;q=0.8。
[0068]依據(jù)從上述web服務器的請求日志信息的示例中提取的字段,生成的http請求如下:
[0069]" GET//index.php?tn=btplus_cb HTTP/1.1\r\nHost: www.host.com\r\nAccept: text/html, application/xhtml+xml, application/xml; q=0.9,氺/氺;q=0.8\r\nAccept-Encoding:gzip, deflate\r\nReferer:www.referer.com\r\nCookie:BAIDUID=141550BC0DD29ElF93BFD49836DA40CC;\r\nUser-Agent:Mozilla/4.0(compatible;MSIE6.0;Windows NT 5.1;SVl)\r\n\r\n"。
[0070]例如,請求加載處理器可以接收用戶輸入的如下http信息:
[0071]GET/testbfe.php HTTP/1.1Host:db_testing-oped3001.dbOl.baidu.com:8901User-Agent:Mozilla/5.0 (windows NT 5.1; rv:3.0)Gecko/20100101FireFox/13.0.1Accept-Encoding:gzip, defIateConnection:keep-aliveCookie:BAIDU=ABEE505768E4367875D6382A71939FEB:FG=l;BDUT=tbjh0EB0DD6C71BB689AC4ClC1307CFDB346138b7d734011;USERID=0cac808c2ebd401391dc4d87;Hm_lvt_t46af353ab5a92ddf70d8368b2529cl0=1342609618035;Hm_lvt_e7617bc79ca305e55d9b5d393123de33=1341297466246;6a05b31484fdc3f8a9edb6307d81ef7a=706f5996fac620d8aall3313a034898a0881a5d4%3A4%3A%7Bi%3A0%3Bs%3A5%3A5%3A%22admin%22%3Bi%3Al%3Bs%3A5%3A%22admin%22%3Bi%3A2%3Bi%3A2592000%3Bi%3A3%3Ba3A0%3A%7B%7D%7D;UUAPTGC=TGT-602800-E0C3dchi70EyurqslcFYCKJlzaNuPFImGqsprpFoIB6N7RfbEF-vvap·
[0072]步驟202,應答回放處理器對收到的http請求進行存儲,并轉(zhuǎn)發(fā)給web服務器,接收web服務器返回的response信息;應答回放處理器和請求加載處理器存儲該response信息及response信息與http請求的對應關系。
[0073]具體的,用戶在應答回放處理器中預先設置一個開關,該開關用于控制應答回放處理器的工作模式,該開關可以通過設置應答回放處理器的屬性實現(xiàn),例如,將應答回放處理器的屬性中status的字段值設置為I時,應答回放處理器的工作模式為錄制模式,開啟信息錄制功能,將應答回放處理器的屬性中status的字段值設置為O時,應答回放處理器的工作模式為回放模式,開啟信息回放功能。
[0074]當應答回放處理器的工作模式被設置為錄制模式時,需要進行response信息的錄制,如圖3所示,response信息的具體錄制過程如下:
[0075]首先,應答回放處理器接收http請求,該http請求可以是請求加載處理器發(fā)送的http請求;其中,可以預先在請求加載處理器中設置應答回放處理器的IP地址和端口,請求加載處理器就可以依據(jù)該IP地址和端口,將生成的http請求發(fā)送給應答回放處理器,可以多個請求加載處理器依次發(fā)送http請求給應答回放處理器,也可以多個請求加載處理器同時發(fā)送http請求給應答回放處理器;或者,用戶可以通過瀏覽器發(fā)送http請求給應答回放處理器,如此,應答回放處理器接收的http請求是瀏覽器發(fā)送的http請求。
[0076]然后,應答回放處理器一方面將收到的http請求保存到本地的request文件中,其中,應答回放處理器在保存收到的http請求時,需要依據(jù)接收順序保存http請求;例如,應答回放處理器收到請求加載處理器A的http請求后,在request文件中保存該http請求,然后收到請求加載處理器B的http請求后,在request文件中保存該http請求,該http請求位于請求加載處理器A的http請求的后面。另一方面應答回放處理器依據(jù)用戶預設的web服務器的IP地址和端口,并依據(jù)http請求的接收順序?qū)⑹盏降膆ttp請求依次發(fā)送給該對應的web服務器。
[0077]最后,web服務器在收到http請求后,會做出響應,并構造該http請求對應的response信息發(fā)送給應答回放處理器;這里,應答回放處理器在向web服務器發(fā)送收到的http請求時,是采用串行發(fā)送方式,即應答回放處理器發(fā)送一個http請求后,就等待接收web服務器返回的response信息,當收到web服務器返回的response信息后,才發(fā)送下一個http請求給web服務器,以此類推;如此,能夠保證應答回放處理器在發(fā)送http請求后,收到的response信息為該http請求對應的response信息,從而應答回放處理器能夠建立http請求與response信息的對應關系,并將http請求與response信息的對應關系保存到本地的response文件中;同時,應答回放處理器在response文件中依據(jù)接收順序保存收到的response信息。
[0078]當應答回放處理器在發(fā)送完所有收到的http請求,且收到所有http請求對應的response信息后,認為應答回放處理器的錄制工作完畢,然后依據(jù)設置的郵箱,將錄制完畢的提示郵件發(fā)送給用戶,用戶就可以將應答回放處理器的屬性中status的字段值由I修改為0,將應答回放處理器的工作模式設置為回放模式,同時將應答回放處理器的response文件中保存response信息及http請求與response信息的對應關系拷貝到http請求對應的請求加載處理器中,如此,請求加載處理器就保存有生成的http請求與對應的response信息。
[0079]本優(yōu)選實施例中,應答回放處理器可以只錄制一次response信息,后續(xù)進行反向代理服務器的測試時,可以直接利用預先錄制好的response信息。
[0080]需要說明的是,上述的步驟20廣步驟202為請求加載處理器生成http請求以及應答回放處理器錄制response信息的過程,屬于反向代理服務器測試過程中的準備階段,反向代理服務器的真正測試階段為下述的步驟203步驟205 ;可以只進行一次http請求的生成和一次response信息的錄制,在進行反向代理服務器的測試時,可以直接利用http請求和response信息,直接執(zhí)行步驟203。
[0081]步驟203,請求加載處理器將預先生成的http請求發(fā)送給反向代理服務器。
[0082]具體的,用戶依據(jù)測試需求預先在請求加載處理器上配置http請求的發(fā)送頻率;在應答回放處理器錄制好response信息后,就可以進行反向代理服務器的測試。
[0083]如圖4所示,在進行反向代理服務器的測試時,每個請求加載處理器都依據(jù)預設的http請求的發(fā)送頻率和本地http請求的生成順序,將生成的http請求發(fā)送給反向代理服務器;這里,本優(yōu)選實施例中可以有一個以上請求加載處理器,因此在進行反向代理服務器的測試時,可以有一部分請求加載處理器向反向代理服務器發(fā)送的http請求是依據(jù)web服務器的請求日志信息生成的,其余的請求加載處理器向反向代理服務器發(fā)送的http請求是依據(jù)用戶輸入的http信息生成的。
[0084]步驟204,反向代理服務器將收到的http請求轉(zhuǎn)發(fā)給應答回放處理器,并接收應答回放處理器在收到http請求后返回的預先錄制的response信息,將該response信息轉(zhuǎn)發(fā)給對應的請求加載處理器。
[0085]具體的,如圖4所示,反向代理服務器在收到請求加載處理器發(fā)送的http請求后,將http請求轉(zhuǎn)發(fā)給應答回放處理器,應答回放處理器依據(jù)本地保存的http請求與response信息的對應關系,找到收到的http請求對應的response信息,然后將找到的response信息返回給反向代理服務器。這里,反向代理服務器在收到http請求后,為每個http請求都建立一個會話通道,該會話通道作為請求加載處理器、反向代理服務器與應答回放處理器之間的交互通道,通過該會話通道,反向代理服務器可以將接收的http請求轉(zhuǎn)發(fā)給應答回放處理器,然后接收應答回放處理器返回的response信息,并將response信息發(fā)送給發(fā)出該http請求的請求加載處理器;在該http請求和response信息交互的過程中,請求加載處理器與反向代理服務器之間的會話通道、反向代理服務器與應答回放處理器之間的會話通道將一直存在,直到反向代理服務器將應答回放處理器返回的response信息發(fā)送到請求加載處理器,即完整的應答會話完成后,反向代理服務器才將為該http請求建立的會話通道釋放,建立的不同會話通道之間不會相互影響,從而確保反向代理服務器能夠?qū)⑹盏降膔esponse信息,轉(zhuǎn)發(fā)給該response信息對應的http請求所對應的請求加載處理器。
[0086]本優(yōu)選實施例中,應答回放處理器因為已經(jīng)預先錄制了 web服務器上真實的response信息,因此,進行反向代理服務器的測試時,不再需要web服務器向反向代理服務器發(fā)送response信息,而是由應答回放處理器替代web服務器的工作,將預先錄制的response信息發(fā)送給反向代理服務器。
[0087]其中,應答回放處理器在向反向代理服務器發(fā)送response信息時,可以依據(jù)預先設置的發(fā)送延時固定值來發(fā)送response信息;或者,由于web服務器在不同的請求壓力下響應的速度會不同,因此為了實現(xiàn)應答回放處理器能夠更好的模擬web服務器的工作,用戶需要依據(jù)測試需求預先在web服務器中配置response信息的發(fā)送延時區(qū)間,web服務器在從反向代理服務器收到http請求后,可以在預設的發(fā)送延時區(qū)間中隨機選擇一個具體時間值,然后依據(jù)選出的具體時間值作為發(fā)送延時來發(fā)送response信息給反向代理服務器。
[0088]步驟205,請求加載處理器將從反向代理服務器收到的response信息與本地預設的response信息進行比較,依據(jù)比較結果得到反向代理服務器的測試結果。
[0089]具體的,預先在請求加載處理器中設置多個響應時間段,如:(Tl000ms、1000ms?2000ms、2000ms?5000ms、大于 5000ms。
[0090]由于請求加載處理器是按照順序發(fā)送http請求給反向代理服務器,反向代理服務器也是按照接收http請求的順序轉(zhuǎn)發(fā)http請求給應答回放處理器,因此,請求加載處理器從反向代理服務器收到response信息后,依據(jù)response信息的接收順序可以找到對應的http請求,然后在本地保存的http請求與response信息的對應關系中,找到該http請求對應的response信息,將找到的response信息與從反向代理服務器收到的response信息進行比較,判斷兩個response信息中的信息是否相同。[0091]如果兩個response信息中的信息不相同,表示經(jīng)過反向代理服務器轉(zhuǎn)發(fā)的response信息不符合預期,反向代理服務器的功能存在異常,因此,需要將針對該異常的報警郵件發(fā)送到預設的用戶郵箱,向用戶報警,以便用戶對反向代理服務器進行調(diào)試;其中,報警郵件中包括如下內(nèi)容:從反向代理服務器收到的異常的response信息、異常的response信息對應的http請求、本地保存的該http請求對應的response信息。
[0092]如果兩個response信息中的信息相同,表示經(jīng)過反向代理服務器轉(zhuǎn)發(fā)的response信息符合預期,反向代理服務器的功能正常,因此,請求加載處理器需要將測試報告發(fā)送到預設的用戶郵箱;其中,測試報告包括反向代理服務器的相關功能數(shù)據(jù),該相關功能數(shù)據(jù)包括以下內(nèi)容:請求加載服務器發(fā)送的http請求的數(shù)量、每個響應時間段對應的response信息的個數(shù)、響應時間的平均值以及收到的response信息中的返回值。
[0093]其中,請求加載處理器在每發(fā)送一個http請求后,都要啟動一個對應的計時器,直到收到該http請求對應的response信息時停止該計時器,然后根據(jù)計時器的時間確定響應時間,判斷該響應時間所在的響應時間段,然后將該響應時間段的計數(shù)器值加I。請求加載處理器還可以依據(jù)確定的響應時間計算http請求的響應時間的平均值。請求加載處理器收到的response信息中的信息頭中將攜帶http請求的返回值,該返回值指的是http協(xié)議狀態(tài)碼,主要包括以下五類返回值:返回值為lxx,表示保留;返回值為2XX,表示請求成功接收;返回值為3XX,表示為完成請求用戶需要進一步細化請求;返回值為4xx,表示用戶請求錯誤;返回值為5XX,表示反向代理服務器錯誤。
[0094]為實現(xiàn)上述系統(tǒng),如圖1所示,所述反向代理的測試系統(tǒng)中:
[0095]請求加載處理器10,用于將預先生成的http請求發(fā)送給反向代理服務器12 ;
[0096]反向代理服務器12,用于將收到的http請求轉(zhuǎn)發(fā)給應答回放處理器11,并接收所述應答回放處理器11在收到http請求后返回的預先錄制的response信息,將所述response信息轉(zhuǎn)發(fā)給所述請求加載處理器10 ;
[0097]請求加載處理器10,還用于將從所述反向代理服務器12收到的response信息與本地預設的response信息進行比較,依據(jù)比較結果得到所述反向代理服務器12的測試結
果O
[0098]其中,所述請求加載處理器10預先生成http請求,具體為:預先存儲web服務器的請求日志文件,所述web服務器的請求日志文件包含web服務器的請求日志信息;從所述web服務器的請求日志信息中提取字段;利用提取的字段填充預設的http請求模板,生成http請求。
[0099]或,所述請求加載處理器10預先生成http請求,具體為:接收用戶輸入的http信息;利用用戶輸入的http信息填充預設的http請求模板,生成http請求。
[0100]其中,所述應答回放處理器11預先錄制response信息,具體為:接收并存儲請求加載處理器或瀏覽器發(fā)送的http請求;將收到的http請求轉(zhuǎn)發(fā)給web服務器,并接收所述web服務器返回的對應所述http請求的response信息;存儲所述response信息及response信息與http請求的對應關系。
[0101]其中,在請求加載處理器10中預設response信息,具體為:請求加載處理器接收從應答回放處理器拷貝出的response信息及response信息與http請求的對應關系。
[0102]其中,所述應答回放處理器11在收到http請求后返回預先錄制的response信息,具體為:依據(jù)預設的http請求與response信息的對應關系,找到所述http請求對應的response信息;依據(jù)預先設置的發(fā)送延時固定值或發(fā)送延時區(qū)間中的隨機值,將找到的response信息返回給反向代理服務器。
[0103]其中,所述請求加載處理器10依據(jù)比較結果得到所述反向代理服務器的測試結果,具體為:如果兩個response信息中的信息不相同,則判斷出反向代理服務器的功能存在異常,將報警郵件發(fā)送到預設的用戶郵箱;所述報警郵件中包括:從反向代理服務器收到的異常的response信息、異常的response信息對應的http請求、本地預設的所述http請求對應的response信息;如果兩個response信息中的信息相同,貝U判斷出反向代理服務器的功能正常,將測試報告發(fā)送到預設的用戶郵箱;所述測試報告包括:發(fā)送的http請求的數(shù)量、每個響應時間段對應的response信息的個數(shù)、響應時間的平均值以及收到的response信息中的返回值。
[0104]本發(fā)明的上述技術方案具體有以下有益效果:
[0105]1、進行測試時,將線上真實的http請求和用戶構建的測試http請求相結合,來對反向代理服務器進行測試,能夠?qū)Ψ聪虼矸掌鬟M行全面地測試。
[0106]2、應答回放處理器采用隨機的發(fā)送延時來返回response信息,能夠?qū)崿F(xiàn)在線下模擬線上真實的web服務環(huán)境,從而保證反向代理服務器的測試結果與線上測試結果相符。
[0107]3、請求加載處理器當判斷出反向代理服務器出現(xiàn)異常時,能夠自動地進行報警,以便測試人員及時調(diào)試反向代理服務器,提高測試效率。
[0108]4、能夠調(diào)節(jié)請求加載處理器上http請求的發(fā)送頻率,能夠自動統(tǒng)計響應時間的平均值,并且能夠自動記錄http請求的返回值,極大的提高了反向代理服務器的測試效率。
[0109]5、在進行反向代理服務器的測試時,http請求依據(jù)線上真實請求日志生成,且response信息也來自真實的web服務器,因此在不需要在web服務器上構造各種復雜的服務,也不需要手動構造http請求的情況下,就能夠模擬出真實的http請求和應答環(huán)境,大大降低環(huán)境搭建所需要的時間,提高反向代理服務器的測試效率。
[0110]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明保護的范圍之內(nèi)。
【權利要求】
1.一種反向代理的測試方法,其特征在于,該方法包括: 請求加載處理器將預先生成的http請求發(fā)送給反向代理服務器; 所述反向代理服務器將收到的http請求轉(zhuǎn)發(fā)給應答回放處理器,并接收所述應答回放處理器在收到http請求后返回的預先錄制的response信息,將所述response信息轉(zhuǎn)發(fā)給所述請求加載處理器; 所述請求加載處理器將從所述反向代理服務器收到的response信息與本地預設的response信息進行比較,依據(jù)比較結果得到所述反向代理服務器的測試結果。
2.根據(jù)權利要求1所述的方法,其特征在于,所述請求加載處理器預先生成hp請求的方法為: 請求加載處理器預先存儲web服務器的請求日志文件,所述web服務器的請求日志文件包含web服務器的請求日志信息; 請求加載處理器從所述web服務器的請求日志信息中提取字段; 請求加載處理器利用提取的字段填充預設的http請求模板,生成http請求。
3.根據(jù)權利要求1所述的方法,其特征在于,所述請求加載處理器預先生成http請求的方法為: 請求加載處理器接收用戶輸入的http信息; 請求加載處理器利用用戶輸入的http信息填充預設的http請求模板,生成http請求。
4.根據(jù)權利要求1所述的方法,其特征在于,所述應答回放處理器預先錄制response信息的方法為: 應答回放處理器接收并存儲請求加載處理器或瀏覽器發(fā)送的http請求; 應答回放處理器將收到的http請求轉(zhuǎn)發(fā)給web服務器,并接收所述web服務器返回的對應所述http請求的response信息; 應答回放處理器存儲所述response信息及response信息與http請求的對應關系。
5.根據(jù)權利要求4所述的方法,其特征在于,請求加載處理器中預設response信息的方法為: 請求加載處理器接收從應答回放處理器拷貝出的response信息及response信息與http請求的對應關系。
6.根據(jù)權利要求1所述的方法,其特征在于,所述應答回放處理器在收到http請求后返回預先錄制的response信息的方法為: 應答回放處理器依據(jù)預設的http請求與response信息的對應關系,找到所述http請求對應的response信息; 應答回放處理器依據(jù)預先設置的發(fā)送延時固定值或發(fā)送延時區(qū)間中的隨機值,將找到的response信息返回給反向代理服務器。
7.根據(jù)權利要求1所述的方法,其特征在于,所述依據(jù)比較結果得到所述反向代理服務器的測試結果,具體為: 如果兩個response信息中的信息不相同,則判斷出反向代理服務器的功能存在異常,將報警郵件發(fā)送到預設的用戶郵箱;所述報警郵件中包括:從反向代理服務器收到的異常的response信息、異常的response信息對應的http請求、本地預設的所述http請求對應的response信息; 如果兩個response信息中的信息相同,則判斷出反向代理服務器的功能正常,將測試報告發(fā)送到預設的用戶郵箱;所述測試報告包括:發(fā)送的http請求的數(shù)量、每個響應時間段對應的response信息的個數(shù)、響應時間的平均值以及收到的response信息中的返回值。
8.一種反向代理的測試系統(tǒng),其特征在于,該系統(tǒng)包括:請求加載處理器、反向代理服務器、應答回放處理器;其中, 請求加載處理器,用于將預先生成的http請求發(fā)送給反向代理服務器; 反向代理服務器,用于將收到的http請求轉(zhuǎn)發(fā)給應答回放處理器,并接收所述應答回放處理器在收到http請求后返回的預先錄制的response信息,將所述response信息轉(zhuǎn)發(fā)給所述請求加載處理器; 請求加載處理器,還用于將從所述反向代理服務器收到的response信息與本地預設的response信息進行比較,依據(jù)比較結果得到所述反向代理服務器的測試結果。
9.根據(jù)權利要求8所述的系統(tǒng),其特征在于,所述請求加載處理器預先生成http請求,具體為: 預先存儲web服務器的請求日志文件,所述web服務器的請求日志文件包含web服務器的請求日志信息; 從所述web服務器的請 求日志信息中提取字段; 利用提取的字段填充預設的http請求模板,生成http請求。
10.根據(jù)權利要求8所述的系統(tǒng),其特征在于,所述請求加載處理器預先生成hp請求,具體為: 接收用戶輸入的http信息; 利用用戶輸入的http信息填充預設的http請求模板,生成http請求。
11.根據(jù)權利要求8所述的系統(tǒng),其特征在于,所述應答回放處理器預先錄制response信息,具體為: 接收并存儲請求加載處理器或瀏覽器發(fā)送的http請求; 將收到的http請求轉(zhuǎn)發(fā)給web服務器,并接收所述web服務器返回的對應所述http請求的response信息; 存儲所述response信息及response信息與http請求的對應關系。
12.根據(jù)權利要求11所述的系統(tǒng),其特征在于,在請求加載處理器中預設response信息,具體為: 請求加載處理器接收從應答回放處理器拷貝出的response信息及response信息與http請求的對應關系。
13.根據(jù)權利要求8所述的系統(tǒng),其特征在于,所述應答回放處理器在收到http請求后返回預先錄制的response信息,具體為: 依據(jù)預設的http請求與response信息的對應關系,找到所述http請求對應的response 信息; 依據(jù)預先設置的發(fā)送延時固定值或發(fā)送延時區(qū)間中的隨機值,將找到的response信息返回給反向代理服務器。
14.根據(jù)權利要求8所述的系統(tǒng),其特征在于,所述請求加載處理器依據(jù)比較結果得到所述反向代理服務器的測試結果,具體為: 如果兩個response信息中的信息不相同,則判斷出反向代理服務器的功能存在異常,將報警郵件發(fā)送到預設的用戶郵箱;所述報警郵件中包括:從反向代理服務器收到的異常的response信息、異常的response信息對應的http請求、本地預設的所述http請求對應的response信息; 如果兩個response信息中的信息相同,則判斷出反向代理服務器的功能正常,將測試報告發(fā)送到預設的用戶郵箱;所述測試報告包括:發(fā)送的http請求的數(shù)量、每個響應時間段對應的response信息的個數(shù)、響應時間的平均值以及收到的response信息中的返回值。
【文檔編號】H04L29/08GK103795762SQ201210431552
【公開日】2014年5月14日 申請日期:2012年11月1日 優(yōu)先權日:2012年11月1日
【發(fā)明者】劉勇, 李云鵬 申請人:百度在線網(wǎng)絡技術(北京)有限公司