软件测试之性能测试浅谈

性能测试种类的划分与定义这里就不说了,各有各的说法,比如性能测试、负载测试、压力测试这三个词,在网上能找到N个版本的定义,大体理解就行了,没必要在文字层面上较这个真。以下的内容也只是我个人的理解,一些名词的定义可能和其他资料有所不同,但在我的工作中,这样是比较形象和容易理解的。

  性能测试的目的,简单说其实就是为了获取待测系统的响应时间、吞吐量、稳定性、容量等信息。而发现一些具体的性能相关的缺陷(如内存溢出、并发处理等问题),我认为只是一种附加结果。从更高的层次来说,性能测试最想发现的,是瓶颈。

  在实际工作,一般的应用系统会从这么几个方面进行性能测试。

  1、基准测试

  Benchmark或者Baseline测试。一般为单用户测试,或者是零数据量环境下的测试。目的在于建立一个可度量的参考标准,为其他测试场景或者调优过程提供对比参考。也可认为是最基础的性能测试,如果基准测试的结果都不能达到预期要求,那么后续场景也就没必要测试了。

  2、日常压力测试

  在基准测试通过后,应该先进行较小压力下的测试,首先对系统在日常压力下的表现进行测试。此压力需要根据系统使用相关数据得出,如系统平均每天访问量、平均在线人数、每日完成事务数等。通过此测试,发现一些较表面的性能问题并进行处理。

  3、峰值压力测试

  在日常压力测试通过后,需要进行更大压力的测试。此处压力同样需要相关数据的支持,一般为未来几年后的预期压力。可根据历史日均压力、日最高压力等信息,估算出未来几年的日均以及日最高压力。再通过一些通用估算方法、如二八原则(80%的工作在20%时间内完成,相当于2小时完成一天8小时的工作量),将日压力转换成峰值压力。

  峰值压力为可预期到的最大负载压力,通过了此测试,则认为系统有能力满足未来增长的压力。

  4、容量测试

  验证了系统是否可满足预期的压力后,还需要知道系统能够承受的最大压力,也就是容量。一般通过“拐点法”进行测试,逐步增大系统的压力,直到性能指标不可接受或者出现了明显的拐点。如图:

  5、稳定性测试

  验证系统是否可长期稳定的运行,是否存在一些短时间内可能无法发现的缺陷(如内存溢出、数据库连接不释放等)。为了缩短测试工期,一般可将预期一天的压力集中在2小时内完成(二八原则),这样持续加压10小时,便相当于系统运行5天。注意监控各种性能指标是否平稳,有无下降。

  以上几种类型的测试,是性能测试过程中最多用到的。当然也也其他一些比较常用的类型,如绝对并发测试,测试多用户对某一功能的瞬时请求,主要用于验证系统是否存在并发逻辑上的处理问题。此测试也可划分到不同的压力测试场景中去,根据不同的用户压力,测试相应的绝对并发,一般取在线用户数的10%进行测试;突发压力测试,对一些不在预期内的突然压力进行测试(其实既然想到了,就应该是在预期内了)。以银行门户网站为例,可能会由于发布了一条重要消息(政策调整)而导致访问量激增,这种压力是否会导致系统宕机或者暂时无法提供服务,就是突发压力测试需要考虑的了。也有人将此压力定义为峰值压力,这就无所谓了,只要考虑到会有这么一个问题就够了。

====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-22 18:38:39

软件测试之性能测试浅谈的相关文章

软件测试之性能测试浅谈(2)

模拟演练 写了一大堆,新手还是不知道如何去做.其实写本文的目的也不是讲具体操作,而是思想,思想.新手学性能测试,建议找一本从LOADRUNNER开讲的书比较好.如51TESTING上有连载的<性能测试从零开始>. 不过还是尽量说点具体些的内容吧. 普通BS架构的系统,一般都采用测试工具(如LR)直接录制手工操作的方式进行测试.这种方式简单有效,对测试人员要求不高.但在一些情况下,这种基于录制的方法可能无法完成,比如页面上有特殊控件.系统是CS架构.或者通讯的协议无法捕获等.这时就需要更复杂的测

浅谈C语言编程中程序的一些基本的编写优化技巧_C 语言

大概所有学习C语言的初学者,都被前辈说过,C语言是世界上接近最速的编程语言,当然这并不是吹牛,也并不是贬低其他语言,诚然非C语言能写出高速度的代码,但是C语言更容易写出高速的程序(高速不代表高效),然而再好的工具,在外行人手中也只能是黯淡没落. 对于现代编译器,现代CPU而言,我们要尽量迎合CPU的设计(比如架构和处理指令的方式等),虽然编译器是为程序员服务,并且在尽它最大的能力来优化程序员写出的代码,但是毕竟它还没有脱离电子的范畴,如果我们的代码不能让编译器理解,编译器无法帮我们优化代码,那么

