51Testing软件测试论坛

标题: LR虚拟用户登陆服务器后掉线现象的原因 [打印本页]

作者: charmer    时间: 2006-12-5 12:12
标题: LR虚拟用户登陆服务器后掉线现象的原因
LR虚拟用户登陆服务器后掉线现象的原因可能是哪些呢?

此程序用SOCKETS录制的,利用  
for (i=0;i<=100;i++)
  {
  lrs_send("socket2", "buf29", LrsLastArg);
lr_think_time(100);
}
    return 0;
来不断的与服务器端交互。此程序的目的是实现登陆服务器成功,并停留在服务器上很长一段时间(如几天时间)而不掉线就可以。
原脚本如下:
/*********************************************************************
* Created by Mercury Interactive Windows Sockets Recorder
*
* Created on: Tue Dec 05 10:02:56
*********************************************************************/

#include "lrs.h"


Action()
{    int i;
    lrs_create_socket("socket0", "TCP", "RemoteHost=172.16.4.4:6998",  LrsLastArg);

    lrs_send("socket0", "buf0", LrsLastArg);

    lrs_receive("socket0", "buf1", LrsLastArg);

    lrs_close_socket("socket0");

    lrs_create_socket("socket1", "TCP", "RemoteHost=172.16.4.4:6998",  LrsLastArg);

    lrs_send("socket1", "buf2", LrsLastArg);

    lrs_receive("socket1", "buf3", LrsLastArg);

    lrs_close_socket("socket1");

    lrs_create_socket("socket2", "TCP", "RemoteHost=172.16.4.4:6998",  LrsLastArg);

    lrs_send("socket2", "buf4", LrsLastArg);

/*   lrs_receive("socket2", "buf5", LrsLastArg);

    lrs_create_socket("socket3", "UDP", "LocalHost=10000",  LrsLastArg);

    lrs_send("socket3", "buf6", "TargetSocket=172.16.4.4:10000", LrsLastArg);

    lrs_receive("socket3", "buf7", LrsLastArg);

    lrs_send("socket3", "buf8", "TargetSocket=172.16.4.4:10000", LrsLastArg);

    lrs_receive("socket3", "buf9", LrsLastArg);

    lrs_send("socket3", "buf10", "TargetSocket=172.16.4.4:10000", LrsLastArg);

    lrs_receive("socket3", "buf11", LrsLastArg);

    lrs_send("socket3", "buf12", "TargetSocket=172.16.4.4:10000", LrsLastArg);

    lrs_receive("socket3", "buf13", LrsLastArg);

    lrs_send("socket3", "buf14", "TargetSocket=172.16.4.4:10000", LrsLastArg);

    lrs_receive("socket3", "buf15", LrsLastArg);

    lrs_receive("socket2", "buf16", LrsLastArg);

    lrs_send("socket3", "buf17", "TargetSocket=172.16.4.4:10000", LrsLastArg);

    lrs_receive("socket3", "buf18", LrsLastArg);

    lrs_send("socket3", "buf19", "TargetSocket=172.16.4.4:10000", LrsLastArg);

    lrs_receive("socket3", "buf20", LrsLastArg);

    lrs_send("socket3", "buf21", "TargetSocket=172.16.4.4:10000", LrsLastArg);

    lrs_receive("socket3", "buf22", LrsLastArg);

    lrs_send("socket3", "buf23", "TargetSocket=172.16.4.4:10000", LrsLastArg);

    lrs_receive("socket3", "buf24", LrsLastArg);

    lrs_send("socket2", "buf25", LrsLastArg);

    lrs_send("socket3", "buf26", "TargetSocket=172.16.4.4:10000", LrsLastArg);

    lrs_receive("socket3", "buf27", LrsLastArg);

    lrs_receive("socket2", "buf28", LrsLastArg);

    lrs_send("socket2", "buf29", LrsLastArg);

    lrs_send("socket3", "buf30", "TargetSocket=172.16.4.4:10000", LrsLastArg);

    lrs_receive("socket3", "buf31", LrsLastArg);

    lrs_send("socket2", "buf32", LrsLastArg);

    lrs_send("socket3", "buf33", "TargetSocket=172.16.4.4:10000", LrsLastArg);

    lrs_receive("socket3", "buf34", LrsLastArg);

    lrs_send("socket3", "buf35", "TargetSocket=172.16.4.4:10000", LrsLastArg);

    lrs_receive("socket3", "buf36", LrsLastArg);

    lrs_send("socket2", "buf37", LrsLastArg);

    lrs_send("socket3", "buf38", "TargetSocket=172.16.4.4:10000", LrsLastArg);

    lrs_receive("socket3", "buf39", LrsLastArg);

    lrs_send("socket3", "buf40", "TargetSocket=172.16.4.4:10000", LrsLastArg);

    lrs_receive("socket3", "buf41", LrsLastArg);

    lrs_receive("socket2", "buf42", LrsLastArg);

    lrs_send("socket2", "buf43", LrsLastArg);
*/
  for (i=0;i<=100;i++)
  {
  lrs_send("socket2", "buf29", LrsLastArg);
lr_think_time(100);
}
    return 0;
}

