51Testing软件测试论坛

标题: 【疑惑】socket协议的脚步,关联函数和转义符号的使用问题 [打印本页]

作者: 夏日摸摸茶    时间: 2011-11-19 10:35
标题: 【疑惑】socket协议的脚步,关联函数和转义符号的使用问题
本帖最后由 夏日摸摸茶 于 2011-11-19 10:36 编辑

目的是对socket协议的脚步中的buf数据进行关联,如下:

data.ws
recv  buf5 109
"{\"onlineEngineers\":1,\"freeEngineers\":1,\"waitingUsers\":0,\"servicingU"
"sers\":0,\"position\":1,\"cmd\":\"CMD_ACD_INFO\"}"

想要对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.
疑问:
未对双引号和\进行转义时,能回放通过,已进行转义后,提示找不到右边界,为什么呢???是转义符号使用的有问题??
作者: 云层    时间: 2011-11-19 12:23
建议你把左右边界写的到位一点
作者: 夏日摸摸茶    时间: 2011-11-19 14:56
本帖最后由 夏日摸摸茶 于 2011-11-19 14:57 编辑

回复 2# 云层


最开始左右边界都挺长的,但都会同时包含\和",而且这两个还挨着,用转义的话,得这样写 [url=]\\\[/url]"才能表示buf中的\",但这样写就报错了,后来我排错的时候把左边界弄短了,用右边界来测试,结果还是没找到原因。
作者: 夏日摸摸茶    时间: 2011-11-21 10:23
继续求助。。。。。。。。。。

对\" 进行转义,由于需要转义的两个字符挨着,使用\\\" 难道有问题???
作者: 夏日摸摸茶    时间: 2011-11-21 11:26
原因:
真正的BUF 里面的字符串是这样的   "onlineEngineers":1,"freeEngineers"
所以只需考虑在这个字符串上转义,不必考虑 LR 给你展现的报文,那是经过转义后的



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



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



另外:
任何脚本中的\ 不需要转义
任何脚本中的" 都需要转义
作者: 真实的追求者    时间: 2011-11-28 16:04

作者: iori422    时间: 2013-7-24 14:51
有帮助,谢谢分享




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