51Testing软件测试论坛

标题: socket脚步 关联函数的左右边界有双引号和反斜杠时是否需要转义 [打印本页]

作者: 夏日摸摸茶    时间: 2011-11-19 02:39
标题: socket脚步 关联函数的左右边界有双引号和反斜杠时是否需要转义
socket协议的脚步,关联函数位置设置正确。

data.ws中要关联的内容:
recv  buf5 109
        "{\"onlineEngineers\":1,\"freeEngineers\":1,\"waitingUsers\":0,\"servicingU"
        "sers\":0,\"position\":1,\"cmd\":\"CMD_ACD_INFO\"}"


        lrs_save_searched_string("socket0",LRS_LAST_RECEIVED,"Allnum","LB=:","RB=,\"free",1,0,-1);



想要对onlineEngineers\":和,\"freeEngineers之间的1进行关联:
(1)当使用
lrs_save_searched_string("socket0",LRS_LAST_RECEIVED,"Allnum","LB=:","RB=,\"free",1,0,-1);时,
未对双引号和\进行转义时,返回:
Action.c(25): lrs_save_searched_string(socket0, get_last_received_buffer, Allnum, LB=:, RB=,, 1, 0, -1)
Action.c(25): Notify: Saving Parameter "Allnum = 1".

(2)当使用
lrs_save_searched_string("socket0",LRS_LAST_RECEIVED,"Allnum","LB=:","RB=,\\\"free",1,0,-1);时,
已对双引号和\进行转义时,返回:
Action.c(25): fiCalcSearchedStringLength: Right boundary not found
Action.c(25): Error : Unable to save to parameter lrs_save_searched_string :. Error code : 9015.

疑问:
未对双引号和\进行转义时,能回放通过,已进行转义后,提示找不到右边界,为什么呢???
作者: msnshow    时间: 2011-11-19 21:14
应该要转义才对,不转义虽然事务成功了,但实际业务没成功吧
作者: 夏日摸摸茶    时间: 2011-11-19 23:18
回复 2# msnshow


还没往下进行呢 就是验证了一下关联成不成。
但是很郁闷的是 转义之后 报错 版主帮忙看看 转义的语句有没有问题?
作者: 夏日摸摸茶    时间: 2011-11-21 11:27
已解决

原因:
真正的BUF 里面的字符串是这样的   "onlineEngineers":1,"freeEngineers"
所以只需考虑在这个字符串上转义,不必考虑 LR 给你展现的报文,那是经过转义后的



即:使用
lrs_save_searched_string("socket0",LRS_LAST_RECEIVED,"Allnum","LB=:","RB=,\"free",1,0,-1);就能够成功关联;



总结:
在所有socket脚本的buf内容中,当要指定关联函数的左右边界时,忽略buf中显示的 \,只对双引号进行转义。



另外:
任何脚本中的\ 不需要转义
任何脚本中的" 都需要转义
作者: shigejinian1    时间: 2011-11-21 11:35
学习一下
作者: ymwang119    时间: 2011-11-28 14:30
学习一下
作者: irisfly89    时间: 2012-8-27 13:45
过路
作者: 20924990    时间: 2012-8-28 09:37
学习了




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