我們需要解碼基於這是越來越記錄了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);
[編輯] 通過「解碼」,這是這裏發生了什麼一詞替換「解密」更新的問題。
您需要一個GZIP DFE,檢查HPLN是否已經有一個。我會在這裏問。 – Buzzy 2015-03-25 10:07:13
GZIP不加密。它是編碼。您可以下載標準的GZIP算法並在LoadRunner中實現,或者如Buzzy筆記所示,爲此尋找現有的DFE。 – 2015-03-25 13:29:41
@JamesPulley事實證明,已經有一個函數:)。請參閱下面的答案。 – Buzzy 2015-03-25 13:50:23