zsjmm 发表于 2010-8-10 16:58:06

如何将一个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:06

你在服务器上开个备份,然后刻个光盘,做个磁盘整理,然后再压负载

msnshow 发表于 2010-8-10 22:29:29

应用列掉,还是服务器机器哦

heavy200t 发表于 2010-8-11 04:59:21

建议理一下思路

LZ可以分析一下,当并发数不断增加的时候,Server端的资源占用(CPU,RAM.....)是否相应地增加?
如果是,那么继续增加并发数,总有到资源瓶颈的时候
如果不是,那么压力很可能没有到Server端。

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

照LZ所说联想的本子,还要挂数据库和Web服务,要么是程序写得非常好,要么是测试方法有问题。
我猜后者的可能性更大些。

zsjmm 发表于 2010-8-11 08:29:49

原帖由 msnshow 于 2010-8-10 22:29 发表 http://bbs.51testing.com/images/common/back.gif
应用列掉,还是服务器机器哦

怪我不才,怎么理解“应用列掉,还是服务器机器哦 ”,请指教!

zsjmm 发表于 2010-8-11 08:30:42

原帖由 云层 于 2010-8-10 20:43 发表 http://bbs.51testing.com/images/common/back.gif
你在服务器上开个备份,然后刻个光盘,做个磁盘整理,然后再压负载

这个目的是什么呢?或者说为什么要这样啊?

wanlei01 发表于 2010-8-11 09:34:00

观光滴!!!!!!!!!!!!!!!!!!!!!!!!!

fiskeryang 发表于 2010-8-11 10:18:49

标记下

msnshow 发表于 2010-8-11 13:35:41

意思是说,你想把你的这个系统压死,还是把服务器给压死

zsjmm 发表于 2010-8-11 13:45:31

原帖由 msnshow 于 2010-8-11 13:35 发表 http://bbs.51testing.com/images/common/back.gif
意思是说,你想把你的这个系统压死,还是把服务器给压死

系统压死

zsjmm 发表于 2010-8-11 13:46:54

之后怎么操作呢?怎么能将系统压死呢?

51mobile 发表于 2010-8-11 13:55:37

Marked下

zsjmm 发表于 2010-8-11 14:04:10

原帖由 51mobile 于 2010-8-11 13:55 发表 http://bbs.51testing.com/images/common/back.gif
Marked下

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

archonwang 发表于 2010-8-11 14:45:17

尝试大数据量的操作,比如持续查询;
尝试对数据库可能产生锁的操作。比如删除和新增修改一起执行等。

zsjmm 发表于 2010-8-11 15:26:01

原帖由 archonwang 于 2010-8-11 14:45 发表 http://bbs.51testing.com/images/common/back.gif
尝试大数据量的操作,比如持续查询;
尝试对数据库可能产生锁的操作。比如删除和新增修改一起执行等。

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

[ 本帖最后由 zsjmm 于 2010-8-11 15:28 编辑 ]

云层 发表于 2010-8-11 18:25:11

你在服务器上浪费他的IO读写和cpu,内存就行了,然后可以用很少的负载完成压力测试

zsjmm 发表于 2010-8-12 08:54:52

原帖由 云层 于 2010-8-11 18:25 发表 http://bbs.51testing.com/images/common/back.gif
你在服务器上浪费他的IO读写和cpu,内存就行了,然后可以用很少的负载完成压力测试

那是说一边 磁盘整理,一边做压力测试?同时进行?

zsjmm 发表于 2010-8-12 09:01:17

原帖由 云层 于 2010-8-11 18:25 发表 http://bbs.51testing.com/images/common/back.gif
你在服务器上浪费他的IO读写和cpu,内存就行了,然后可以用很少的负载完成压力测试

嗯 有道理,好方法!谢谢“云层”

zsjmm 发表于 2010-8-12 16:55:29

首先感谢大家建议!经过这么2、3天的折腾,说一下结论!今天上午用“云层”的方法,还是没有搞死。等到下午的时候才突然意识到这种方法只是对服务器造成了一些压力,对web系统来说也没有什么作用,而我的目的就将web系统搞死!
另外再说一下“heavy200t”的思路,首先很不错!我自己也分析了,但是发现到一定的用户运行之前CPU在增加,但是当超过200多个用户的时候,发现已经造不成压力了,CPU也不怎么增加了。所以我也不打算继续运行了。
大家有什么看法呢?

5555 发表于 2010-8-12 17:01:25

Web端是什么?如果是IIS、JBOSS 这些的,都有最大连接数,以及内存池,想办法把这些地方塞满就行了:lol
页: [1] 2
查看完整版本: 如何将一个web系统搞死