51Testing软件测试论坛

标题: 模拟时服务器压力上不去的问题 [打印本页]

作者: haha010    时间: 2008-4-28 15:36
标题: 模拟时服务器压力上不去的问题
目前有一款C/S架构类似MSN的聊天软件需要测试,我用lr8.0进行如下操作:
1、选择win sockets协议进行录制脚本,在action设置集合点,并模拟发送消息,保存脚本
2、回放、编译都没有问题,但服务器压力上不去,CPU压力几乎为0,本地压力很大
不知是什么原因,请高手指点!!!

谢谢!!!
作者: iori    时间: 2008-4-28 16:31
你是说回放的时候服务器压力上不去,还是在场景的时候压力上不去?
还有你回放的时候消息是否成功发送?你的场景是如何设置的,请说详细点
作者: 阳光_测试    时间: 2008-4-28 16:41
标题: 你需要调试一下你的脚步
winsocket脚本有的时候看着运行没有问题,但是实际上可能存在问题,你看看你回放时候的调试信息,有没有大量的BUF比较的信息,并且BUF数据与原来数据不同的情况。
作者: haha010    时间: 2008-4-28 16:47
谢谢楼上的支持,是这样的:回放时毕竟就一个用户,压力不是明显,回放时显示成功。在场景的时候你指的就是在control模拟多用户的时候吧?那里压力上不去,场景设置为10用户在5分钟内连续做发送消息操作,服务器压力上不去,请问是什么原因呢??
作者: haha010    时间: 2008-4-28 16:50
我录制的脚本如下:
Action()
{
    lrs_create_socket("socket0", "TCP", "RemoteHost=PITTXIA:8000",  LrsLastArg);

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

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

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

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

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

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

    lr_rendezvous("1");

    return 0;
}

回放时:

tarting action Action.
Action.c(12): lrs_create_socket(socket0, TCP, ...)
Action.c(14): lrs_send(socket0, buf0)
Action.c(16): lrs_receive(socket0, buf1)
Action.c(18): lrs_send(socket0, buf2)
Action.c(20): lrs_receive(socket0, buf3)
Action.c(20): Mismatch (expected 59 bytes, 7 bytes actually received)
Action.c(22): lrs_send(socket0, buf4)
Action.c(24): lrs_receive(socket0, buf5)
Action.c(24): Mismatch (expected 2644 bytes, 0 bytes actually received)
Action.c(26): Rendezvous 1
Ending action Action.
Ending iteration 1.
Ending Vuser...
Starting action vuser_end.
vuser_end.c(12): lrs_cleanup()
Ending action vuser_end.

能帮我分析一下是什么原因导致压力上不去嘛?非常感谢!!!!
作者: haha010    时间: 2008-4-28 16:52
Mismatch (expected 2644 bytes, 0 bytes actually received)
丢数据包是怎么回事呢??应该是这里导致压力上不去吧?

怎么进行调整呢??
作者: iori    时间: 2008-4-28 16:54
标题: 回复 5# 的帖子
最后有一个集合点是什么意思
作者: haha010    时间: 2008-4-28 16:58
就是在录制模拟发送信息时,设置的集合点rendezvous,在这一点10用户同时发送信息
作者: haha010    时间: 2008-4-28 16:59
请问这位大侠可以告诉我你MSN嘛?或者你加我:hl714@hotmail.com
谢谢!!
作者: iori    时间: 2008-4-28 17:01
你先去掉这个集合点试试
作者: haha010    时间: 2008-4-28 17:02
好的,我试试
作者: haha010    时间: 2008-4-28 17:04
对了,还有一个问题,录制C/S结构时,在start recording对话框中的program to record:应该填什么路径呢?
作者: haha010    时间: 2008-4-28 17:08
去掉集合点ACTION里怎么没脚本了呢,都是空的
作者: haha010    时间: 2008-4-28 17:11
录在vuser_init里有脚本,如果录在action里就没有
作者: haha010    时间: 2008-4-28 17:13
去掉集合点还是报Mismatch (expected 2644 bytes, 0 bytes actually received),丢数据
作者: iori    时间: 2008-4-28 17:31
标题: 回复 12# 的帖子
......当然是你c/s软件存放的位置了
作者: iori    时间: 2008-4-28 17:36
标题: 回复 15# 的帖子
1第20步收的内部和录制的时候不同,说明在第19步以前就有错误,估计你需要做关联
2socket协议的脚本,需要搞清楚通讯包中每一个字节的含义,找开发和你一起分析一下
作者: haha010    时间: 2008-4-28 17:53
好的,谢谢
作者: haha010    时间: 2008-4-28 18:20
标题: c/s架构的聊天软件的压力测试问题
目前有一款C/S架构类似MSN的聊天软件需要测试,我用lr8.0进行如下操作:
1、选择win sockets协议进行录制脚本,在action设置集合点,并模拟发送消息,保存脚本
2、回放、编译都没有问题,但服务器压力上不去,CPU压力几乎为0,本地压力很大
程序中使用SSL协议,所以会报错,如下:
Mismatch (expected 2644 bytes, 0 bytes actually received)

