2015-03-25 21 views
0

我們需要解碼基於這是越來越記錄了ThickClient應用在.NET WCF Web服務使用自定義綁定和gzip編碼以下BodyBinary值解碼BodyBinary值如何與GZIP加密負載亞軍SOAP請求

PS:身體二進制含量降低,使之更容易在這裏發帖

web_custom_request("Service.svc", 
"[this is not a link]URL=webservice.svc", 
"Method=POST", 
"Resource=0", 
"RecContentType=application/x-gzip", 
"Referer=", 
"Snapshot=t1.inf", 
"Mode=HTTP", 
"EncType=application/x-gzip", 
"BodyBinary=\\x1F\\x8B\\x08\\x00\\x00", 
LAST); 

我們需要將BodyBinary爲各種其他流參數化的輸入值進行解碼。

我已閱讀過有關數據格式擴展的數據格式擴展,這是惠普推出的一種自定義編碼方法,但它對於編碼背景有限的我們顯得非常複雜。

[編輯] 當前的方法: 我們不使用VuGen錄製應用程序,實際上是使用Fiddler4(與GZIP和UNGZIP自定義規則)來捕獲Web服務通信UNGZIP的請求,然後使用相同使用lr_zip的Web自定義請求,以便服務器可以理解請求。

這裏面臨的主要挑戰是,在捕獲所有Web服務調用,解壓縮它們,創建自定義請求然後點擊服務器方面,有很多手動工作。

如果Load Runner可以自動處理,或者使用VuGen進行錄製並進行一些自定義解碼 - 參數化 - 編碼 - 發佈到服務器,則會大大減少我們的工作量。

char * param_xmlsource_GetUserAccess; 
param_xmlsource_GetUserAccess="Entire Soap Request(UnGzipped using Fiddler)"; 
web_set_user("{Username}","{Password}","{Env_URL}"); 
lr_save_string(lr_eval_string(param_xmlsource_GetUserAccess),"xmlsource_GetUserAccess"); 

lr_start_transaction("Transaction_GetUserAccess"); 

lr_zip("target=xmltarget_GetUserAccess", "source=xmlsource_GetUserAccess"); 

web_custom_request("web_custom_request", 
"URL=WebService.svc", 
"Method=POST", 
"TargetFrame=", 
"EncType=application/x-gzip", 
"Resource=0", 
"Referer=", 
"Mode=HTTP", 
"Body={xmltarget_GetUserAccess}", 
LAST); 

lr_end_transaction("Transaction_GetUserAccess",LR_AUTO); 

[編輯] 通過「解碼」,這是這裏發生了什麼一詞替換「解密」更新的問題。

+0

您需要一個GZIP DFE,檢查HPLN是否已經有一個。我會在這裏問。 – Buzzy 2015-03-25 10:07:13

+0

GZIP不加密。它是編碼。您可以下載標準的GZIP算法並在LoadRunner中實現,或者如Buzzy筆記所示,爲此尋找現有的DFE。 – 2015-03-25 13:29:41

+0

@JamesPulley事實證明,已經有一個函數:)。請參閱下面的答案。 – Buzzy 2015-03-25 13:50:23

回答

0

這是從我們的專家回答: 一個建議可ContentEncoding腳本= gzip的參數和純文本請求體(應手動轉換)... 正如樣本:

代碼:

web_reg_save_param("gzipped", "LB=","RB=","Search=Body",LAST); 

web_custom_request("echo", 
    "URL=http://<myserver>/echo_post", 
    "Method=POST", 
    "ContentEncoding=gzip", 
    "Body=~!txtPassword=~#admin&~!txtLogin=~#admin&~!clientType=~#Swing&~!actionID=~#swing%2FcomsHome&~!alreadylogin=~#No", 
    LAST); 


lr_unzip("source=gzipped","target=plain"); 

輸出:

Action.c(9): t=350ms: 107-byte request body for "…」 (RelFrameId=1, Internal ID=1) 
Action.c(9):  \x1F\x8B\x08\x00\x00\x00\x00\x00\x00\x0B\xABS,\xA9(\tH,..\xCF/J\xB1\xADSNL\xC9\xCD\xCCS\xAB 
Action.c(9):  \x03\x89\xFA\xE4\xA7g\xE6!\t%\xE7d\xA6\xE6\x95\x84T\x16\xA4\x02\x05\x83\xCB3\xF3\xD2\x81\x82 
Action.c(9):  \x89\xC9%\x99\xF9y\[email protected]\xA1b\x90\x90\xAA\x91[r~n\xB1G~n*H6\xA7(51\xA52\x07j\x92_>\x00\xF9 
Action.c(9):  \[email protected]\x99o\x00\x00\x00…. 
Action.c(9): t=384ms: 107-byte response body for "…" (RelFrameId=1, Internal ID=1) 
Action.c(9):  \x1F\x8B\x08\x00\x00\x00\x00\x00\x00\x0B\xABS,\xA9(\tH,..\xCF/J\xB1\xADSNL\xC9\xCD\xCCS\xAB 
Action.c(9):  \x03\x89\xFA\xE4\xA7g\xE6!\t%\xE7d\xA6\xE6\x95\x84T\x16\xA4\x02\x05\x83\xCB3\xF3\xD2\x81\x82 
Action.c(9):  \x89\xC9%\x99\xF9y\[email protected]\xA1b\x90\x90\xAA\x91[r~n\xB1G~n*H6\xA7(51\xA52\x07j\x92_>\x00\xF9 
Action.c(9):  \[email protected]\x99o\x00\x00\x00 

Action.c(9): Notify: Saving Parameter "gzipped = \x1f‹\x08\x00\x00\x00\x00\x00\x00\x0b«S,©(   H,..Ï/J±-SNLÉÍÌS«\x03‰úä§gæ!  %çd¦æ•„T\x16¤\x02\x05ƒË3óÒ\x81‚‰É%\x99ùyž[email protected]¡b\x90\x90ª‘[r~n±G~n*H6§(51¥2\x07j’_>\x00ùë@\x99o\x00\x00\x00". 

Action.c(22): Notify: Saving Parameter "plain = ~!txtPassword=~#admin&~!txtLogin=~#admin&~!clientType=~#Swing&~!actionID=~#swing%2FcomsHome&~!alreadylogin=~#No". 

希望這有助於。

+0

感謝@JamesPulley和嗡嗡您輸入.. 我已經更新了我目前的做法,給你完整的畫面和實際問題陳述以更好的方式 請不要如果我們做錯了什麼在這裏建議.. – 2015-03-26 15:10:57

+0

眼下我們正在探索這些鏈接 1。如何爲Web Vuser啓用GZIP壓縮 http://support.openview.hp.com/selfsolve/document/ KM207128 2.如何壓縮和解壓縮數據 http://support.openview.hp.com/selfsolve/document/KM213957 – 2015-03-26 15:14:28

+0

您應該嘗試在LoadRunner支持論壇 - (http://h30499.www3.hp.com/t5/LoadRunner-Support-Forum/bd-p/sws-LoadRunner_SF)中提出這個問題。他們可以幫助你更多 – Buzzy 2015-03-29 06:01:54

0

只要啓用winit模式,Jus即可添加我的美分值,ContentEncoding = gzip將正常工作。在我們的例子中,我們的腳本必須啓動異步調用,因此我們不能使用winit模式。我提出了與LR支持相同的問題,他們真的沒有太多的話要說。