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函数

相关文章
相关标签/搜索