51Testing软件测试论坛

标题: 怎样从lrs_receive buff查找数据 [打印本页]

作者: liujinkui    时间: 2010-12-16 10:17
标题: 怎样从lrs_receive buff查找数据
本帖最后由 liujinkui 于 2010-12-16 10:18 编辑

用什么方法查找数据,或判断指定数据在buf包中
作者: higkoo    时间: 2010-12-16 20:08
lrs_get_last_received_buffer(socket_name, &ActualBuffer, &NumberOfBytes);
作者: kam    时间: 2010-12-17 08:44
lrs_save_param_ex  用偏移量和攫取的长度就可以了
作者: liujinkui    时间: 2010-12-17 09:15
先感谢两位的回答。
我昨天可能没有说清楚。
是想通过receive包中的信息判断是否包含指定数据
如用户登陆 成功了 receive包返回的是系统的界面信息,失败了 receive包返回的是错误提示信息。
想加一个判断,获取 receive buf  查找是否有“登陆失败”文字,如果存在脚本退出
问题是我不知道 receive buf 是多长字符“登陆失败”在什么位置
作者: MYMREMIND    时间: 2010-12-17 10:12
用lrs_save_param,如果不知道长度和偏移量的话,个人觉得可以先把偏移量设为0,然后指定一个长度,回放脚本后查看服务器返回的数据,然后根据这个数据再重新设定偏移量和长度,把需要的数据找出来。我之前有这样做过,仅供lz参考。
作者: kam    时间: 2010-12-17 15:18
如果不知道长度和不知道左边界和右边界的话,是没有没办有LR自带的函数截取的,
不过你可以将返回的报文拿去遍历,查找返回报文是否包含你需要的字符串
作者: kam    时间: 2010-12-17 15:43
将你的返回报文做这样的的判断就可以了
比如 返回报文为"2143213123登陆成功"
char *str=offset = (int)(position - str + 1);
char *str1="登陆成功"//你要查找的字符串
if (strstr(str,str1))
{
  lr_output_message("pass");
}
else
{
lr_output_message("false");

}
作者: kam    时间: 2010-12-17 15:44
char *str=offset = (int)(position - str + 1);
这写错了,应该是char *str="2143213123登陆成功"
作者: liujinkui    时间: 2010-12-18 01:05
回复 8# kam


呵呵,你是个热心的人。
这个我在帮助中看到了。
那我怎么把BUF内容赋给str哪?
作者: kam    时间: 2010-12-18 16:35
刚好上班无聊,所以就。。。
str就是你接受到报文,我是用str来表示,至于你的脚本是用什么变量来接受就用哪个




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