51Testing软件测试论坛

标题: 有点问题想请教下大家,还望方便的话进来帮忙看看。急!!谢谢了 [打印本页]

作者: y30877286    时间: 2011-9-24 09:20
标题: 有点问题想请教下大家,还望方便的话进来帮忙看看。急!!谢谢了
问题是这样的,我们公司现在要做下网站能支持的最大在线用户数。目前我最简单的脚本是登录网站后不进行任何操作,设置think time时间长一些,保证在加载所有用户(现在是加载的200vuser)时在think time内全部登录进去。每15秒加载40vuser 运行6分钟、每秒减少40个vuser。这样的情况运行过程中提示了几个http500错误。
1.想请教下各位,报500错误的这一时刻的用户数就是最大在线用户数了么?还是逐渐在加大用户数,直到服务器崩溃时的用户数才算最大在线用户数?
2.因为最简单的这个脚本还不符合真实的模拟,还得需要模拟不同数量的用户登录后进行不同的操作。这个现在还没有做呢,因为我现在疑惑的疑惑的地方就是不知道怎么判定这个最大在线用户数?还望大家帮忙解答下,比较急~~~ 在此先谢谢各位了。
作者: y30877286    时间: 2011-9-24 11:30
哪位大侠能帮忙解决下么,有点急!! 谢谢大家了。
作者: nzz0102    时间: 2011-9-24 14:08
网站能支持的最大在线用户数,我的理解应该是用户不断增加,同时监控事物响应时间和服务器资源,当响应时间和资源达到拐点的时候,就是最大在线用户数。
在线用户数是不断进行操作的,仅仅登录成功,但是不做任何操作,对系统产生不了压力
作者: 云层    时间: 2011-9-24 16:52
,设置think time时间长一些,??百思不得其解 我觉得你基本概念就没搞清楚吧,如果你要测最大在线,干嘛非要设置个时间,还要让用户在这个时间内登陆?这个就不是真实负载你得到的结果也不能说明到底能支持不?

500错误是服务器上的错误,可能是服务器处理不了了,也可能是你请求就不对!
作者: y30877286    时间: 2011-9-24 21:38
本帖最后由 y30877286 于 2011-9-24 21:50 编辑

回复 4# 云层
谢谢云老师的解答,可能我的基本概念没搞懂。我是这样想得,在脚本设计方面,因为是测试最大在线用户数,也就是说在线用户数的最大容纳量。我设置think time时间长一些的原因是因为当用户在这些时间内登录到系统后,能保证加载的这些用户数都在线,如果不设置think time长一些的话。如果150人登录的过程中,假如有50人在登录后已经退出继续登录的话,这样就不能保证150同时在线的容纳量了。可能我这样的理解不正确。还望云老师辛苦帮忙解答下并给个怎样才能测出支持的最大用户数?我这样设计可以么?为了模拟真实环境操作。如:100个vuser 一部分登录后进行某业务操作,一部分vuser登录进行另外业务操作,一部分什么也不操作,分为3个脚本。已百分比的模式分组的形式进行场景运行。当不断的加载总人数后,直到真实用户访问网站登录时很长时间登录不进去并且不报500错误等,那么这个时刻的用户则为最大在线用户数。这样的做法可以么?在此先谢谢云老师了。也谢谢楼上的朋友给出的想法。
作者: y30877286    时间: 2011-9-24 21:40
回复 3# nzz0102
谢谢这位朋友的解答,我试着操作看下~
作者: he_jian    时间: 2011-9-25 23:04
你哪果把思考时间设置长一点,你到还不如加一个集合点,设置集合点策略
作者: 夏日摸摸茶    时间: 2011-9-26 09:50
你对概念的理解的确不是很清楚
你在脚本中设置了think time,相当于每个用户登录之后,都会等待那么长的时间,而不是只有先登录上来的用户才进行等待,这样就使得,只有最后一批用户初始化成功后,并且等待完think time的时间之后,才能实现并发。前面的时间都是在空等。

