性能测试应该怎样测?

上一篇 / 下一篇  2012-08-22 08:37:19 / 个人分类:性能测试

bNr~)\9c1RsD0  事情的起因是这样的:51Testing软件测试网-jn!p$G~*\Gu

51Testing软件测试网2OxPypd }%d7]

  上周三下午要出去打个电话,经过小会议室门口的时候测试负责人叫住我问有事吗?小A做的性能测试出 现了点问,要我帮忙分析一下。打完电话后到小会议室与小A、测试负责人一起看小A的性能测试出现了什么问题。小A说她对X项目进行了性能测试,但是结果与 现在线上的差距特别大,线上入库是10条/秒,而她测试的结果是3-4条/秒,对于她测试得出来的结果项目的负责人很不认同,认为是她做错了,而她又找不 出来问题出在哪,她很郁闷。

C0B dB9iM051Testing软件测试网m e$v'd0RkC3~

  接下来是我们的一段对话

1j:GX0di1R0

;q.^h qto$m)~o~0  我:小A,你说一下这次性能测试,是对哪几个点做的,场景都是啥样的?

mh0b!G^-Xa.k1a0

,~)D N&g S$|0v%qbu[Q;\0   小A:主要是两个点,一个是单一场景针对短信入库的,场景设计的是30、50、100条数据并发持续2个小时,是根据线上前段时间出现的问题发3万条短 信,结果处理的时间特别长这个问题设计的;另外一个是将接收到的不同类型的短信入库,是个混合场景,场景是短信2条、彩信1条、WAPPUSH1条、 EMN1条,这些数据并发,持续2个小时。

/_%kJR q~ E0

_'pbraF;q9R jX8J0  我:问一下,线上对于短信发送真实操作场景是什么样子的呢?

^d t$~ O J*r0

5a2BY,h y3|aNyp0  小A:这个我不知道啊,反正我只知道现在线上要求1个小时内必须把这些短信发完,线上现在预计的入库量是10条/秒。51Testing软件测试网3?_b3DSRk2\

L^(Nj/^l\u R'r_0  我:好吧,换个问法,X系统小A你最熟了,线上的这个问题,有大量的数据过来,X系统 对这些数据是怎样处理然后入库的呢,是一批一批的处理,还是一条一条的处理呢,如果是一批一批的处理,对于这一批数据是怎样处理的呢,是同时处理掉,还是一条一条的数据。

xdH*{ aU4F0

{7qG4VO PV(r]x0  小A:这个我不清楚,要不一会儿我去问一下开发的吧。51Testing软件测试网1\#Aw Q4{a

o6b"Flu;]M/Gzb6A0  我:我再问一下,现在搭建的这套测试环境,各个机器的配置是怎么样的?和线网的机器配置差距有多大?线网的带宽是多少?现在测试环境的带宽是多少?线网是有负载均衡的,有VPN通道的,测试环境上有这些吗?

9r-e E-n]0

n:x(`@.]4UY p0  小A:tomcat的机器是一台服务器,4核的,另外两台数据库还有LR加压机都是实体机。线网的机器配置我不知道,测试环境也是100兆带宽,负载均衡啥的测试环境都做不了。51Testing软件测试网(v#jLkj n q9j)n9L

51Testing软件测试网F(gtsp-Oa

  我:线网带宽是千兆的,测试环境的百兆带宽不全是给你来测试用的,公司上班时间所有同事办公还占用一部分带宽呢。线网的数据库做过一次优化的,有几个参数是调整过的。

5](aTru0

T4p*kr~${0   我觉得这次问题的分析可以从几个方面来入手查,第一,场景设计,我从开发的那里了解到线上真实的情况是没有并发的,只是一条一条的来处理,处理的数据量 是3万条,1个小时处理完,是我们自己的要求。所以场景可以重新设计,设计成没有并发,处理3万条数据;第二,测试脚本的性能,测试脚本里的代码可能本身 响应时间就长;第三,机器配置、网络带宽,查看现在测试机的配置与线网比相差多少,这些能不能想办法进行一下换算,结果可能有误差,如果找到依据,看看误 差能控制在多少范围内。51Testing软件测试网 Ai&?#?f#S |

*|psGY0  小A:我觉得脚本代码不是问题,我就是这样写的都能执行过去,能执行过去为啥就会有问题呢。线上真实的操作那在 那台服务器上还可能有别的省发短信呢,对那台服务器还有影响呢,那台服务器的配置好可能还有别的省来占用呢,所以机器配置也不应该是问题。带宽我觉得也不 是问题,公司百兆的带宽也够用了呀,我在测试的时候也没发现网络上哪里出现了问题,CPU占用率呀都非常少的。51Testing软件测试网^#W/p*G\r$r)k

51Testing软件测试网"c5z&y&J`,o [0W,H

  我:......无语51Testing软件测试网B#B-O#\6~s&D eZ

51Testing软件测试网Yw|ww*],pxGQd9l

  对于性能测试,到底应该怎样做,会用了工具(最著名的是LR)就会了性能测试了吗?NO,NO,NO51Testing软件测试网!{],Q6DG6d/L)xB

I^ w ji5q Jt2D0  我认为:51Testing软件测试网mk#T HQX]$s

iBmUz0  前期分析:51Testing软件测试网e'\$I)dt"wD|M4Y)x

51Testing软件测试网c]tQjv8D&}3JT

   分析业务:分析用户群,业务真实使用和操作情况。比如在哪个时间段哪个操作会多,哪个操作会少,怎样来操作,是会有很多人一起对系统发起请求呢(所谓的 并发),还是数据量很大,但是都是一个请求一个请求过来的,很持续很长时间吗(比如8个小时都在做这样的操作),还是主要是对一定的数据量操作的(比如处 理完几十万条数据后任务就完成了),每次只有一个场景吗,还是是个混合场景都有,如果是混合场景,那么各个场景的比例大约是多少呢。线上已经有多少数据量 了?预期要达到多少数据量?

5w^H"~*kKSvS#U051Testing软件测试网0T yMsa^p|b{d

  分析环境:线上系统环境是什么样子的?有负载均衡吗?有多次转发吗?......机器配置是什么样子的,每 台机器上都有哪些服务?线网的带宽是多少?是专用的吗?搭建的测试环境和线网真实的环境有多大的差距,带宽是多少,是专用的吗?测试环境不可能与线网环境 是一模一样的,有办法换算吗?误差大约是多少?

Cn`;s0t"T051Testing软件测试网5w4S B/[&O;m)m

  分析团队成员:给你配备的配合的开发人员了吗?与你配合的开发人员靠谱吗?你的团队里有性能测试的高手吗?团队对这个项目的性能测试支持吗?51Testing软件测试网-EH q Cy]S

1Ox`8rp'rE0L0  时间分析:测试的时间充足吗?哪些是必须测的,哪些是可以不测的。

9QiasO051Testing软件测试网9L)Io-{^|yX\B)Z

  测试执行:

a F Q s+wt+Y R0

eZE|&ifj0  有了前面的详细的分析之后,才能整理出测试需求、设计测试方案、编写测试用例、编写测试脚本、设计出合理的测试场景,才能执行测试。51Testing软件测试网;d"j1?9z+EP

51Testing软件测试网#m4W]VQ O

  结果分析:

'N&A6{7Pd|tg|051Testing软件测试网 ` E(MJ5m$Qj @

  测试出了结果,不能就算完事了,把结果丢给别人让别人分析查找原因,那不是高手,真正的高手是可以分析出问题在哪里,是什么原因产生的,怎样优化。简单的几个切入点可能从服务器系统CPU、内存等等,数据库中SQL执行速度,数据库CPU、内存等入手。查看事务平均响应时间是否在可控范围内,每秒处理的事务数怎样等等。借用一些工具查看操作数据库的SQL执行情况等等。51Testing软件测试网1a8?!ui1a4DH'C0i0@

k5A1jz%m2d+U^2@%zj0   总结一下,性能测试个人认为最重要的不是使用工具,而是测试前的分析和结果的分析,前面的分析够透彻才能保证后面做的是对的,而不是一上来就是用工具, 就大并发,只有大量的并发才是性能测试,一定得根据现实的真实使用情况来做才可以,违背了现实做再多也是无用。每次一听到有开发的对我讲你帮我们做一下性 能测试吧,弄个几万的压一下,我就特无语。

[0| ad:E.nZ` r0

TAG:

 

评分:0

我来说两句

Open Toolbar