data.ws文件如下:
;WSRData 2 1

send  buf0 7
        "\xff\x01\x01\x00\xff\x01\x01"

recv  buf1 20
        "\xff\xcd\x0e\x00\xff\xcd\x00\x00"
        "04.03.21.00"
        "\x00"

send  buf2 44
        "\xff\x00"
        "&"
        "\x00\xff\xcd\x02"
        "<test5>"
        "\x00\xff\xff\xff"
        "霉竪鉧萲"
        "\x00\x00\x00\x00"
        "燘1"
        "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\xf8\x12\x00"
        "l"
        "\xe9"

recv  buf3 72
        "\xff"
        "虰"
        "\x00\xff\xcd\x00\x00"
        "\""
        "\x00\x00\x00"
        "test"
        "\x00"
        "w鉧萲"
        "\x00\x00\x00\x00"
        "燘1"
        "\x00\x00\x00\x00\x00\xc8\x00"
        "\b"
        "\x00\x18\xf8"
        "#"
        "\x00\x00\x00"
        "lr"
        "\x00\xfe\x12\x00"
        "栎"
        "\x12\x00"
        "屯屯屯屯屯屯"
        "\xc9\x00\x00\x00"
        "屯"

send  buf4 54
        "\xff"
        "60"
        "\x00\xff\xcd\x03\x00\x00\x00"
        "#"
        "\x00\x00\x00"
        "<test5>"
        "\x00"
        "梯"
        "\x12\x00"
        "0撊k"
        "\x15\x03\xff\xff\xda\x02"
        "\b"
        "\x00\x05"
        "1"
        "\x00\x00\x00\x00\x00\x00"
        "斑"
        "\x12\x00"
        "羹"
        "\x12\x00"
        "栎"
        "\x12\x00"

recv  buf5 60
        "\xff\xcd"
        "6"
        "\x00\xff\xcd\x00\x00\x00"
        "烫"
        "\xcc"
        "#"
        "\x00\x00\x00\xa9\x01\x00\x00\x02\xcc\x10"
        "'"
        "\x10"
        "'"
        "\x01"
        "泰"
        "\x01\x00\x00"
        "<test5>"
        "\x00"
        "梯"
        "\x12\x00"
        "0撊k"
        "\x15\x03\xff\xff\xda\x02"
        "\b"
        "\x00\x05\x02\x00\x00\x00\x00\x00\x00"

send  buf6 13
        "\x01"
        "#"
        "\x00\x00\x00\xa9\x01\x00\x00\x00\x00\x00\x00"

recv  buf7 7
        "\x01\xa9\x01\x00\x00\x01\x00"

send  buf8 13
        "\x01"
        "#"
        "\x00\x00\x00\xa9\x01\x00\x00\x00\x00\x00\x00"

recv  buf9 7
        "\x01\xa9\x01\x00\x00\x01\x00"

send  buf10 13
        "\x01"
        "#"
        "\x00\x00\x00\xa9\x01\x00\x00\x00\x00\x00\x00"

