standmyground 发表于 2013-3-18 17:46:04

lrs_length_send

本帖最后由 standmyground 于 2013-3-19 10:43 编辑

各位大侠,请帮忙看看啊。

我有一个loadrunner的问题困惑了2天,在网上找不到解决办法,所以想请高手帮忙看一下,真是非常感谢。

问题是这样的:
我录制了一个winSocket脚本,dataws里面自动生成了一个send buf 12。
buf 12里面的一个字段我进行了参数化,所以这个buf 12的长度是会根据参数长度有所变化的。
那么我发送buf 12的时候,如何能精确指定buf长度?使用lrs_length_send能解决吗?
buf 12里面包含的内容格式是下面这样的:
send buf12 241

//下面是协议头
4个字节协议号
4个字节包体长度
4个字节指令编号
4个字节指令序号
32个字节源id
32个字节目的id
//下面是包体
包体

因为包体里面有内容被我参数化了,所以“4个字节包体长度”也应该是根据参数长度的变化而变化,
如果长度值不准确,会导致接收方不能识别该协议包。
使用lrs_length_send能解决吗?我用lrs_length_send试了,不行,下面一行是相关代码。
lrs_length_send("socket3","buf12",1,"Offset=4","Size=4","Encoding=1","SubtractSize=0",LrsLastArg);
lrs_length_send是用来干这种活的吗?我该用什么方法解决上面的问题呢?

love_yebin 发表于 2013-3-19 19:22:11

lrs_create_socket(“socket0”, "TCP", "RemoteHost=192.168.0.137:30137",LrsLastArg);
如果你要参数的是字符型的
charparam;
memset(param,0,300);
lrs_set_send_buffer ("socket0", param, strlen(param));
//这句的作用就是 使用参数 param来代替 buf0
lrs_send(”socket0“, ”buf0“, LrsLastArg);
具体实例和相关调试脚本,见本人空间!

这样 你发送的就不是 buf0了 而是 param得值

standmyground 发表于 2013-3-20 12:02:42

回复 2# love_yebin


    谢谢,我现在没有权限访问您的空间!

standmyground 发表于 2013-3-21 17:42:49

今天用lrs_length_send函数成功发送了自己组装的一段缓存,让我对该函数有了初步的了解,有可能不准确,请大家指正:
1、如果缓存里面包含空字符,就不能使用lrs_send进行发送,提示Error : Unable to translate buffer to socket3. Error code : 9013,此时可以使用lrs_length_send函数进行处理。不理解为啥lrs_send会出这个问题,而lrs_length_send就不出,哪位能教教我。
2、如果发送的缓存里面有一个标识缓存长度的字段,该字段又是动态变化的(缓存里面有参数导致的),可以使用lrs_lenght_send动态生成这个长度字段。

火镜传说 发表于 2013-11-14 11:02:39

解决没有,楼主
页: [1]
查看完整版本: lrs_length_send