51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 9063|回复: 9
打印 上一主题 下一主题

[原创] socket协议中send buf和recv buf的长度参数化问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-4-26 10:54:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在socket协议脚本中,如何对send buf和recv buf的长度进行参数化?
比如:
recv buf0 100
recv buf0 200
这个100和200,可以参数化么?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2010-4-26 11:19:02 | 只看该作者
一般都是在buffer实体中参数化
参数化buffer长度没有意义啊
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2010-4-26 11:28:09 | 只看该作者
如果receive的buf长度不确定,可以先用lrs_get_last_received_buffer_size函数取得长度
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2010-4-26 12:42:46 | 只看该作者
lrs_get_last_received_buffer_size必须写在lrs_receive后面,就没什么意义了
其实就是因为在做的一个接口,它的recv  buffer长度不固定。在写data.ws时没办法写长度,导致lrs_receive的时候会返回Mismatch ,使得LR在那等待10秒(默认)。
在场景运行的时候发现因为这个Mismatch ,使得测出的TPS很低,不准确
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2010-4-26 14:11:41 | 只看该作者
用lrs_set_recv_timeout 设置timeout时间为0试试吧
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2010-4-26 14:48:10 | 只看该作者

lrs_set_recv_timeout2设置小一点

设置lrs_set_recv_timeout没用的,要设置lrs_set_recv_timeout2才行

其实你单一这样设也是有风险的,因为也许某次返回确实还没返回完,你就让它通过了,那得到的时间就不准了

你可以指定接受的最末尾的字符,这样接受到这个字符后就会自动停止接收的
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2010-4-26 14:52:26 | 只看该作者
lrs_set_recv_timeout2 设置是0的话,就接不到数据了
设置成1的话也不妥,因为其中一个请求要返回8000多byte,而且这个包还不是最大的。很可能超过1秒
而且当并发1000个时,这种时间都很可能变成好几秒
本身就是为了得到这些延迟时间,结果反而自己限定了
那这个测试跑了几遍都没意义

[ 本帖最后由 ==ICE== 于 2010-4-26 14:53 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2010-4-26 14:57:54 | 只看该作者

我是说设置小一点,我可没说设置成0

你刚说的就是我所提到的“风险”,所以建议你还是要设置一下接受的末尾字符(串)
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2010-4-26 15:43:32 | 只看该作者
杯具的是开发人员没有设置末尾字符。。。。。。。。。而且现在种种原因,接口不能再更改了。哎······
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2011-7-12 10:04:23 | 只看该作者
可以用 lrs_receive_ex方法,先取得一部分报文,然后从中获取报文的长度,继而获取剩下的一部分报文
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-9-21 22:18 , Processed in 0.080669 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表