recv  buf11 7
        "\x01\xa9\x01\x00\x00\x01\x00"

send  buf12 13
        "\x01"
        "#"
        "\x00\x00\x00\xa9\x01\x00\x00\x00\x00\x00\x00"

recv  buf13 7
        "\x01\xa9\x01\x00\x00\x01\x00"

send  buf14 13
        "\x01"
        "#"
        "\x00\x00\x00\xa9\x01\x00\x00\x00\x00\x00\x00"

recv  buf15 7
        "\x01\xa9\x01\x00\x00\x01\x00"

recv  buf16 8
        "\xff\xcd\x02\x00\xff\xcd"
        ",\b"

send  buf17 13
        "\x01"
        "#"
        "\x00\x00\x00\xa9\x01\x00\x00\x00\x00\x00\x00"

recv  buf18 7
        "\x01\xa9\x01\x00\x00\x01\x00"

send  buf19 13
        "\x01"
        "#"
        "\x00\x00\x00\xa9\x01\x00\x00\x00\x00\x00\x00"

recv  buf20 7
        "\x01\xa9\x01\x00\x00\x01\x00"

send  buf21 13
        "\x01"
        "#"
        "\x00\x00\x00\xa9\x01\x00\x00\x00\x00\x00\x00"

recv  buf22 7
        "\x01\xa9\x01\x00\x00\x01\x00"

send  buf23 13
        "\x01"
        "#"
        "\x00\x00\x00\xa9\x01\x00\x00\x00\x00\x00\x00"

recv  buf24 7
        "\x01\xa9\x01\x00\x00\x01\x00"

send  buf25 12
        "\xff"
        "6"
        "\x06\x00\xff\xcd\x01"
        "\b"
        "\x01\x01\x01\x00"

send  buf26 13
        "\x01"
        "#"
        "\x00\x00\x00\xa9\x01\x00\x00\x00\x00\x00\x00"

recv  buf27 7
        "\x01\xa9\x01\x00\x00\x01\x00"

recv  buf28 8
        "\xff\xcd\x02\x00\xff\xcd"
        ",\b"

send  buf29 8
        "\xff"
        "6"
        "\x02\x00\xff\xcd"
        ",\b"

send  buf30 13
        "\x01"
        "#"
        "\x00\x00\x00\xa9\x01\x00\x00\x00\x00\x00\x00"

recv  buf31 7
        "\x01\xa9\x01\x00\x00\x01\x00"

send  buf32 8
        "\xff"
        "6"
        "\x02\x00\xff\xcd"
        ",\b"

send  buf33 13
        "\x01"
        "#"
        "\x00\x00\x00\xa9\x01\x00\x00\x00\x00\x00\x00"

recv  buf34 7
        "\x01\xa9\x01\x00\x00\x01\x00"

send  buf35 13
        "\x01"
        "#"
        "\x00\x00\x00\xa9\x01\x00\x00\x00\x00\x00\x00"

recv  buf36 7
        "\x01\xa9\x01\x00\x00\x01\x00"

send  buf37 8
        "\xff"
        "6"
        "\x02\x00\xff\xcd"
        ",\b"

send  buf38 13
        "\x01"
        "#"
        "\x00\x00\x00\xa9\x01\x00\x00\x00\x00\x00\x00"

recv  buf39 7
        "\x01\xa9\x01\x00\x00\x01\x00"

send  buf40 13
        "\x01"
        "#"
        "\x00\x00\x00\xa9\x01\x00\x00\x00\x00\x00\x00"

recv  buf41 7
        "\x01\xa9\x01\x00\x00\x01\x00"

recv  buf42 8
        "\xff\xcd\x02\x00\xff\xcd"
        ",\b"

send  buf43 8
        "\xff"
        "6"
        "\x02\x00\xff\xcd"
        ",\b"


