LR錄制Socket協議, 關聯步驟
上一篇 /
下一篇 2009-12-17 14:05:55
哈哈,今天有時間把一直網上沒尋找到,自己也想留下筆記的東西整理下,那就是LR socket協議錄制關聯方法。
之前在做LR socket協議錄制,第一次接觸感覺很是陌生,遇到的問題就是參數的關聯,我們進入主題,首先講下我測試的這個軟件的簡單環境:
1. TCP協議封裝的數據包,只能選擇socket協議錄制
2. 錄制的是登陸用戶端,登陸者創建了一個條目,條目的主鍵是它的ID,這個ID是服務器的生成,返回給客戶端,需要做關聯的恰是這個ID
( 這里額外說下,做LR錄制特別是socket,如果你不是開發者那么一定要多和開發交流,才容易找到切入點;)
Step1. 由于錄制的腳本太多,詢問了開發客戶端得到這個ID前發送給服務器請求時所用的函數,版面關系,截取了一部分(請到data.ws中去找):
send buf146 208
".http://tempuri.org/IEdisDesignService/GetMaxIdD"
"\x1a\xad\xb4\xf7\xb9"
"\b,"
recv buf147 161
"6http://tempuri.org/IEdisDesignService/GetMaxIdResponseD"
"GetMaxIdResult"
"@R"
"*"
Step2. 其中GetMaxID是客戶端發送的請求,紅色加粗部分@R為客戶端接收到的ID,由于LR是用ASCII碼顯示,可以通過LR函數將其轉換為整型,切換回Action部分(筆者已將vuser_init中內容都放到action中),再切到Tree View,找到buf147,內容如下:
\x05œV\x02\v\x01s\x04\v\x01a\x06V\bD\n\x1e\x00‚™6http://tempuri.org/IEdisDesignService/GetMaxIdResponseD\x12´÷¹\b,ê…L”v9t$>ˆK\x01V\x0e@\x10GetMaxIdResponse\b\x13http://tempuri.org/@\x0eGetMaxIdResult@R*\x01\x01\x01\x00\x07
Step3. 找到@R,選中->右鍵->Create Parameter,彈出的對話框中有個Script. Statement區域,將其內容復制下來,關閉窗口,內容為:lrs_save_param( "socket1", LRS_LAST_RECEIVED, "Parameter1", 154, 5 );
注:socket貌似不支持自動關聯,所以安全保證我們自己修改腳本,手動關聯;
Step4. 將Script. Statement內容復制下來后,切換回ScriptView,找到buf147,一般這個buf應該為receive,在其下面將上面的語句黏貼上;
Step5. 切到data.ws,查找@R,將@R都替換為<Parameter1>, 注意有些@R可能在一個字符串中,就不能替換掉,只要單獨字符串為@R的才可以替換;
好,到這里關聯結束了,可以回放腳本檢查;
大家也可以把客戶端接收到的ID顯示出來具體方法為:在添加lrs_save_param();下一行加上lr_output_message("Parameter1 is : %s", lr_eval_string("<Parameter1>"));,回放中,將把Parameter的內容顯示出來,如果值一直不變,那可能您的返回ID位置找的不正確,正常這個值在不同的回放過程中應是變化的,切為遞增的;
導入論壇
引用鏈接
收藏
分享給好友
推薦到圈子
管理
舉報
TAG:
lr
LR
Socket
socket
關聯