51Testing软件测试论坛

标题: 如何将一个web系统搞死 [打印本页]

作者: zsjmm    时间: 2010-8-10 16:58
标题: 如何将一个web系统搞死
大家好!
  目前领导提出一个需求,就是看看web系统中各式页面的展开能否将服务器压死。于是与开发人员沟通了解,共录制了12种页面的展开。于是开始加载虚拟用户开始运行场景。
1. 每脚本10人,共120人设置集合点共运行5分钟,虽然出现一个连接超时之类的错误信息,但是无法将web系统搞死;
2. 于是加人,每脚本20人,共240人如上运行5分钟,这次也是虽然出现连接超时之类的错误信息,但是无法将web系统搞死;且从分析图上得知一些事务stop掉了。就是说这部分没有对服务器造成压力,当然也有一部分fail,一部分pass
3. 再加人,每脚本15人,共300人,运行5分钟,这次会有更多的stop事务。但是还是搞不死。另外,在发现出现超时时,手动打开页面发现打不开,但是很快地几乎不到1s,页面再次打开并且可以登录。
4. 于是改变思路,另外加上一个负载机最多只能承受200多人的特点。希望用合适的用户数、合适的时间将web系统搞死。但是具体多少人才合适呢,多长时间合适呢,需要继续摸索。于是从最初的120人,按照每脚本增加一人的基础上,持续运行10分钟检查是否可将服务器搞死。到目前为止,已经测试到12*16=192人还是没有搞死。倍加郁闷!
5. 依照各位大侠的经验或者自己的分析,望提供一点思路或者什么的,指导一下如何运行场景才能将服务器搞死呢?还是我持续运行的时间太温柔,时间太短呢?
注:服务器只是一台联想T500的本子,且web系统与数据库都部署在了这台机子上,仅是为了做一下搞死之后后台出错的情况。

谢谢大家!

[ 本帖最后由 zsjmm 于 2010-8-11 14:21 编辑 ]
作者: 云层    时间: 2010-8-10 20:43
你在服务器上开个备份,然后刻个光盘,做个磁盘整理,然后再压负载
作者: msnshow    时间: 2010-8-10 22:29
应用列掉,还是服务器机器哦
作者: heavy200t    时间: 2010-8-11 04:59
标题: 建议理一下思路
LZ可以分析一下,当并发数不断增加的时候,Server端的资源占用(CPU,RAM.....)是否相应地增加?
如果是,那么继续增加并发数,总有到资源瓶颈的时候
如果不是,那么压力很可能没有到Server端。

对于后者,可以从Server和Client两个方面去分析:
Server端是不是有什么连接控制?比如说,队列满了,后面的Request直接就Reject了
对Client端脚本是不是有问题?或者是Client端有什么限制?(我最近正好遇到一个情况:一台Client最多发起30个并发,再多直接就Fail了)

照LZ所说联想的本子,还要挂数据库和Web服务,要么是程序写得非常好,要么是测试方法有问题。
我猜后者的可能性更大些。
作者: zsjmm    时间: 2010-8-11 08:29
原帖由 msnshow 于 2010-8-10 22:29 发表
应用列掉,还是服务器机器哦


怪我不才,怎么理解“应用列掉,还是服务器机器哦 ”,请指教!
作者: zsjmm    时间: 2010-8-11 08:30
原帖由 云层 于 2010-8-10 20:43 发表
你在服务器上开个备份,然后刻个光盘,做个磁盘整理,然后再压负载


这个目的是什么呢?或者说为什么要这样啊?
作者: wanlei01    时间: 2010-8-11 09:34
观光滴!!!!!!!!!!!!!!!!!!!!!!!!!
作者: fiskeryang    时间: 2010-8-11 10:18
标记下
作者: msnshow    时间: 2010-8-11 13:35
意思是说,你想把你的这个系统压死,还是把服务器给压死
作者: zsjmm    时间: 2010-8-11 13:45
原帖由 msnshow 于 2010-8-11 13:35 发表
意思是说,你想把你的这个系统压死,还是把服务器给压死


系统压死
作者: zsjmm    时间: 2010-8-11 13:46
之后怎么操作呢?怎么能将系统压死呢?
作者: 51mobile    时间: 2010-8-11 13:55
Marked下
作者: zsjmm    时间: 2010-8-11 14:04
原帖由 51mobile 于 2010-8-11 13:55 发表
Marked下


