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