Loadrunner socket協議lrs_receive函數接收到返回數據包 仍然等待服務器返回--解決

前段時間在使用loadrunner socket協議發送數據包到到服務器,使用lrs_receive接收服務器應答數據包,已經接收到數據包,但LR仍然在等待服務器端返回,並且日誌打印顯示每次接收返回都是waste time:10s,查資料發現原來是由於在data.ws中定義了recv buffer的長度與實際接收返回包長度不同致使,如定義爲100,可是socket上的返回buffer長度不是100,這時候,loadrunner會嘗試再次去讀取,直到讀到長度爲100的buffer纔算成功。嘗試屢次,超時時間爲多少?loadrunner默認爲10s,因此你這裏纔會有等待10s的狀況出現。服務器

能夠使用lrs_set_recv_timeout(10,10)或lrs_set_recv_timeout2(1,10);設置超時時間,兩個函數的區別是:socket

  • lrs_set_recv_timeout:執行lrs_receive命令後,等待服務器返回消息的超時時間,即服務器的響應時間。
  • lrs_set_recv_timeout2:建立鏈接成功,接收到服務器返回的消息後,獲取匹配消息的超時時間。lrs_receive接收到數據後,會和預期的數據長度進行比較,若是長度不匹配,它將從新從套接字上讀取數據,直到超時爲止。

下面的這篇博文很詳細的描述了LR 模擬socket協議編寫測試腳本的基本操做:http://blog.csdn.net/zhuangxiu/article/details/6396052函數

相關文章
相關標籤/搜索