怎么marked呢?具体怎么弄呢?头一次听!还有“fiskeryang”这位也说标记下 看来是个方法!
作者: archonwang    时间: 2010-8-11 14:45
尝试大数据量的操作,比如持续查询;
尝试对数据库可能产生锁的操作。比如删除和新增修改一起执行等。
作者: zsjmm    时间: 2010-8-11 15:26
原帖由 archonwang 于 2010-8-11 14:45 发表
尝试大数据量的操作,比如持续查询;
尝试对数据库可能产生锁的操作。比如删除和新增修改一起执行等。


目前页面展开中有一种包含有查询页面的展开的脚本,但是新增删除修改这些功能由于不属于这次性能测试的范围,所以没有录制。无疑这样会减少对服务器造成的压力!这次主要是各种页面的展开,即使增加也只是展开页面而不进行实际的增加操作!

[ 本帖最后由 zsjmm 于 2010-8-11 15:28 编辑 ]
作者: 云层    时间: 2010-8-11 18:25
你在服务器上浪费他的IO读写和cpu,内存就行了,然后可以用很少的负载完成压力测试
作者: zsjmm    时间: 2010-8-12 08:54
原帖由 云层 于 2010-8-11 18:25 发表
你在服务器上浪费他的IO读写和cpu,内存就行了,然后可以用很少的负载完成压力测试


那是说一边 磁盘整理,一边做压力测试?同时进行?
作者: zsjmm    时间: 2010-8-12 09:01
原帖由 云层 于 2010-8-11 18:25 发表
你在服务器上浪费他的IO读写和cpu,内存就行了,然后可以用很少的负载完成压力测试


嗯 有道理,好方法!谢谢“云层”
作者: zsjmm    时间: 2010-8-12 16:55
首先感谢大家建议!经过这么2、3天的折腾,说一下结论!今天上午用“云层”的方法,还是没有搞死。等到下午的时候才突然意识到这种方法只是对服务器造成了一些压力,对web系统来说也没有什么作用,而我的目的就将web系统搞死!
另外再说一下“heavy200t”的思路,首先很不错!我自己也分析了,但是发现到一定的用户运行之前CPU在增加,但是当超过200多个用户的时候,发现已经造不成压力了,CPU也不怎么增加了。所以我也不打算继续运行了。
大家有什么看法呢?
作者: 5555    时间: 2010-8-12 17:01
Web端是什么?  如果是IIS、JBOSS 这些的,都有最大连接数,以及内存池,想办法把这些地方塞满就行了
作者: ganlan    时间: 2010-8-12 23:29
楼主这样纯粹只加压,那样是徒劳的!
楼主的这个情况的瓶颈明显不在主机资源上,有可能在其他地方,例如网络,还有很大可能是中间件 和 数据库的配置,这包括连接数配置等等。。。
给个简单的方法:假如应用服务器是WebLoginc,当一个Server时,并发240就已经不行了,这个时候加压是没用了,吞吐量已经达到极限了,这个时候可以起3, 或5个server  也就是集群,然后每个Server并发30个VUser 很快就可以把服务器压死了。

[ 本帖最后由 ganlan 于 2010-8-12 23:31 编辑 ]
作者: zsjmm    时间: 2010-8-13 10:02
原帖由 5555 于 2010-8-12 17:01 发表
Web端是什么?  如果是IIS、JBOSS 这些的,都有最大连接数,以及内存池,想办法把这些地方塞满就行了


是tomcat
作者: cncnily    时间: 2010-8-13 13:58
你们自己网络带宽不够
作者: zsjmm    时间: 2010-8-17 16:48
原帖由 cncnily 于 2010-8-13 13:58 发表
你们自己网络带宽不够


带宽应该够。我把另外一个应用系统搞死了,但是这个没搞死!我自己的机器上显示的带宽:100 Mbps
作者: xyzwh    时间: 2010-8-20 15:53
web系统中各式页面的展开能否将服务器压死

继续关注
作者: xyzwh    时间: 2010-8-20 15:55
web系统性能不错啊
作者: ranbinlong    时间: 2010-8-20 19:20
俺也关注一下,静候LZ结果
作者: maclehappy13    时间: 2010-8-23 13:15
有点意思.
作者: JonnyGu    时间: 2010-8-23 13:18
原帖由 zsjmm 于 2010-8-11 14:04 发表


怎么marked呢?具体怎么弄呢?头一次听!还有“fiskeryang”这位也说标记下 看来是个方法!





牛啊
作者: aitthings    时间: 2010-8-24 14:32
1.你跑压力的时候看到AP的哪些服务是全忙,把这些加大
2.关掉所有流控
3.报超时,报繁忙肯定是队列长了才会报,把并发数配置加大

然后等它死吧。




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