集合点的功能和你想法是一样的,应该把think time改成集合点 这样,当所有在线用户都初始化成功时,才进行并发登录的操作。同时对服务器加压,才能看出来服务器各项数值的耗用情况。

你设计的场景思路可以去试试看,用户登录后,进行不同的业务处理,检测资源的使用情况。通过瓶颈的拐点,来分析最大在线用户数。
作者: y30877286    时间: 2011-9-26 22:53
回复 8# 夏日摸摸茶
谢谢夏日的回答,但是我还是对你说的有点不太明白,就是你说的脚本中设置了think time,相当于每个用户登录后都会等待那么长时间,这个think time是放在登录以后里的,而你后面说的最后一批用户初始化成功后等待完think time时间之后,才能实现并发,这个think time要按这句话说的话是放在登录之前的。我现在的think time是放在登录以后里的。为的就是加载150个用户在这think time内都登录进去。保证150人的容纳量。但是我昨天又思考了下,有点不真实,因为就像论坛可能在不同时段有些人登录论坛,有些人退出论坛等。所以我想录制不同用户数登录网站后访问不同的业务,分成3个访问不同业务的脚本,以百分比分组模式进行场景运行,你看这样可以不?但是这样的话150这样分成3组百分比运行的话,能保证运行的时候,网站容纳量始终保持在150人么? 希望夏日能在给解答下,不胜感激~
作者: mymagic    时间: 2011-9-27 09:08
先用你自己的想法设置一下脚本、运行,不就知道能不能保持在150了吗
think time设置的毫无意义。登录后这些用户没有退出的话,不是在线状态吗,为什么登录后还要用 think time?150个用户空等待吗
设置集合点就可以了。
作者: liujintao00    时间: 2011-9-28 10:29
1. 集合点是为了模拟大量用户在同一时间点进行同一操作,也就是为了测试系统的抗压能力
2.think time是为了模拟用户真实的操作。比如150人并发,如果不设置think time,用户登录、浏览页面等操作就都成了没有间隔连续操作,这和用户实际使用情况是不一致的,这样测试出来的150人并发的压力是大于实际的150人用户操作的压力的。
作者: liujintao00    时间: 2011-9-28 10:36
标题:
本帖最后由 liujintao00 于 2011-9-28 10:37 编辑

回复 9# y30877286


    性能测试是要分阶段的,以我的经验,大致要经过以下阶段:
    1.单交易基准测试
    2.单交易负载测试
    3.混合场景测试
    4.稳定性测试
    ,
   你说的第一个想法类似于单交易负载测试,就是大量用户进行同一操作。第二个想法类似于混合场景测试,就是模拟实际用户使用情况,不同数量的用户进行不同的操作。这两个想法并不矛盾,在进行性能测试时事都要测试的
作者: 514423564    时间: 2011-9-28 16:37
回复 5# y30877286


    集合点!!!!
作者: qvbfnsc    时间: 2011-9-28 16:56
首先楼主的测试目的要搞清楚,是要找最大并发用户数,还是要找最大在线用户数
最大并发用户数是在指系统资源情况和客户可接受的最低要求决定,比如:客户最低要求是响应是不超过8秒,而系统资源的到达:CPU<=80%使用率、内存<=10%内存、磁盘IO、网络占用率等资源情况,某一项资源到达规定的临界点时,或响应时间达到8秒时,那时所加载的用户数就是最大并发用户数
如果楼主是找最大在线用户数;我觉得这个没有什么可测的,最大在线用户数起决于服务器的连接数,如果服务器连接设定的1000,那最大只能支持1000人在线(这里的在线是指连接未断开,不是指ssions过期),但通常情况只能支持400-500个用户,因为在客户端为IE6的情况下每个用户连接服务器时需要2个连接,如果是IE7、IE8下访问,那就更少了,连接数不够时会报503错误
作者: smith1982    时间: 2011-10-7 09:27
关注




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