51Testing软件测试论坛

标题: 录制Winsock遇到的问题 [打印本页]

作者: yefeng312    时间: 2009-7-20 11:49
标题: 录制Winsock遇到的问题
大家好!
在录制一款类RTX局域网聊天工具时,模拟大量用户在线情况
但是每个人登录后有些关键的lr_receive()方法接受到数据大小都不一样。
例如
lrs_receive("socket0", "buf14", LrsLastArg);
recv  buf14 24
        "226 Transfer complete.\r\n"

录制时候 接受到的字节是24,但是模拟其他人的时候 这里接受的字节可能就会变为其它的了
这里的不一致有什么影响吗?
有什么办法可以解决吗?
作者: houzeal    时间: 2009-7-20 12:15
LR会将运行脚本时实际接收到数据包的大小与录制时数据包的大小进行比较,如果不一样,则会报错数据包长度不匹配~~~~
作者: yefeng312    时间: 2009-7-20 12:27
原帖由 houzeal 于 2009-7-20 12:15 发表
LR会将运行脚本时实际接收到数据包的大小与录制时数据包的大小进行比较,如果不一样,则会报错数据包长度不匹配~~~~



那就说明有影响了。

如何才能解决这个问题 呢?
有没有这种方法:不去考虑接受的长度和内容,直接把所有的数据都接受下来?
作者: lsharp    时间: 2009-7-20 13:18
标题: 改一下接收SOCKET时的设置
试试  lrs_set_receive_option(EndMarker,RecordingSize);
把这行代码放在create socket的前面。
作者: yefeng312    时间: 2009-7-20 13:58
原帖由 lsharp 于 2009-7-20 13:18 发表
试试  lrs_set_receive_option(EndMarker,RecordingSize);
把这行代码放在create socket的前面。


这样设置以后只能 按录制的大小来接受数据。
实际的数据 字节太小或者太大怎么办呢 ?
还有一个设置是设置 结束字符 来接受,这些好像都不能满足需要。
真的没有其他的方法了吗
作者: lsharp    时间: 2009-7-20 14:12
标题: 这样搞吧
action.c :length3=lrs_length_receive("socket0","buf3",0,LrsLastArg);
data.ws : recv  buf3 length3
作者: yefeng312    时间: 2009-7-20 14:52
原帖由 lsharp 于 2009-7-20 14:12 发表
action.c :length3=lrs_length_receive("socket0","buf3",0,LrsLastArg);
data.ws : recv  buf3 length3


貌似这两个的先后顺序不对
实际情况是先receive了,然后在才能调用lrs_length_receive这个方法的
作者: yefeng312    时间: 2009-7-20 15:07
搞C/S系统的人这么少?
好像没有啥人呢




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2