浅谈软件项目管理之测试

笔者从事软件行业相关工作将近十年,其中与测试相关时间有7年之久,现浅谈软件项目管理中测试的必要性,供大家参考. 一.测试的必要性 为什么需要测试,那是因为由于分工的精细化,软件开发必须经历客户.需求.设计.开发多个环节.为了保证最终的结果符合要求,上下游是需要确认的. 用户告诉我们:我需要什么?软件企业需要在理解正确.表达正确的情况下完成需求规则说明书,把客户的原始需求转变为IT需求,表达出能够提供什么 需求的下一环节是设计,设计主要是要要说清楚:我要让软件做什么.需要与前一环节确认理解正确了.

浅谈软件项目管理环境下的质量管理

浅谈软件项目管理环境下的质量管理 摘要:软件项目管理是为了使软件项目能够按照预定的成本.进度.质量顺利完成,而对成本.人员.进度.质量.风险等进行分析和管理的活动.软件项目的质量管理就是产出的软件,满足客户明确需求.隐含需求的能力的所有特性.在现实生活中,监控所有对质量有影响的关键点,采用有效的测量手段来管理软件的质量,从而实现软件项目的"高"质量.使软件项目管理较之其他项目管理而言有其特殊性.采用CMM标准可以确保软件项目的质量,CMM是美国卡纳基梅隆大学软件工程研究所提出的软件研发

小脑袋sem调价软件浅谈中小企业的网建推广策略

中小公司为了可以跟上信息化年代的趋势,必然会缔造中小http://www.aliyun.com/zixun/aggregation/30731.html">公司网站,并且现在缔造中小公司网站的难度并不是很大,花个几千元就可以制造恰当专业的公司网站了,并且许多中小公司还可以 经过互联网这个路径,网站这个窗口,像广阔的潜在客户推行自个的商品, 但是许多公司网站缔造之初会有比照宏伟的方针,比方怎么经过网站来取得更多的订单,但是当自个网站建构成功后,在推行的时刻遇到了阻力,网站并不可以给公司带来多

小脑袋竞价软件浅谈网站多渠道广播式营销理论

明日即是圣诞节了,值此佳节和我们同享网站多路径广播式推广理论,提早祝 A5修正和广大读者们圣诞快乐.几个月从前,我宣告过一篇<从"学易优"看开源搭站产品的运用> ,与我们同享了怎么运用开源搭站产品进行优化,其时学易优在一个月的时间内alexa排行从二百多万进升至四十多万,那在从前的两个月的时间里,小脑袋竞价软件浅 谈网站多渠道广播式营销理论这种上升的劲头有没有接连?我们看一组运用站长东西进行查询的数据. &http://www.aliyun.com/zixun/ag

小脑袋百度竞价软件浅谈做好团购网站推广的方法

兴办一个 团购网关于站长来说是件简略的工作,而运营一家团购网关于站长来说那是恰当有难度的,要去谈商家挑选 合适的商品做团购,要去推行让花费者晓得我的团购网的存在而且刺激花费者收购,更重要的是站长还要及时对花费者的团购进程说明说明,而这些关于侧重技术的站长来说有点 艰难,而团购网的网络推行是最为要害的,小脑袋百度竞价软件浅谈做好团购网站推广的方法."酒香不怕巷子深",只需你把你的团购网推行的好,商家会主动和你商谈协作的,花费者也会接受团购商品的,这点我信任常常泡站长网的站长都有所晓得.

图标字体化浅谈[转]

在做手机端Web App项目中,经常会遇到小图标在手机上显示比较模糊的问题,经过实践发现了一种比较好的解决方案,图标字体化.在微社区项目中,有很多小的Icon(图 标),如分享.回复.赞.返回.话题.访问.箭头等,这些Icon(图标)一般都是纯色的.开始制作时考虑用双倍大小的Sprite图,通过CSS样式设 置只显示二分之一尺寸,这样在Retina屏上显示的大小是正常的,一旦放大屏幕后图标又变得模糊不清,测试的效果不是很理想,后来又考虑多套图标适配方 案.SVG矢量图等,都因为种种原因放弃掉了(

浅谈关于JavaScript API设计的一些建议和准则

  这篇文章主要介绍了浅谈关于JavaScript API设计的一些建议和准则,文中列举了许多知名的JS API进行辅助说明,极力推荐!需要的朋友可以参考下 设计是一个很普遍的概念,一般是可以理解为为即将做的某件事先形成一个计划或框架. (牛津英语词典)中,设计是一种将艺术,体系,硬件或者更多的东西编织到一块的主线.软件设计,特别是作为软件设计的次类的API设计,也是一样的.但是API设计常常很少关注软件发展,因为为其他程序员写代码的重要性要次于应用UI设计和最终用户体验. 但是API设计,作为