-1
大家觉得最可能的原因是什么而导致自动掉线现象???
作者: charmer    时间: 2006-12-6 10:31
怎么没人来看看啊?
作者: jut984907    时间: 2006-12-6 10:54
标题: 不是没人看,而是你描述的太不清楚了
你的脚本中录制的 操作是什么?
报错的那个操作又是什么?
这些都没有描述清楚,其它人打死也不知道了
作者: charmer    时间: 2006-12-8 16:18
谢谢
我的目的就是让我虚拟的100个用户能成功登陆到服务器上,并且不会掉线
这些都是完全自动录制的脚本
log是:
Start auto log messages stack - Iteration 1.        [MsgId: MMSG-10545]
Starting action Action.        [MsgId: MMSG-15919]
Action.c(12): lrs_create_socket(socket0, TCP, ...)        [MsgId: MMSG0]
Action.c(14): lrs_send(socket0, buf0)        [MsgId: MMSG0]
Action.c(16): lrs_receive(socket0, buf1)        [MsgId: MMSG0]
Action.c(18): lrs_close_socket(socket0)        [MsgId: MMSG0]
Action.c(20): lrs_create_socket(socket1, TCP, ...)        [MsgId: MMSG0]
Action.c(22): lrs_send(socket1, buf2)        [MsgId: MMSG0]
Action.c(24): lrs_receive(socket1, buf3)        [MsgId: MMSG0]
Action.c(26): lrs_close_socket(socket1)        [MsgId: MMSG0]
Action.c(28): lrs_create_socket(socket2, TCP, ...)        [MsgId: MMSG0]
Action.c(30): lrs_send(socket2, buf4)        [MsgId: MMSG0]
Action.c(158): lrs_send(socket2, buf29)        [MsgId: MMSG0]
Action.c(159): lr_think_time: 100.00 seconds.        [MsgId: MMSG-15948]
Action.c(158): lrs_send(socket2, buf29)        [MsgId: MMSG0]
Action.c(158): Error : socket2 - Connection reset by peer. Error code : 10054.        [MsgId: MERR10054]
作者: charmer    时间: 2006-12-8 16:27
从日志中可以看出是在程序循环的时候,连接被服务器拒绝、重置而导致连接失败
我就没想通为什么被拒绝的
for (i=0;i<=100;i++)
  {
  lrs_send("socket2", "buf29", LrsLastArg);
  lr_think_time(100);
}
其中buf29的内容是:
send  buf29 8
        "\xff"
        "6"
        "\x02\x00\xff\xcd"
        ",\b"

为什么要选择buf29的内容。

[ 本帖最后由 charmer 于 2006-12-15 16:46 编辑 ]
作者: charmer    时间: 2006-12-11 12:09
好的了,
谢谢大家对此帖的关注
问题已经解决了
作者: jut984907    时间: 2006-12-11 14:55
楼主,解决方法能否介绍下?
给遇到同样问题的朋友一点帮助?
作者: charmer    时间: 2006-12-15 16:44
for (i=0;i<=100;i++)
  {
  lrs_send("socket2", "buf29", LrsLastArg);
lr_think_time(100);
}
因为lr_think_time(100);中设置的时间太大了,设置小点,不要让服务器端以为客户端没有任何请求而自动掉线,还有在runtime setting里面的thinktime默认是忽略的,我们要选择Replay think time中的as recorded,这样在运行的时候就不会出现把thinktime的时间忽略了
注:出现上述问题的ID是10054
作者: 断寒    时间: 2006-12-15 16:55
good job
作者: philipshot    时间: 2007-7-19 16:10
谢谢,LZ~~~
作者: xiajianrong    时间: 2007-7-20 11:36
经常遇到这样的问题,但是定位
作者: jhx800    时间: 2008-4-30 17:15
=。=
看过了  还是蛮有帮助的
作者: liangjz    时间: 2008-5-2 00:39
哈哈,在服务器端把idle超时的时间设置长一些也可以做到
作者: jw198508    时间: 2008-5-7 22:28
标题: 求教
那位高手能把QQ或MSN告诉我吗?我是新手,刚刚入门.有很多问题请教.谢谢
作者: 小鱼儿乖乖    时间: 2008-8-16 15:51
谢谢




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2