求助C/S结构脚本返回值动态关联
今天尝试录制了一个PB开发的HIS系统.脚本回放的时候发现登录的时候就报错,发现问题所在是服务器返回值不一样.如下:vuser_init()
{
lrs_startup(257);
lrs_create_socket("socket0", "TCP", "RemoteHost=1C184D5AED4F4AA:1521",LrsLastArg);
lrs_send("socket0", "buf0", LrsLastArg);
lrs_receive("socket0", "buf1", LrsLastArg);
lrs_disable_socket("socket0", DISABLE_SEND);
lrs_close_socket("socket0");
lrs_create_socket("socket1", "TCP", "RemoteHost=1C184D5AED4F4AA:2479",LrsLastArg);
lrs_send("socket1", "buf2", LrsLastArg);
lrs_receive("socket1", "buf3", LrsLastArg);
lrs_send("socket1", "buf4", LrsLastArg);
lrs_receive("socket1", "buf5", LrsLastArg);
lrs_send("socket1", "buf6", LrsLastArg);
lrs_receive("socket1", "buf7", LrsLastArg);
lrs_send("socket1", "buf8", LrsLastArg);
...
data.was如下:
sendbuf0 237
"\x00\xed\x00\x00\x01\x00\x00\x00\x01"
"9"
"\x01"
","
"\x00\x00"
"\b"
"\x00\x7f\xff\xc6\x0e\x00\x00\x01\x00\x00\xb3\x00"
":"
"\x00\x00\x02\x00"
"aa"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00"
"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=202.38.207.171)(PORT=1521))(CONN"
"ECT_DATA=(SERVICE_NAME=his)(CID=(PROGRAM=E:\\HIS\\scuthis.exe)(HOST=MICROS"
"OF-F0AB74)(USER=Administrator))))"
recvbuf1 66
"\x00"
"B"
"\x00\x00\x05\x00\x00\x00\x00"
"8(ADDRESS=(PROTOCOL=tcp)(HOST=202.38.207.171)(PORT=2479))"
sendbuf2 237
"\x00\xed\x00\x00\x01\x04\x00\x00\x01"
"9"
"\x01"
","
"\x00\x00"
"\b"
"\x00\x7f\xff\xc6\x0e\x00\x00\x01\x00\x00\xb3\x00"
":"
"\x00\x00\x02\x00"
"aa"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00"
"(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=202.38.207.171)(PORT=1521))(CONN"
"ECT_DATA=(SERVICE_NAME=his)(CID=(PROGRAM=E:\\HIS\\scuthis.exe)(HOST=MICROS"
"OF-F0AB74)(USER=Administrator))))"
...
问题所在应该是这个放回值recvbuf1 66
"\x00"
"B"
"\x00\x00\x05\x00\x00\x00\x00"
"8(ADDRESS=(PROTOCOL=tcp)(HOST=202.38.207.171)(PORT=2479))"
的PORT=2479是动态的?
那位大虾知道C/S结构的动态关联如何处理? ?????? strstr 函数就是了 不懂,但是帮你顶!
回复 3# 的帖子
具体怎么样操作能解释一下吗?我只会B/S结构的函数关联。好像这个关联不了。 再顶一下,各位~~~ lrs_save_param()好像是这个函数 经过学习,可以通过手动关联找到了前面所说的动态端口值,但是现在尝试在lrs_create_socket("socket1", "TCP", "LocalHost=0", "RemoteHost=1C184D5AED4F4AA:2479", LrsLastArg);
如何把2479转化成动态值?
我是通过这样来获取到了这个动态值:
lrs_send("socket0", "buf0", LrsLastArg);
lrs_receive("socket0", "buf1", LrsLastArg);
lrs_save_searched_string("socket0", LRS_LAST_RECEIVED, "port", "LB/BIN=(PORT=", "RB/BIN=)", 1, 0, -1);
lr_output_message("这里打印出动态端口号!你不就是:%s嘛!",lr_eval_string("{port}"));
[ 本帖最后由 windfly1314 于 2009-6-2 15:56 编辑 ] 我搜索到很多朋友说把端口号用函数参数化就行了,我也知道关键在于 lrs_create_socket("socket1", "TCP", "LocalHost=0", "RemoteHost=1C184D5AED4F4AA:2479", LrsLastArg);
把2479参数化,但参数化值怎样把它直接调用动态值呢? 搜索到论坛中已有解决:
http://bbs.51testing.com/thread-124084-1-1.html
页:
[1]