一種基于模擬登錄的流量回放方法和裝置制造方法
【專利摘要】本發(fā)明提供了一種基于模擬登錄的流量回放方法和裝置,其中方法包括:S1、解析回放的http請求,提取其中的用戶信息;S2、查詢已經(jīng)建立的關(guān)系映射表中是否存在與所述用戶信息對應(yīng)的登錄信息,如果是,執(zhí)行步驟S4;否則,執(zhí)行步驟S3;S3、利用所述http請求進(jìn)行模擬登錄,獲取登錄信息,將所述用戶信息與該登錄信息添加至所述關(guān)系映射表中;S4、將所述關(guān)系映射表中與所述用戶信息對應(yīng)的登錄信息作為所述http請求的登錄信息后,將所述http請求轉(zhuǎn)發(fā)至被測系統(tǒng)。本發(fā)明使得在對具有登錄驗(yàn)證的基于B/S架構(gòu)的業(yè)務(wù)系統(tǒng)采用基于錄制與回放的方案進(jìn)行測試時,回放的http請求能夠通過驗(yàn)證被被測系統(tǒng)正常接收。
【專利說明】一種基于模擬登錄的流量回放方法和裝置【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明涉及系統(tǒng)測試技術(shù),特別涉及一種基于模擬登錄的流量回放方法和裝置?!尽颈尘凹夹g(shù)】】
[0002]在對一個基于B/S (瀏覽器/服務(wù)器)架構(gòu)的業(yè)務(wù)系統(tǒng)進(jìn)行功能測試或者性能評估時,通常的方案是:在線上系統(tǒng)錄制來訪的http請求,在測試環(huán)境部署被測系統(tǒng),之后將所錄制的http請求回放到被測系統(tǒng)中。對于該方案存在如下問題,基于B/S架構(gòu)的業(yè)務(wù)系統(tǒng)普遍設(shè)有登錄驗(yàn)證,在線上,登錄成功的用戶來訪的http請求的cookie中含有登錄信息,該登錄信息與基于B/S架構(gòu)的業(yè)務(wù)系統(tǒng)登錄驗(yàn)證服務(wù)中存儲的登錄信息一致,所以該來訪http請求能夠被正常接收并處理,而在線下,被測系統(tǒng)的登錄驗(yàn)證服務(wù)中沒有存儲的該用戶登錄信息卻存在登錄驗(yàn)證的功能邏輯,所以導(dǎo)致線下回放的http請求由于驗(yàn)證不通過而被拒絕。
[0003]現(xiàn)有技術(shù)中,解決該問題的方案有兩種:一、修改被測系統(tǒng)中登錄驗(yàn)證的功能邏輯,取消登錄驗(yàn)證,保證所有來訪http請求都能被正常接收;二、將線上基于B/S架構(gòu)的業(yè)務(wù)系統(tǒng)登錄驗(yàn)證服務(wù)中已存儲的用戶登錄信息轉(zhuǎn)存至被測系統(tǒng)的登錄驗(yàn)證服務(wù)中。所述兩個方案都存在明顯缺點(diǎn):方案一需要修改源代碼,可能導(dǎo)致潛在問題,同時會增加維護(hù)成本;方案二中,如果用戶在線上進(jìn)行過兩次或多次登錄,則只有最后一次的登錄信息有效,因?yàn)榈卿涷?yàn)證服務(wù)中后一次登錄信息會覆蓋前一次登錄信息,所以如果線上錄制的http請求不是用戶最后一次登錄的http請求,則在線下回放時會導(dǎo)致該請求被拒絕。
【
【發(fā)明內(nèi)容】
】
[0004]有鑒于此,本發(fā)明提供了一種基于模擬登錄的流量回放方法和裝置,以在不修改被測系統(tǒng)源代碼的前提下實(shí)現(xiàn)基于B/S架構(gòu)的業(yè)務(wù)系統(tǒng)測試的正常進(jìn)行。
[0005]具體技術(shù)方案如下:
[0006]一種基于模擬登錄的流量回放方法,預(yù)先在線上錄制被測系統(tǒng)接收到的來自用戶的http請求,在測試時回放錄制的http請求,該方法包括:
[0007]S1、解析回放的http請求,提取其中的用戶信息;
[0008]S2、查詢已經(jīng)建立的關(guān)系映射表中是否存在與所述用戶信息對應(yīng)的登錄信息,如果是,執(zhí)行步驟S4 ;否則,執(zhí)行步驟S3 ;
[0009]S3、利用所述http請求進(jìn)行模擬登錄,獲取登錄信息,將所述用戶信息與該登錄信息添加至所述關(guān)系映射表中;
[0010]S4、將所述關(guān)系映射表中與所述用戶信息對應(yīng)的登錄信息作為所述http請求的登錄信息后,將所述http請求轉(zhuǎn)發(fā)至被測系統(tǒng)。
[0011]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述步驟S3具體包括:
[0012]利用所述http請求形成登錄請求訪問登錄驗(yàn)證服務(wù),從登錄驗(yàn)證服務(wù)返回的應(yīng)答中提取登錄信息,并將該登錄信息與所述用戶信息形成對應(yīng)關(guān)系添加至所述關(guān)系映射表中。
[0013]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,當(dāng)所述關(guān)系映射表中保存的用戶信息和登錄信息的對應(yīng)關(guān)系在預(yù)先設(shè)置的有效時間內(nèi)未被查詢到時,則在所述關(guān)系映射表中刪除該用戶信息和登錄信息的對應(yīng)關(guān)系。
[0014]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述步驟S4具體包括:
[0015]S41、構(gòu)造一個新的http請求;
[0016]S42、將所述關(guān)系映射表中與所述用戶信息對應(yīng)的登錄信息填充到所述新的http請求中;
[0017]S43、將回放的http請求中除所述用戶信息對應(yīng)的登錄信息和源地址信息之外的其他信息填充到所述新的http請求中。
[0018]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,該方法還包括步驟S5:
[0019]解析被測系統(tǒng)返回的應(yīng)答,檢驗(yàn)應(yīng)答是否符合預(yù)期。
[0020]一種基于模擬登錄的流量回放裝置,預(yù)先在線上錄制被測系統(tǒng)接收到的來自用戶的http請求,在測試時回放錄制的http請求,該裝置包括:
[0021]預(yù)處理模塊,用于解析回放的http請求,提取其中的用戶信息;
[0022]查表模塊,用于查詢已經(jīng)建立的關(guān)系映射表中是否存在與所述用戶信息對應(yīng)的登錄信息,如果是,觸發(fā)轉(zhuǎn)發(fā)模塊;否則,觸發(fā)模擬登錄模塊;
[0023]模擬登錄模塊,用于利用所述http請求進(jìn)行模擬登錄,獲取登錄信息,將所述用戶信息與該登錄信息添加至所述關(guān)系映射表中,觸發(fā)轉(zhuǎn)發(fā)模塊;
[0024]轉(zhuǎn)發(fā)模塊,用于將所述關(guān)系映射表中與所述用戶信息對應(yīng)的登錄信息作為所述http請求的登錄信息后,將所述http請求轉(zhuǎn)發(fā)至被測系統(tǒng)。
[0025]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述模擬登錄模塊具體執(zhí)行:
[0026]根據(jù)所述http請求形成驗(yàn)證請求訪問登錄驗(yàn)證服務(wù),從登錄驗(yàn)證服務(wù)返回的應(yīng)答中提取登錄信息,并將該登錄信息與所述用戶信息形成對應(yīng)關(guān)系添加至所述關(guān)系映射表中。
[0027]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,查表模塊還用于,當(dāng)所述關(guān)系映射表中保存的用戶信息和登錄信息的對應(yīng)關(guān)系在預(yù)先設(shè)置的有效時間內(nèi)未被查詢到時,則在所述關(guān)系映射表中刪除該用戶信息和登錄信息的對應(yīng)關(guān)系。
[0028]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,所述替換模塊具體執(zhí)行:
[0029]S91、構(gòu)造一個新的http請求;
[0030]S92、將所述關(guān)系映射表中與所述用戶信息對應(yīng)的登錄信息填充到所述新的http請求中;
[0031]S93、將回放的http請求中除所述用戶信息對應(yīng)的登錄信息和源地址信息之外的其他信息填充到所述新的http請求中。
[0032]根據(jù)本發(fā)明一優(yōu)選實(shí)施例,該裝置還包括檢驗(yàn)?zāi)K:
[0033]用于解析被測系統(tǒng)返回的應(yīng)答,檢驗(yàn)應(yīng)答是否符合預(yù)期。
[0034]由以上技術(shù)方案可以看出,本發(fā)明通過模擬登錄,建立了用戶信息與登錄信息的關(guān)系映射表,根據(jù)關(guān)系映射表中的對應(yīng)關(guān)系,將回放的用戶來訪http請求中的登錄信息替換為所述關(guān)系映射表中與該用戶信息對應(yīng)的登錄信息,構(gòu)造了一個新的http請求,使得該新的http請求能夠通過登錄驗(yàn)證,同時和初始回放的http請求具有相同的業(yè)務(wù)信息。與現(xiàn)有技術(shù)相比,本發(fā)明避免了對源代碼的修改,同時保證了回放的http請求流量能順利通過登錄驗(yàn)證,進(jìn)而提高了針對B/S業(yè)務(wù)系統(tǒng)的流量回放測試技術(shù)的可行性與效果真實(shí)性。
【【專利附圖】
【附圖說明】】
[0035]圖1為本發(fā)明實(shí)施例一提供的基于模擬登錄的流量回放方法流程圖;
[0036]圖2為本發(fā)明實(shí)施例一提供的查詢關(guān)系映射表和模擬登錄示意圖;
[0037]圖3為本發(fā)明實(shí)施例提供的系統(tǒng)示意圖;
[0038]圖4為本發(fā)明實(shí)施例二提供的基于模擬登錄的流量回放裝置圖。
【【具體實(shí)施方式】】
[0039]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖和具體實(shí)施例對本發(fā)明進(jìn)行詳細(xì)描述。
[0040]實(shí)施例一、
[0041]圖1為本發(fā)明實(shí)施例一提供的基于模擬登錄的流量回放方法的流程圖,如圖1所示,該方法可以包括:
[0042]步驟S101、解析回放的http請求,提取其中的用戶信息。
[0043]向被測系統(tǒng)回放的http請求是預(yù)先在線上系統(tǒng)進(jìn)行錄制的用戶來訪的http請求,在測試時回放錄制的http請求,并在發(fā)至被測系統(tǒng)之前采用本發(fā)明所提供的方法進(jìn)行處理。
[0044]該http請求中包含有用戶信息,提取該用戶信息時可以采用但不限于以下方式:
[0045]用servlet規(guī)范來進(jìn)行解析,首先接收http請求,然后依據(jù)http協(xié)議把http請求轉(zhuǎn)化為相應(yīng)的http對象,例如把http請求轉(zhuǎn)化為httpservletrequest或把http應(yīng)答轉(zhuǎn)化為httpservletresponse,之后可以直接從http對象(httpservletrequest或httpservletresponse)中提取所有http的信息,從中可以得到用戶信息。
[0046]解析http請求的方式有多種,除了上述方式外還可以采用其他任意能夠解析http請求的方式,在此不再贅述。
[0047]步驟S102、查詢關(guān)系映射表中是否存在與用戶信息對應(yīng)的登錄信息,如果是,執(zhí)行步驟S104 ;否則,執(zhí)行步驟S103。
[0048]該步驟中所述關(guān)系映射表為保存用戶信息與登錄信息對應(yīng)關(guān)系的關(guān)系映射表,此處可以但不限于采用hash表的方式來保存用戶信息與登錄信息的對應(yīng)關(guān)系,具體方式為:在步驟SlOl從http請求提取出的用戶信息中,有標(biāo)識用戶身份的字段,把該字段作為鍵、把與該用戶信息對應(yīng)的登錄信息作為值存儲到hash表中。關(guān)系映射表的建立方式將在步驟S103中進(jìn)一步闡述。
[0049]在查詢關(guān)系映射表中是否存在與用戶信息對應(yīng)的登錄信息時,把步驟SlOl提取出的標(biāo)識用戶身份的字段作為鍵去hash表查找是否存在相對應(yīng)的登錄信息,如果存在,則執(zhí)行步驟S104,如果不存在,則執(zhí)行步驟S103。
[0050]步驟S103、利用http請求進(jìn)行模擬登錄,獲取登錄信息,將用戶信息與該登錄信息添加至關(guān)系映射表中。[0051]在步驟SlOl把回放的用戶http請求解析之后,從中提取出cookie信息。由于該回放的用戶http請求是預(yù)先在線上業(yè)務(wù)系統(tǒng)錄制的,所以提取出的cookie信息中含有該用戶在線上業(yè)務(wù)系統(tǒng)成功登錄后的登錄信息,根據(jù)該登錄信息生成登錄請求訪問登錄驗(yàn)證服務(wù)。
[0052]登錄驗(yàn)證服務(wù)根據(jù)接收到登錄請求中的登錄信息,判定該用戶登錄成功,生成新的登錄信息并保存下來,同時將該新的登錄信息包含在cookie中形成返回應(yīng)答。這里需要說明的是,線上登錄驗(yàn)證服務(wù)與被測系統(tǒng)的登錄驗(yàn)證服務(wù)在內(nèi)部的程序上完全一樣,即采用的登錄機(jī)制相同,所以當(dāng)用戶在線上系統(tǒng)能夠登錄成功,則在本實(shí)施例的測試過程中也能夠在被測系統(tǒng)的登錄驗(yàn)證服務(wù)中模擬登錄成功。
[0053]解析登錄驗(yàn)證服務(wù)的返回應(yīng)答,由于登錄驗(yàn)證服務(wù)生產(chǎn)的登錄信息是包含在返回應(yīng)答的cookie中,所以提取該返回應(yīng)答的cookie信息,把該cookie信息作為值、把步驟SlOl所提出的用戶信息中的身份標(biāo)識字段作為鍵保存到關(guān)系映射表中,以此形成對應(yīng)關(guān)系O
[0054]在上述模擬登錄過程中,與登錄驗(yàn)證服務(wù)進(jìn)行交互可以采用但不限于以下方式:
[0055]查看登錄驗(yàn)證服務(wù)的API接口,以符合登錄驗(yàn)證服務(wù)API規(guī)則(如http協(xié)議)的方式去進(jìn)行訪問。這部分為現(xiàn)有技術(shù),在此不再贅述。
[0056]對返回應(yīng)答進(jìn)行解析并提取cookie信息可以采用步驟SlOl中所述方法。
[0057]為了保證關(guān)系映射表中所保存信息的時效性,在向關(guān)系映射表中保存信息時可以設(shè)定一個有效時間值,如15分鐘,當(dāng)關(guān)系映射表中保存的用戶信息以及與該用戶信息對應(yīng)的登錄信息在15分鐘內(nèi)(包括15分鐘)未被步驟S102查詢到或未被步驟S104提取到時,則刪除關(guān)系映射表中保存的該用戶信息以及與該用戶信息對應(yīng)的登錄信息。之后再收到該用戶的http請求時,則需要重新為該用戶進(jìn)行模擬登錄,生成對應(yīng)的登錄信息并添加至關(guān)系映射表中。
[0058]為了進(jìn)一步說明查詢關(guān)系映射表和模擬登錄的實(shí)施方式,下面結(jié)合圖2舉一個例子:
[0059]系統(tǒng)接收到一個http請求,該http請求經(jīng)過步驟SlOl解析之后可以得到用戶信息,其中,得到用戶身份標(biāo)識字段為USerid=3。根據(jù)步驟S102所述方式,以USerid=3為鍵在關(guān)系映射表中進(jìn)行查詢是否有對應(yīng)的登錄信息。此時,關(guān)系映射表中保存的數(shù)據(jù)如圖2中關(guān)系映射表a所示,可見,關(guān)系映射表中沒有存儲USerid=3的用戶信息和對應(yīng)的登錄信息,查詢結(jié)果為不存在該用戶信息以及與該用戶信息對應(yīng)的登錄信息,所以需要為該用戶進(jìn)行模擬登錄。通過步驟S103進(jìn)行模擬登錄,登錄驗(yàn)證服務(wù)生成的返回應(yīng)答的cookie中含有該用戶的登錄信息,同時登錄驗(yàn)證服務(wù)也保存了該登錄信息,把該cookie信息提取出來后添加到關(guān)系映射表中,形成與用戶標(biāo)識USerid=3對應(yīng)的登錄信息,如圖2中關(guān)系映射表b所示。
[0060]繼續(xù)參見圖1,
[0061]步驟S104、將關(guān)系映射表中與用戶信息對應(yīng)的登錄信息作為http請求的登錄信息后,將http請求轉(zhuǎn)發(fā)至被測系統(tǒng)。
[0062]在測試時,由于向被測系統(tǒng)回放的http請求是預(yù)先在線上業(yè)務(wù)系統(tǒng)錄制的,所以該回放的http請求中的源IP地址是線上真實(shí)用戶的IP地址。為了避免被測系統(tǒng)將相應(yīng)的應(yīng)答返回到真實(shí)用戶,需在測試環(huán)境中構(gòu)造新的http請求發(fā)送給被測系統(tǒng),由于是重新構(gòu)造,所以該新的http請求的中源IP地址默認(rèn)為本發(fā)明所提供裝置所在設(shè)備的IP地址,這樣當(dāng)被測系統(tǒng)返回應(yīng)答時,不會影響到線上真實(shí)用戶。新的http請求可以但不限于采用http工具(如httpclient)來構(gòu)造。
[0063]在構(gòu)造新的http請求時,把關(guān)系映射表中存儲的與用戶信息對應(yīng)的登錄信息填充到新構(gòu)造的http請求中,再把回放的http請求中除上述已填充的用戶信息對應(yīng)的登錄信息和源地址信息之外的其他信息填充到新的http請求中。這樣能讓新構(gòu)造的http請求轉(zhuǎn)發(fā)到被測系統(tǒng)進(jìn)行登錄驗(yàn)證時能順利通過驗(yàn)證,同時保證該新構(gòu)造的http請求中的業(yè)務(wù)信息與初始回放的http請求中的業(yè)務(wù)信息相同。
[0064]由于登錄信息是存儲在cookie中,所以在新構(gòu)造的http請求中填充登錄信息就是把cookie信息填充到該新構(gòu)造的http請求中。cookie中存儲的數(shù)據(jù)為一系列鍵值對,在新構(gòu)造的http中填充cookie信息的具體方式為:
[0065]查詢關(guān)系映射表中保存的cookie信息和初始回放的http請求中的cookie信息,找出兩者共有的鍵,把關(guān)系映射表中存儲的cookie信息里該共有的鍵以及與該共有的鍵對應(yīng)的值填充到新構(gòu)造的http中,之后再把關(guān)系映射表中保存的cookie信息中和初始回放的http請求中的cookie信息中其余的鍵以及對應(yīng)的值填充到新構(gòu)造的http中。舉個例子,例如回放的用戶http請求中的cookie信息為A=China、B=America> C=France,關(guān)系映射表中與該用戶信息對應(yīng)的cookie信息為B=Austria、C=Japaru D=Mexico,這兩個cookie中共有的鍵為B和C,所以首先把B=Austria和C=Japan填充到新構(gòu)造的http請求中,之后把這兩個cookie中除了 B和C之外的其余鍵填充到新構(gòu)造的http請求中,即把回放的http請求中cookie信息里的A=China和關(guān)系映射表中與該用戶信息對應(yīng)的cookie信息中的D=Mexico填充到新構(gòu)造的http請求中,以此構(gòu)成新的cookie信息。這樣,新構(gòu)造的http 中的 cookie 信息就為 A=China、B=Austria、C=Japaru D=Mexico0
[0066]在將cookie信息填充完后,再把初始回放的http請求中的除cookie信息和源地址信息之外的其余字段信息填充到新構(gòu)造的http請求中,以此形成新構(gòu)造的http請求中的全部信息。這樣,該新構(gòu)造的http請求中包含了關(guān)系映射表中與用戶信息對應(yīng)的登錄信息以及初始回放的http請求中除該登錄信息和源地址信息之外的其余信息。
[0067]在構(gòu)造完新的http請求后,把該新構(gòu)造的http請求轉(zhuǎn)發(fā)到被測系統(tǒng)。
[0068]為了檢驗(yàn)被測系統(tǒng)是否正確接收并處理了 http請求,可以在圖1所示方法流程包括的步驟之后增加一個步驟:采用步驟SlOl中所述方法解析被測系統(tǒng)返回的應(yīng)答,查看其中的狀態(tài)碼和特征信息以檢驗(yàn)應(yīng)答是否符合預(yù)期。
[0069]以上是對本發(fā)明所提供的方法進(jìn)行的描述,下面通過實(shí)施例二對本發(fā)明所提供的裝置進(jìn)行詳細(xì)描述。為了方便理解首先對本發(fā)明上述方法所應(yīng)用的系統(tǒng)進(jìn)行描述,如圖3所示,在接收到回放工具回放的http請求后,代理服務(wù)器經(jīng)過實(shí)施例一中所示流程將新構(gòu)造的http請求轉(zhuǎn)發(fā)至被測系統(tǒng),該新構(gòu)造的http請求中的登錄信息與登錄驗(yàn)證服務(wù)中存儲的登錄信息一致,所以被測系統(tǒng)在對該http請求進(jìn)行登錄驗(yàn)證服務(wù)時,該http請求能夠通過驗(yàn)證并被被測系統(tǒng)正常接收。本發(fā)明下述實(shí)施例二所提供的裝置設(shè)置在代理服務(wù)器中,用于完成實(shí)施例一中所述流程。
[0070]實(shí)施例二、[0071]圖4為本發(fā)明實(shí)施例二提供的基于模擬登錄的流量回放裝置,如圖4所示,該裝置包括:預(yù)處理模塊401、查表模塊402、模擬登錄模塊403和轉(zhuǎn)發(fā)模塊404,可以包括檢驗(yàn)?zāi)K 405。
[0072]首先,預(yù)處理模塊401解析接收到的向被測系統(tǒng)回放的http請求,并提取出該http請求中的用戶信息。解析http請求并提取信息可以采用實(shí)施例一中步驟SlOl所述方法,在此不再詳述。
[0073]然后查表模塊402根據(jù)用戶信息查詢已經(jīng)建立的關(guān)系映射表中是否存在與所述用戶信息對應(yīng)的登錄信息,如果是,觸發(fā)轉(zhuǎn)發(fā)模塊404 ;否則,觸發(fā)模擬登錄模塊403。具體查詢過程可以包括:依據(jù)預(yù)處理模塊401所提取的用戶信息中標(biāo)識用戶身份的字段作為鍵到關(guān)系映射表中查找,若查找到該鍵值和對應(yīng)的登錄信息,則觸發(fā)轉(zhuǎn)發(fā)模塊404,若未查找到該鍵的信息,則觸發(fā)模擬登錄模塊403。
[0074]模擬登錄模塊403根據(jù)回放的該用戶http請求中的登錄信息去訪問登錄驗(yàn)證服務(wù),訪問成功后,登錄驗(yàn)證服務(wù)會生成新的與該用戶信息對應(yīng)的登錄信息,同時形成包含該登錄信息的返回應(yīng)答,從該應(yīng)答中提取出該新的與該用戶信息對應(yīng)的登錄信息,把該登錄信息與預(yù)處理模塊401提取出的用戶信息中該用戶的身份標(biāo)識字段形成對應(yīng)關(guān)系添加到查表模塊402的關(guān)系映射表中。之后,觸發(fā)轉(zhuǎn)發(fā)模塊404。
[0075]為了保證關(guān)系映射表中所保存信息的時效性,在向關(guān)系映射表中保存信息時可以設(shè)定一個有效時間值,當(dāng)關(guān)系映射表中保存的用戶信息以及與該用戶信息對應(yīng)的登錄信息在該有效時間內(nèi)(包括該有效時間)未被查表模塊402查詢到或未被轉(zhuǎn)發(fā)模塊404提取到,則刪除關(guān)系映射表中保存的該用戶信息以及與該用戶信息對應(yīng)的登錄信息。之后再收到該用戶的http請求時,則需要重新為該用戶進(jìn)行模擬登錄,生成對應(yīng)的登錄信息并添加至關(guān)系映射表中。
[0076]轉(zhuǎn)發(fā)模塊404會構(gòu)造一個新的http請求,之后從查表模塊402的關(guān)系映射表中提取與用戶信息對應(yīng)的登錄信息,把該登錄信息填充到該新的http請求中,再把預(yù)處理模塊401中解析得到的回放的該用戶http請求中除上述已填充的用戶信息對應(yīng)的登錄信息和源地址信息之外的其他信息填充到新的http請求中,以此生成一個新的http請求。最后,把該新的http請求轉(zhuǎn)發(fā)至被測系統(tǒng)。
[0077]為了檢驗(yàn)被測系統(tǒng)是否正確接收并處理了 http請求,可以在上述裝置中再增加一個模塊:檢驗(yàn)?zāi)K405,該模塊可以采用實(shí)施例一中步驟SlOl中所述方法解析被測系統(tǒng)返回的應(yīng)答,查看其中的狀態(tài)碼和特征信息以檢驗(yàn)應(yīng)答是否符合預(yù)期。
[0078]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。
【權(quán)利要求】
1.一種基于模擬登錄的流量回放方法,預(yù)先在線上錄制被測系統(tǒng)接收到的來自用戶的http請求,在測試時回放錄制的http請求,其特征在于,該方法包括: 51、解析回放的http請求,提取其中的用戶信息; 52、查詢已經(jīng)建立的關(guān)系映射表中是否存在與所述用戶信息對應(yīng)的登錄信息,如果是,執(zhí)行步驟S4 ;否則,執(zhí)行步驟S3 ; 53、利用所述http請求進(jìn)行模擬登錄,獲取登錄信息,將所述用戶信息與該登錄信息添加至所述關(guān)系映射表中; 54、將所述關(guān)系映射表中與所述用戶信息對應(yīng)的登錄信息作為所述http請求的登錄信息后,將所述http請求轉(zhuǎn)發(fā)至被測系統(tǒng)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S3具體包括: 利用所述http請求形成登錄請求訪問登錄驗(yàn)證服務(wù),從登錄驗(yàn)證服務(wù)返回的應(yīng)答中提取登錄信息,并將該登錄信息與所述用戶信息形成對應(yīng)關(guān)系添加至所述關(guān)系映射表中。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,當(dāng)所述關(guān)系映射表中保存的用戶信息和登錄信息的對應(yīng)關(guān)系在預(yù)先設(shè)置的有效時間內(nèi)未被查詢到時,則在所述關(guān)系映射表中刪除該用戶信息和登錄信息的對應(yīng)關(guān)系。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟S4具體包括:` 541、構(gòu)造一個新的http請求; 542、將所述關(guān)系映射表中與所述用戶信息對應(yīng)的登錄信息填充到所述新的http請求中; 543、將回放的http請求中除所述用戶信息對應(yīng)的登錄信息和源地址信息之外的其他信息填充到所述新的http請求中。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法還包括步驟S5: 解析被測系統(tǒng)返回的應(yīng)答,檢驗(yàn)應(yīng)答是否符合預(yù)期。
6.一種基于模擬登錄的流量回放裝置,預(yù)先在線上錄制被測系統(tǒng)接收到的來自用戶的http請求,在測試時回放錄制的http請求,其特征在于,該裝置包括: 預(yù)處理模塊,用于解析回放的http請求,提取其中的用戶信息; 查表模塊,用于查詢已經(jīng)建立的關(guān)系映射表中是否存在與所述用戶信息對應(yīng)的登錄信息,如果是,觸發(fā)轉(zhuǎn)發(fā)模塊;否則,觸發(fā)模擬登錄模塊; 模擬登錄模塊,用于利用所述http請求進(jìn)行模擬登錄,獲取登錄信息,將所述用戶信息與該登錄信息添加至所述關(guān)系映射表中,觸發(fā)轉(zhuǎn)發(fā)模塊; 轉(zhuǎn)發(fā)模塊,用于將所述關(guān)系映射表中與所述用戶信息對應(yīng)的登錄信息作為所述http請求的登錄信息后,將所述http請求轉(zhuǎn)發(fā)至被測系統(tǒng)。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述模擬登錄模塊具體執(zhí)行: 根據(jù)所述http請求形成驗(yàn)證請求訪問登錄驗(yàn)證服務(wù),從登錄驗(yàn)證服務(wù)返回的應(yīng)答中提取登錄信息,并將該登錄信息與所述用戶信息形成對應(yīng)關(guān)系添加至所述關(guān)系映射表中。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,查表模塊還用于,當(dāng)所述關(guān)系映射表中保存的用戶信息和登錄信息的對應(yīng)關(guān)系在預(yù)先設(shè)置的有效時間內(nèi)未被查詢到時,則在所述關(guān)系映射表中刪除該用戶信息和登錄信息的對應(yīng)關(guān)系。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述替換模塊具體執(zhí)行:S91、構(gòu)造一個新的http請求; S92、將所述關(guān)系映射表中與所述用戶信息對應(yīng)的登錄信息填充到所述新的http請求中; S93、將回放的http請求中除所述用戶信息對應(yīng)的登錄信息和源地址信息之外的其他信息填充到所述新的http請求中。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,該裝置還包括檢驗(yàn)?zāi)K: 用于解析被測系統(tǒng)返回的應(yīng)答,檢驗(yàn)應(yīng)答是否符合預(yù)期。
【文檔編號】H04L29/06GK103634159SQ201210307039
【公開日】2014年3月12日 申請日期:2012年8月24日 優(yōu)先權(quán)日:2012年8月24日
【發(fā)明者】張俊俊 申請人:百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司