我的性能测试方案设计的方法和思路

发表于:2012-8-03 10:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:思齐    来源:51Testing软件测试网原创

  说到性能测试,我们都知道其构成由三个方面构成——方案、执行、分析。一个性能测试的执行和结果的分析往往由方案的内容而决定。那么应该怎样来设计性能测试的方案呢?往往性能测试方案又由那些关键因素而构成的呢?前段时间,组内针对性能测试方案的设计的培训需求非常急迫,于是根据收集到的资料和以往工作的体会写了一些感触,算是对以前工作的一个总结。

  任何软件工作,我个人觉得首要做的事情就是需求的调查,当然对于我们性能测试来说,性能需求也是需要调查的,但是这里往往有一个比较困难的事,那就是当你询问项目经理性能需求时,他很有可能会反问你一句,什么是性能需求。所以直接提这么一个很空泛的概念是很难于理解的,故我们可以将性能需求具体化,从实际工作的情况来看,采用以下的维度和方式,我们拿到的数据,基本上一个较完整的性能需求也就完成了。

  性能需求

  维度一:与用户数相关的信息

  调查系统当前和未来使用的用户数(Use User)?

  注意,当前使用的用户数,是指本系统目前注册的用户数,注册用户数并不代表他会每天并且无时无刻的使用着。另外,未来三到五年使用此用户的数量也是可以根据一些日志数据估算出来的。当然这两个数字,不同的软件有不同的计算和估算方式,具体问题具体分析也是必须的。

  调查系统当前和未来的每日、月活跃用户数(Daily Active User)?

  当前活跃用户数,即某天大概有多少用户使用本系统。那么这部分数据一般说来也就是当前真正对系统构成压力的数量。

  如果可以的话,拿到需求中的并发用户数(Concurrent users)?

  首先要定义并发用户数在本公司的概念,在我们公司有那么二种说法。在同一时刻发送的请求叫RVuser并发数(多数场景用在单场景,加集合点),在某一段时间集中使用本系统的用户叫DVuser(多数时刻用在混合场景,不使用集合点)。DVuser也就是指活跃用户数,而RVuser的数量根据业务的类型进行估算来进行测试。

  现实往往很残酷,并发用户数是经常拿不到的,这时我们可采用测试出最佳并发数和最大并发数与活跃用户数来进行比较,那么大体上我们还是可以估算出本系统的支撑能力的。

  注意此维度的数据按常理来说是必须要拿到的,因为他往往关系到一系列很简单而又关键的问题,比如:本系统在现有服务器下够用吗?

  纬度二: 与业务数据量相关的信息

  1、调查当前和未来背景数据量(Background data)?

  日常系统的背景数据量是必须要获得的,根据以往年份的变化规律,未来背景数据量也是可以拿到的。原因很简单,从10w条数据中查10条也许很快,但是未来数据量 变成100w呢,那可能就麻烦了。

  2、调查当前和未来业务每天使用的总笔数( total business by day)?

  比如股票下单功能,每个用户每天可能下多少笔单,平均需要多少次来执行这个操作?那么根据用户数,我们就可以确定每天下单的笔数。如200人,平均每人每天下100 次,每次下1000笔,那么总笔数就是200*100*1000=2000000笔。注意此数据根据TPS换算后,我们可以换算出系统的业务总处理量是否能达到这个数据,这也是一个很重要 的指标。

  ……………………

  查看全文请点击下载:http://www.51testing.com/html/58/n-817758.html

  测试类型和目的

  性能测试,分广义的性能测试和狭义的性能测试。软件的性能测试在广义上是指:通过模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。其种类主要分为:

  前端性能测试,其主要测试可利用工具以下方式来进行。B/S:HttpWatch、FireBug、YSlow、JS内存泄漏、大数据量下的功能测试、浏览器长时间运行的稳定性测试等。C/S:内存泄漏、CPU使用、显卡使用等。网络性能测试,利用工具分析网络传输以及延时等,为宽带拓展做铺垫。

  服务器端性能测试通常又分为:性能测试,狭义的性能测试,是指以性能预期目标为前提,对系统不断施加压力,验证系统在资源可接受范围内,是否能达到性能预期。(即回答的问题是:系统是否满足预定的性能目标?)。负载测试,狭义的负载测试,是指对系统不断地增加压力或增加一定压力下的持续时间,直到系统的某项或多项性能指标达到临界值,例如某种资源已经达到饱和状态等。(即回答的问题是:最大并发数是多少?在什么时候,响应时间不可接受?系统的服务器资源瓶颈是什么?)稳定性测试,狭义的稳定性测试,是指被测试系统在特定硬件、软件、网络环境条件下,给系统加载一定业务压力,使系统运行一段较长时间,以此检测系统是否稳定,一般稳定性测试时间为n*12小时。(即回答的问题是:系统在一般压力条件下,是否可以提供连接不断的优质服务?系统在长时间最大压力条件下,是否崩溃?)

  通常来说,项目经理提供的性能测试需求或者我们去调查的时候,其性能测试的类型都会涉及到上文所说的性能测试、负载测试、稳定性测试,而且这三者会经常搞混。所以大家在调查的时候,一定要搞清楚这三者不同的测试类型了,而且通常来说这三种类型的测试对于我们来说是都要进行的。

21/212>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • xjshhx
    2012-10-31 13:23:04

    这个怎么收藏啊  。。。。?

  • 后知然后后觉
    2012-8-17 21:05:47

    好文章,正在拜读中。。。。

  • bug_work
    2012-8-03 15:22:09

    写的不错,性能测试整个流程都描述的比较清楚,顶下

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号