51Testing软件测试论坛
标题:
求助C/S结构脚本返回值动态关联
[打印本页]
作者:
windfly1314
时间:
2009-5-13 15:57
标题:
求助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如下:
send buf0 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))))"
recv buf1 66
"\x00"
"B"
"\x00\x00\x05\x00\x00\x00\x00"
"8(ADDRESS=(PROTOCOL=tcp)(HOST=202.38.207.171)(PORT=2479))"
send buf2 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))))"
...
问题所在应该是这个放回值recv buf1 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结构的动态关联如何处理?
作者:
windfly1314
时间:
2009-5-14 10:20
??????
作者:
泊涯
时间:
2009-5-14 11:48
strstr 函数就是了
作者:
真不易
时间:
2009-5-14 11:48
不懂,但是帮你顶!
作者:
windfly1314
时间:
2009-5-25 12:16
标题:
回复 3# 的帖子
具体怎么样操作能解释一下吗?我只会B/S结构的函数关联。好像这个关联不了。
作者:
windfly1314
时间:
2009-5-31 17:42
再顶一下,各位~~~
作者:
云层
时间:
2009-5-31 19:09
lrs_save_param()好像是这个函数
作者:
windfly1314
时间:
2009-6-2 15:55
经过学习,可以通过手动关联找到了前面所说的动态端口值,但是现在尝试在
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 编辑
]
作者:
windfly1314
时间:
2009-6-2 16:26
我搜索到很多朋友说把端口号用函数参数化就行了,我也知道关键在于 lrs_create_socket("socket1", "TCP", "LocalHost=0", "RemoteHost=1C184D5AED4F4AA:2479", LrsLastArg);
把2479参数化,但参数化值怎样把它直接调用动态值呢?
作者:
windfly1314
时间:
2009-6-4 10:12
搜索到论坛中已有解决:
http://bbs.51testing.com/thread-124084-1-1.html
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2