LR录制Socket协议, 关联步骤
上一篇 /
下一篇 2009-12-17 14:05:55
哈哈,今天有时间把一直网上没寻找到,自己也想留下笔记的东西整理下,那就是LR socket协议录制关联方法。
之前在做LR socket协议录制,第一次接触感觉很是陌生,遇到的问题就是参数的关联,我们进入主题,首先讲下我测试的这个软件的简单环境:
1. TCP协议封装的数据包,只能选择socket协议录制
2. 录制的是登陆用户端,登陆者创建了一个条目,条目的主键是它的ID,这个ID是服务器的生成,返回给客户端,需要做关联的恰是这个ID
( 这里额外说下,做LR录制特别是socket,如果你不是开发者那么一定要多和开发交流,才容易找到切入点;)
Step1. 由于录制的脚本太多,询问了开发客户端得到这个ID前发送给服务器请求时所用的函数,版面关系,截取了一部分(请到data.ws中去找):
send buf146 208
".http://tempuri.org/IEdisDesignService/GetMaxIdD"
"\x1a\xad\xb4\xf7\xb9"
"\b,"
recv buf147 161
"6http://tempuri.org/IEdisDesignService/GetMaxIdResponseD"
"GetMaxIdResult"
"@R"
"*"
Step2. 其中GetMaxID是客户端发送的请求,红色加粗部分@R为客户端接收到的ID,由于LR是用ASCII码显示,可以通过LR函数将其转换为整型,切换回Action部分(笔者已将vuser_init中内容都放到action中),再切到Tree View,找到buf147,内容如下:
\x05œV\x02\v\x01s\x04\v\x01a\x06V\bD\n\x1e\x00‚™6http://tempuri.org/IEdisDesignService/GetMaxIdResponseD\x12´÷¹\b,ê…L”v9t$>ˆK\x01V\x0e@\x10GetMaxIdResponse\b\x13http://tempuri.org/@\x0eGetMaxIdResult@R*\x01\x01\x01\x00\x07
Step3. 找到@R,选中->右键->Create Parameter,弹出的对话框中有个Script. Statement区域,将其内容复制下来,关闭窗口,内容为:lrs_save_param( "socket1", LRS_LAST_RECEIVED, "Parameter1", 154, 5 );
注:socket貌似不支持自动关联,所以安全保证我们自己修改脚本,手动关联;
Step4. 将Script. Statement内容复制下来后,切换回ScriptView,找到buf147,一般这个buf应该为receive,在其下面将上面的语句黏贴上;
Step5. 切到data.ws,查找@R,将@R都替换为<Parameter1>, 注意有些@R可能在一个字符串中,就不能替换掉,只要单独字符串为@R的才可以替换;
好,到这里关联结束了,可以回放脚本检查;
大家也可以把客户端接收到的ID显示出来具体方法为:在添加lrs_save_param();下一行加上lr_output_message("Parameter1 is : %s", lr_eval_string("<Parameter1>"));,回放中,将把Parameter的内容显示出来,如果值一直不变,那可能您的返回ID位置找的不正确,正常这个值在不同的回放过程中应是变化的,切为递增的;
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG:
lr
LR
Socket
socket
关联