51Testing软件测试论坛

标题: 怎么使1000用户和服务器保持连接?在线等 [打印本页]

作者: 423799223    时间: 2007-4-5 10:57
标题: 怎么使1000用户和服务器保持连接?在线等
现在急需请教下各位高手、版主,怎么样才能使1000个用户和OA保持连接,就是想要看1000个用户在线,不做操作,服务器是否受得了,我想到了2个办法,Zee版主说都不行,说必须不断的和向服务器发送请求才能保持连接,请Zee版主和其他高手解答下,谢谢了
注:只是一个OA的登录脚本,LR中的Init和End没有任务事务
办法1:
Action
{
    登录事务开始...
    登录事务结果...
    LR_Think_Time(8000);
    关闭IE...
}
办法2:
Action
{
    登录事务开始...
    登录事务结果...
    while(1)
    {
    //里面是空的,目的就是不让脚本退出
    }
    关闭IE...
}
以上两个方法Zee版主不行,请大家帮忙解答下,今天晚上我就要用LR做测试了,在线等,谢谢呀
做好举个脚本的例子,小弟感激不尽

[ 本帖最后由 423799223 于 2007-4-5 11:37 编辑 ]
作者: 423799223    时间: 2007-4-5 11:37
国标惯例 自己先顶
作者: mfktafd    时间: 2007-4-5 13:27
Lr_think_time和While
方法好相不行,关注中。。

[ 本帖最后由 mfktafd 于 2007-4-5 13:32 编辑 ]
作者: rickyzhu    时间: 2007-4-5 13:57
保持连接。 while为什么不行,在里面进行简单的操作也不行吗?

一定要空转?
作者: mfktafd    时间: 2007-4-5 14:13
lr_think_time和while
在服务器上的网络状态为:
ESTABLISHED---->FIN_WAIT2------>连接关闭.
网络连接状态参数:
ESTABLISHED
The socket has an established connection

FIN_WAIT2
Connection is closed, and the socket is waiting for a shutdown from the remote end.
作者: 423799223    时间: 2007-4-5 14:40
请问怎么样才能使服务器保持连接
作者: 423799223    时间: 2007-4-5 15:38
各位高手不要闪,都看看呀
作者: mfktafd    时间: 2007-4-5 15:49
web_enable_keep_alive  启用 Keep-Alive HTTP 连接

怎么用我不会,你弄弄看..行不..
作者: selon    时间: 2007-4-5 16:11
Action
{
    登录事务开始...
    登录事务结果...
    sleep(8000);
    关闭IE...
}

这样可以吗?
作者: mfktafd    时间: 2007-4-5 16:18
原帖由 selon 于 2007-4-5 16:11 发表
Action
{
    登录事务开始...
    登录事务结果...
    sleep(8000);
    关闭IE...
}

这样可以吗?



一直在关注中..
这个不行,

还是用集合,并发吧,呵呵,,
作者: 423799223    时间: 2007-4-5 16:33
我们的服务器80个用户在内网就DOWN掉了,现在想看下1000用户同时在线有没有问题,只是登录1次后挂在上面就行了,怎么弄呀
作者: 大漠飞鹰    时间: 2007-4-5 16:53
将登陆OA的部分的脚本录制到action()部分中。
同时还需要设置以下几点:
1、在场景设置中选择运行时间。
2、在运行时设置中将“迭代模拟新用户”的选中状态取消。
作者: 大漠飞鹰    时间: 2007-4-5 16:58
只提供思路,具体的还要看你的系统。
作者: liuwendy    时间: 2007-4-5 17:00
关注!!!
作者: 大漠飞鹰    时间: 2007-4-5 17:05
对了,可以设置一下迭代的时间间隔,这样可以减小服务器的压力。
作者: mfktafd    时间: 2007-4-5 17:06
对有些服务器(可能是部分)
客户端打开页面一定时间没有操作,其实服务器上与客户的连接会自动断开.
如果再有新的请求,会重新建立连接.
我用:Linux+JBOSS
查看的,
不知道你的OA是不是这样..
只有更改系统配置,把TCP连接的Timeout设置的长一点了.

[ 本帖最后由 mfktafd 于 2007-4-5 17:10 编辑 ]
作者: 大漠飞鹰    时间: 2007-4-5 17:12
一般的OA, 如果不关闭IE, 其连接时不会断开的。
一般来说,登陆后会有一个页面,这个页面会定时刷新,也就是向服务器请求数据,所以不会断开。
当然,这要看具体的系统,一般是这样的。
作者: mfktafd    时间: 2007-4-5 17:19
原帖由 大漠飞鹰 于 2007-4-5 17:12 发表
一般的OA, 如果不关闭IE, 其连接时不会断开的。
一般来说,登陆后会有一个页面,这个页面会定时刷新,也就是向服务器请求数据,所以不会断开。
当然,这要看具体的系统,一般是这样的。


