51Testing软件测试论坛

标题: socket协议中send buf和recv buf的长度参数化问题 [打印本页]

作者: ==ICE==    时间: 2010-4-26 10:54
标题: socket协议中send buf和recv buf的长度参数化问题
在socket协议脚本中,如何对send buf和recv buf的长度进行参数化?
比如:
recv buf0 100
recv buf0 200
这个100和200,可以参数化么?
作者: xwlong    时间: 2010-4-26 11:19
一般都是在buffer实体中参数化
参数化buffer长度没有意义啊
作者: PrefTest    时间: 2010-4-26 11:28
如果receive的buf长度不确定,可以先用lrs_get_last_received_buffer_size函数取得长度
作者: ==ICE==    时间: 2010-4-26 12:42
lrs_get_last_received_buffer_size必须写在lrs_receive后面,就没什么意义了
其实就是因为在做的一个接口,它的recv  buffer长度不固定。在写data.ws时没办法写长度,导致lrs_receive的时候会返回Mismatch ,使得LR在那等待10秒(默认)。
在场景运行的时候发现因为这个Mismatch ,使得测出的TPS很低,不准确
作者: PrefTest    时间: 2010-4-26 14:11
用lrs_set_recv_timeout 设置timeout时间为0试试吧
作者: 丰肚翩翩    时间: 2010-4-26 14:48
标题: lrs_set_recv_timeout2设置小一点
设置lrs_set_recv_timeout没用的,要设置lrs_set_recv_timeout2才行

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

你可以指定接受的最末尾的字符,这样接受到这个字符后就会自动停止接收的
作者: ==ICE==    时间: 2010-4-26 14:52
lrs_set_recv_timeout2 设置是0的话,就接不到数据了
设置成1的话也不妥,因为其中一个请求要返回8000多byte,而且这个包还不是最大的。很可能超过1秒
而且当并发1000个时,这种时间都很可能变成好几秒
本身就是为了得到这些延迟时间,结果反而自己限定了
那这个测试跑了几遍都没意义

[ 本帖最后由 ==ICE== 于 2010-4-26 14:53 编辑 ]
作者: 丰肚翩翩    时间: 2010-4-26 14:57
标题: 我是说设置小一点,我可没说设置成0
你刚说的就是我所提到的“风险”,所以建议你还是要设置一下接受的末尾字符(串)
作者: ==ICE==    时间: 2010-4-26 15:43
杯具的是开发人员没有设置末尾字符。。。。。。。。。而且现在种种原因,接口不能再更改了。哎······
作者: cjp110212    时间: 2011-7-12 10:04
可以用 lrs_receive_ex方法,先取得一部分报文,然后从中获取报文的长度,继而获取剩下的一部分报文




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