关于LR中lrs_accept_connection函数中获取data.ws中端口号问题解决方法

发表于:2007-12-03 14:15

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:网络转载

  使用Winsocket录制一个脚本时,脚本中有lrs_accept_connection("socket0","socket1“)函数,根 据网上的说法找到socket0的端口2839,并且也获取后保存为参数(格式是11,23)了,可是在data.ws的buf中去找原端口号用参数代替 时,原端口数据有点奇怪用text显示是\x17E但用binary是.E。这样的情况要如何替代?
  1、找到lrs_create_socket("socket6".....)在该语句下添加
   /* 获取创建socket6时,创建的本地端口号5030(每次回放时该端口都会变)
newport=lrs_get_socket_attrib("socket6", LOCAL_PORT);

lr_save_string(newport, "newport0");

lr_output_message("Local port%s",newport);

  2、接下来添加语句
   /* 将该端口号分解成高位19和低位166(19*256+166=5030),并将转换后的在转换成16进制13和a6
ival=atoi(newport);

ilowval=(WORD)(ival)&0xff;

ihighval=(WORD)(((DWORD)(ival)>>8))&0xff;

strcpy (buf0, itoa( ihighval, tmp, 16 ));

lr_save_string(buf0, "portnum0");

strcpy (buf, itoa( ilowval, tmp, 16 ));

lr_save_string(buf, "portnum");

  3、在lrs_create_socket("socket6".....)下lrs_create_socket("socket7".....)的最 近的sent语句中的data.ws中的buf去找到要替代的端口号,用参数portnum0和portnum将其替代
        (替代时在参数名前加上十六进制的表示法\x);还要在data.ws中找到所有该端口号
        (如何在Data.ws中找要替换的端口号:该端口号在找到的buf中的你机器的ip地址后如:\x0f\xa6 替换成:\x{portnum0}\x{portnum};在data.ws中搜索\x0f\xa6,将其全部替换。)

  4、屏蔽该语句lrs_accept_connection("socket6", "socket9")

  5、将lrs_accept_connection("socket6", "socket9")该语句下最近的lrs_create_socket中的端口号用参数newport代替;并将该语句下所有的
socket9用最近的lrs_create_socket(以newport为参数代替端口号)中的socket代替

  注:只要出现lrs_accept_connection的地方都按以上步骤代替

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号