如果是这个情况的话,保持连接(刷新,向服务请求数据)的Action,会被LR录制的,
写一死循环把保持连接(刷新,向服务请求数据)的Action放进去就应该可以了.
作者: 大漠飞鹰    时间: 2007-4-6 08:53
原帖由 mfktafd 于 2007-4-5 17:19 发表


如果是这个情况的话,保持连接(刷新,向服务请求数据)的Action,会被LR录制的,
写一死循环把保持连接(刷新,向服务请求数据)的Action放进去就应该可以了.


没错,是这样的。
作者: rickyzhu    时间: 2007-4-6 09:37
标题: 回复 #8 mfktafd 的帖子
昨天我也想到这个办法,只是不知道可行不?
如果可行,就在RTS里面设置就可以了。
作者: Zee    时间: 2007-4-6 09:48
这个方法,我已经在楼主的站内短信里告诉他了,但是,我觉得这种的做法,不符合实际客户的操作。
性能测试的模型从哪里来的?
不就是分析用户的行为吗?
那这样做是什么用户的行为?
作者: 423799223    时间: 2007-4-6 11:36
如果写一死循环让虚拟用户向服务器发送刷新页面请求,如果1000用户发送请求,是多大压力,那就不是单纯的服务器保持连接了
作者: mfktafd    时间: 2007-4-6 11:49
你打开页面在几分钟内不操作,,
Client/Server之间的连接还存在吗!??
通过什么确定连接存在??
在真实环境下:1000个用户登陆后,都不进行操作,1000个Client与Server之间的连接是不会被保持的.(页面会自动刷新例外)
作者: 423799223    时间: 2007-4-6 14:59
自动刷新这个脚本怎么写呀
作者: 大漠飞鹰    时间: 2007-4-6 15:27
原帖由 423799223 于 2007-4-6 14:59 发表
自动刷新这个脚本怎么写呀

你问一下开发人员,你们的系统是否有自动刷新。
如果有的话,录制脚本时,等待的时间长一些是能录下来的。
比如5分钟刷新一次,那你就等待5分钟,脚本中会出现新的内容,这就是刷新代码脚本。
作者: 大漠飞鹰    时间: 2007-4-6 15:28
原帖由 Zee 于 2007-4-6 09:48 发表
这个方法,我已经在楼主的站内短信里告诉他了,但是,我觉得这种的做法,不符合实际客户的操作。
性能测试的模型从哪里来的?
不就是分析用户的行为吗?
那这样做是什么用户的行为?


同意。
这种测试纯粹是玩概念,没有多少实际意义。
作者: 423799223    时间: 2007-4-6 16:06
没办法
领导安排的
我们的系统没有自动刷新功能
Session会保持连接20分钟 20分钟后如果再点击的话会自动连接
作者: ppent    时间: 2007-4-6 20:55
我个人倒不觉得这个测试没有意义,测试系统能否支持1000个用户在线,不也是一种测试需求吗?难道没有意义?
另外如果session的timeout是20分钟的话,那我认为20分钟内达到1000个用户登陆就已经实现了这个测试场景的模拟了。当然可能还有考虑一些其它参数,如http、socket连接的timeout时间。
关键还是看被测系统的实现方式。
欢迎拍砖。
作者: vbic    时间: 2007-4-7 06:53
可以有集合,还有就是使用持续时间。
作者: 423799223    时间: 2007-4-7 22:49
我只能是每分钟登录20个用户
这样的话
1000用户登录完就需要50分钟
然后还要1000用户同时在线1小时
按楼上所说的不行 麻烦各个再帮忙看看
作者: ahang2002    时间: 2009-11-6 17:31
我想问下,如果是CS的服务器,应该怎么测试最大连接数?
作者: dennyqiang    时间: 2009-11-6 18:04
楼主的命题本来就是不成立的,1000个用户什么都不做保持连接这是不可能的事情,HTTP本来就是无连接协议,再加上SESSION过期时间为20分钟,那么20分钟后1000个用户全部断开连接了,还测个什么劲儿呢。

只有两个办法来解决这种没什么实际意义的测试:
1) 设置SESSION过期时间为很长很长(你需要24个小时那就设24个小时),这样连接一直保持。
2) 如果要模拟实际的20分钟的过期时间,那么就得每个用户每20分钟向服务器提交一次请求(简单的复杂的都行)。

否则,那我们就去修改HTTP协议吧。
作者: jassica    时间: 2009-11-7 04:45
顶一下,我最近也有一个这样的需求要测
作者: liangyingjie    时间: 2009-11-18 12:00
顶一下,呵呵
作者: 220    时间: 2009-11-18 14:11
在服务器端放置一个页面,这个页面上加上sleep时间,然后通过LR访问这个页面,这样就可以保持连接了吧
作者: kuangquanshui    时间: 2009-11-18 14:34





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