不知是什么原因,请高手指点!!!

谢谢!!!
作者: liangjz    时间: 2008-4-28 23:27
LR 对 SOCKET协议支持不够好的。

需要很清楚知道C/S每一个包的数据结构,否则传递给服务器端的包早被应用抛弃了

看服务器日志吧
作者: haha010    时间: 2008-4-29 10:09
超级版主,能告诉我具体应该怎么做嘛?谢谢了!!!!!!!
作者: bzcyer    时间: 2008-4-29 12:50
你觉得你这样的描述,别人能看的懂你在说什么吗?
脚本最少也要帖出来吧
作者: msnshow    时间: 2008-4-29 13:11
没试过,不过我也想了解一下,关注中
作者: haha010    时间: 2008-4-30 10:24
脚本录制完是这样的,
Action()
{
    lrs_create_socket("socket0", "TCP", "RemoteHost=PITTXIA:8000",  LrsLastArg);

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

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

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

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

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

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

    lr_think_time(20);

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

    lr_think_time(6);

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

    lr_think_time(3);

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

    return 0;
}
作者: haha010    时间: 2008-4-30 10:25
编译后的结果是这样,
Starting action vuser_init.
vuser_init.c(12): lrs_startup(257)
Ending action vuser_init.
Running Vuser...
Starting iteration 1.
Starting action Action.
Action.c(12): lrs_create_socket(socket0, TCP, ...)
Action.c(14): lrs_send(socket0, buf0)
Action.c(16): lrs_receive(socket0, buf1)
Action.c(18): lrs_send(socket0, buf2)
Action.c(20): lrs_receive(socket0, buf3)
Action.c(20): Mismatch (expected 59 bytes, 7 bytes actually received)
Action.c(22): lrs_send(socket0, buf4)
Action.c(24): lrs_receive(socket0, buf5)
Action.c(24): Mismatch (expected 2644 bytes, 0 bytes actually received)
Action.c(28): lrs_receive(socket0, buf6)
Action.c(28): Mismatch (expected 916 bytes, 0 bytes actually received)
Action.c(32): lrs_receive(socket0, buf7)
Action.c(32): Mismatch (expected 17678 bytes, 0 bytes actually received)
Action.c(36): lrs_receive(socket0, buf8)
Action.c(36): Mismatch (expected 458 bytes, 0 bytes actually received)
Ending action Action.
Ending iteration 1.
Ending Vuser...
Starting action vuser_end.
vuser_end.c(12): lrs_cleanup()
Ending action vuser_end.
Vuser Terminated.
作者: liangjz    时间: 2008-5-2 00:54
回楼主的。
你有信心传递给服务器的每一个网络包都不需要动态修改么?
如果网络包包含时间、唯一值等因素的,而服务器正好为了防止被攻击拒绝网络包的,LR执行看到都发送出去了

其实这个问题最能帮你解决问题的就是你的开发人员
1) 问数据交互过程以及网络协议格式
2) 让开发人员开发一个客户端通信DLL模拟客户端行为,供LR 并发执行,或者干脆多线程的程序连LR 都免了




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