性能测试进阶指南:Loadrunner实战91_第1章性能测试基础iaid.docx
《性能测试进阶指南:Loadrunner实战91_第1章性能测试基础iaid.docx》由会员分享,可在线阅读,更多相关《性能测试进阶指南:Loadrunner实战91_第1章性能测试基础iaid.docx(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目录第一章 性能测试基础21.1 性能测试工程师的标准及挑战21.1.1 性能测试工程考评指标21.1.2 性能测试工程师的挑战31.2 性能测试基础51.2.1 性能51.2.2 性能指标161.2.3 性能分析及调优171.2.4 单机软件性能与网络架构软件221.2.5 性能测试的流程231.2.6 性能测试的注意要点241.2.7 性能测试招聘要求25小结26第一章 性能测试基础软件测试逐步成为软件开发过程中一个必不可少的环节,随着功能测试的必要性被认可,自动化测试和性能测试也逐步崭露头角。我们经常会抱怨浏览网页慢、下载文件慢,其实这都是属于性能问题。用户在得益于功能方面的质量提升后,
2、开始对性能有了新的认识和要求,而性能测试并不像功能测试那样可以“低门槛”进行。性能测试的本质是通过编写一个程序去测试另外一个程序,而正是有了这个相对的“高门槛”,性能测试便成了一个“高薪”、“高技术含量”的工作,新人在看到高手指点江山(性能测试)时,充满了羡慕的眼神,摩拳擦掌准备进入这个行业。在开始从事性能测试工作之前,我们先来看看这个职位的考核标准和面临的挑战。1.1 性能测试工程师的标准及挑战当你掌握了性能测试的基本技能,接着就需要找到一家合适的企业,通过劳动换取经济上的回报,那么通常公司如何去招聘一个性能测试工程师,并如何进行绩效考评呢?即性能测试工程师应该达到的工作目标到底是什么?1.
3、1.1 性能测试工程考评指标在介绍性能测试之前,我们回想一下功能测试的考评和工作内容。如果你是一名功能测试经理,该如何考评你的员工呢?当软件测试刚刚进入中国时,我们对测试的理解是通过模拟用户执行,发现用户可能遇到的问题,而缺陷的数目成了考评的唯一指标。例如PM(Project Manager)规定,每个测试人员每天都要发现10个以上的缺陷,否则说明他在工作态度和工作能力上有一定的缺陷。综上,作为一名功能测试工程师,其考评要求可以归结为一条,那就是测试通过的软件不会被用户发现严重的缺陷。而现在,软件测试逐渐正名,我们对测试的理解从证明软件没有错误变为证明软件具备一定的质量,而功能测试工程师的考评
4、标准也随之发生了变化。功能测试工程师的考评指标主要有以下几点:1 缺陷数目缺陷的数目虽然不能作为主要的考评指标,但是从某一个角度也说明了测试工程师发现问题的能力。在成熟的软件开发公司中,我们能够通过历史数据生成的缺陷质量模型准确预估缺陷数目。如果你发现的缺陷数量明显低于预估,则说明你的工作可能存在一定问题。2缺陷质量有量没有质是不行的,由于计件制的压迫,测试人员往往为了达到数目上的指标而凑缺陷,数目是够了,但是所提的缺陷都是鸡毛蒜皮的事情,缺陷的危害等级和优先级都比较低,那么对软件质量的提升效果会相对较差。在缺陷的质量中包含两个概念:缺陷的严重等级和优先级对缺陷的描述3工作态度测试工作是一个很
5、容易“偷懒”的工作,是需要个人积极主动、追求完美的工作,对于测试工程师,只有具备善于交流、积极主动、“视公为私”的态度才能对被测对象负责。4工作效率在较短的时间内是否能够高质量完成上级布置任务的能力。5文档编写过去所谓的软件测试工程师只是软件测试执行工程师,现在被称为Tester。现在测试工程师还需要进行测试计划、测试方案及用例等文档的编写工作。6团队协作能力7其他相关技能性能测试在国内刚刚开始流行。一个公司招聘性能测试工程师的主要目的是通过对产品进行专业的性能测试,获得一份性能测试评估报告,从而向用户证明本产品能够满足预期的性能需求。随着性能测试职位的逐渐成熟,对这个职位的要求也越来越严格,
6、性能测试的目的不仅仅是为了获得当前系统的性能评估,而是希望进一步通过性能测试发现系统性能瓶颈并修复性能问题。而性能问题的修复成本一般相对较高,如何使用最低的成本换取最高的性能,从而在性价比上找到黄金分割点,将是性能调优的重点。性能测试工程师的考评指标会包括以下内容:1是否能够独立开发脚本能否使用一种或多种性能测试工具完成用户行为的模拟脚本开发工作。2能否对需求进行性能分析并获得性能需求任何测试都是基于需求的。作为一名性能测试工程师,需要具备一定的性能需求分析能力,从而根据用户的需求进行性能测试,得到被测系统与用户需求之间的差距,从而生成性能报告并提供性能调优方案。3能否设计场景及监控负载系统完
7、成对性能测试的实施和监控工作对性能测试进行实施,设计负载规则并监控负载下各个系统的状态。4能否通过性能测试发现比较具体的性能瓶颈具备一定的性能结果分析及瓶颈定位能力。5文档编写与环境搭建的能力独立编写性能测试文档和搭建测试环境的能力。6团队协作能力7其他相关技能1.1.2 性能测试工程师的挑战作为工作了几年的功能测试工程师来说,大家觉得在功能测试工作中的挑战是什么呢?1公司不重视测试2就我一个人做测试3找不到缺陷4开发工程师不能及时修改测试中发现的缺陷5不熟悉业务6不了解功能测试的方法及流程总结来说就是工作内容略感重复、缺乏技术含量,并且在有限的时间和资源下难以达到理想化的目标。在实际工作中,
8、要确保软件没有缺陷是比较困难的,这是因为:1软件不可能不存在缺陷2测试无法发现所有缺陷3测试在大多数情况下都没有足够的资源和时间(在成本和质量上寻求平衡)所以无法完全保证整个软件在交付时不存在缺陷。虽然可以通过各种方法将严重级别或者优先级别较高的问题发现并修复,但由于个人能力或客观原因还是会遗留某些缺陷。那么作为一个性能测试工程师所面临的挑战又有哪些呢?1对性能测试的理论和技术不熟悉2公司不重视性能测试3就我一个人做性能测试4测试出来的结果不知道怎么分析5不熟悉业务6定位出的性能问题无法修正总结来说,就是如何在有限的时间和资源下,保证提交给用户的软件系统可以达到指定的性能需求指标。从某种角度来
9、说,现在性能测试的功效被过度放大了。以功能测试为例,最初软件是无须测试的,因为软件功能单一,而软件质量是依赖于有经验的开发人员自己进行维护,随着开发规模的逐渐扩大,软件越来越复杂,随之质量逐渐下降,这时功能测试的低成本效果就出现了。各大公司开始大规模地成立测试部门,随着功能测试部门的规模逐渐扩大,其效率开始不断下降,依赖于功能测试提高质量的性价比逐渐降低,而现在大家都认识到功能测试并不是万能的,其主要作用是保证软件达到一定的质量,通过自动化可以降低功能测试的成本。性能测试也处在这样一个过程中,由于客户日趋成熟,逐渐意识到性能是继功能后另一个重要的质量指标,而我们常常错误地认为性能测试就是满足用
10、户性能需求的灵丹妙药,掌握了性能测试仿佛就走在了软件测试技术的最高端,却忽略了去思考性能测试到底能做些什么。性能问题并不像功能问题那么棘手,因为几乎常见的性能问题都可以通过硬件解决,也就是花点儿钱买个更加强力的硬件配置来提高软件的效率,其次通过性能测试后发现了性能瓶颈(一般性能瓶颈都是较为底层的问题),修复的成本和风险也是需要考虑的问题。好比功能测试在最后的BETA测试中发现了一个异常严重的功能问题,而该问题是由于引擎所导致的,改还是不改呢?功能是必须要进行修改的,如果不修改用户无法正常使用,但是从性能角度来说,系统处理速度慢一点往往还是能够接受的。往往出现花了很多钱进行性能测试,并且发现了性
11、能问题,但是修复该性能缺陷的成本或风险太高,最终不得不放弃。性能测试无非就是以相对较低的成本模拟一个真实环境来了解系统上线后的性能情况,至于定位、分析及调优,这需要一个团队的支持才能完成,所以软件的性能问题不是简简单单靠最后进行几次性能测试就能定位解决的。1.2 性能测试基础1.2.1 性能性能的定义在新华字典中可以查询到这样的解释:性能指器物所具有的性质与效用。这个定义中包括了以下两层含义:1 性质性质是指该器物具有什么特性,能够做什么。2 效用是指该器物能够干得怎么样。在我们身边的性能有哪些呢?1 F1赛事从竞技比赛的角度来说,在比赛中获胜的一方性能较好,那么是不是性能只包括速度呢?不是F
12、1比赛并不是直道跑1000米,而是有很多转弯,而且赛程也较长。车速并不是获得冠军的唯一指标,而车胎的类型、进出站的次数、驾车选手的发挥等条件组合在一起才是一个冠军诞生的基础。2 个人电脑个人电脑的性能指什么呢?用起来比较快?看起来比较漂亮?我们通常说电脑的性能是指运行常用软件的反应迅速,但是仅仅拥有一颗高级的芯,电脑一定能够性能出众吗?不一定,这还取决于存储器、显卡等相关设备。针对CPU来说,主频也并不是说明CPU性能的唯一指标,并不是说CPU的频率越高,其计算速度越快。例如:现在有两块CPU,一块是奔腾V3.0c主频3GHz,另外一块是酷睿2 T7200主频2GHz,显然T7200的性能远远
13、优于奔腾V。3 软件单位时间内能处理的业务、处理一个运算所需要花费的时间、打开该软件需要的时间,都能作为衡量软件性能的指标。例如在相同的电脑配置下分别安装Windows XP和Windows Vista操作系统。在这两个操作系统中复制大量文件至移动硬盘时,就会发现在Vista下进行相同的操作会比XP慢很多,这个时候就会说在该硬件配置下Vista的磁盘读写性能相对XP较差。失败案例为什么突然开始如此重视性能测试呢?那是因为经历了太多惨痛的经历,让我们不得不重视这个以前被忽视的问题。接着来回顾一下发生在2007年的一件由于性能测试不足而导致的惨痛案例奥运会订票系统瘫痪。2008年8月,对于全国人民
14、来说,没有什么比奥运会更大的事情了。买到一张称心如意的门票,也成了很多人的一个梦想。网上购票、先到先得、人人参与的策略,让大家觉得进入鸟巢观看开幕式,见证这历史性的一刻成为可能。然而当大家在奥运官方售票网上抢购门票时,这个梦想却被网上购票系统的瘫痪击成碎片。我们来思考一个问题,作为一个奥运订票系统应该会有多少人去买票呢?看一下当时的新闻报道:境内公众启动第二阶段奥运会门票预售。然而,为了让更多的公众实现奥运梦想的“先到先得,售完为止”的销售政策适得其反,公众纷纷抢在第一时间订票,致使票务官网压力激增,承受了超过自身设计容量8倍的流量,导致系统瘫痪。超出8倍系统容量?那么接着来看看真正的系统容量
15、是多少呢?昨天上午9点,预售一开始,公众提交申请空前踊跃。北京奥运会官方票务网站的浏览量在第一个小时内达到800万次,每秒钟从网上提交的门票申请超过20万张;票务呼叫中心热线的呼入量超过了380万人次。由于瞬间访问数量过大,技术系统应对不畅,造成很多申购者无法及时提交申请。一个小时访问量达到800万次,通过计算可以得到平均每分钟的访问量约是12万次,而每秒约是2000次。对比自身设计的每小时100万次,每秒的访问量预估为250次左右,你是不是发现系统估计的访问量少得可怜?作为一个门户网站,Sina、Sohu每秒的访问量是多少?需求是不是出了问题?作为百年一遇的奥运会盛典,每个炎黄子孙都会希望亲
16、身在鸟巢感受奥运开幕式的盛况,而一张奥运会门票成了炙手可热的香饽饽,由于采取的是先到先得的策略,为了保证自己能够成为第一个进入系统购票的用户,我们需要确保自己以最快的速度进行订单的操作(提前准备用户注册、表单填写、业务熟悉、网络调整、个人反应速度调整、期待好运降临)。当到达北京时间9点整,马上单击订票按钮。有少数人由于最先进入系统,所以他们顺利地订票成功,而更多用户由于网络的延时或者某些别的原因,被堵在了系统的外面。在这种情况下就会产生大量用户并发订票的操作。北京奥运会官方票务网站的浏览量在第一个小时达到800万次,每秒钟从网上提交的订票申请超过20万张。从这句话可以看出,浏览量和门票申请的数
17、量完全不是一个数量级,对应每秒不过2000多次的浏览量,系统却承受了20万张每秒的申请量。这是因为绝大多数购票者都非常有经验,知道不能到9点钟再来填写订票表单,而是应该不断地单击提交按钮将事先输入的订票信息提交给服务器。接着来分析一下如果想要订到奥运会的门票需要做哪些工作:1 用户注册当然要先注册订票网站会员,并顺便把银行卡也准备好,确保支付顺利。2表单的填写在订票开始前,先到奥运会订票系统上去,将要购买的开闭幕式、足球决赛等关键场次的表单都准备好。3熟悉业务整理并熟悉整个购票的流程。4网络调整对于整个开幕式来说,全国可能有几千万的用户在尝试购票,而开幕式的门票一共也就3万多张,对于如此多的需
18、求(接近800万的访问量)只是杯水车薪,所以如果想要在这种供需严重不平衡的情况下获得一张开幕式的门票,网速是一个非常重要的因素。每秒20万的订票申请,也就是平均每毫秒200张。如果一个上海的网友和一个北京的网友同时在9点整购票,那么上海的兄弟就订不到这张票了,因为上海电信到北京网通的平均延时都在200ms,按照刚才的平均值来计算,已经卖掉4万张票了。所以如果想要购买到门票,最好在北京机房进行订票,使用光纤连接,确保订票信息到达服务器的延时在1ms之内,那么成功的概率就会大大提升。5个人反映时间其实提交订票信息也是有讲究的,不同的人对于反映来说都有快慢之分,一般人在接受了信息到反映为动作可能需要
19、0406秒的时间,而通过训练可以提升到0102秒,算算这是200毫秒的差距啊,又是4万张票没了,所以练练手速是很重要的一点,懂一些技术的朋友可能会使用按键精灵、QTP这类自动化工具来实现,将时间更加精准地进行控制,甚至可以考虑做一点抢跑的操作。好,现在万事俱备,时间一到9点,如果你是那个能在最短时间就将请求发送到服务器的人,作为第一个冲入系统的用户,就能顺利地获得想要预订的门票。而如果你很不幸在9点钟打了一个喷嚏,再去提交门票预订申请,那么很抱歉,1秒钟过去了,有20万人在你前面了。虽然整个系统在上线前进行过性能测试,但由于错误的需求导致当出现远远超出系统所能负载的访问量时,系统来不及响应就瘫
20、痪了。错误的需求是整个售票网站瘫痪的最大原因。那么是不是需求做错了,系统瘫痪就是理所当然的呢?我们再来看看当时的新闻解释:从昨天上午8点左右开始,就有不少网民登录票务官网排队等待申购门票。据了解,从上午9点正式开始售票到中午12点的3个小时内,票务网站的浏览次数达到2000万次。这与此次所提供的100万次/小时的流量相差甚远。不停地刷新网页,也是造成网络拥堵的原因之一。”杨力说,不少网民在无法正常登录后便不断刷新,“这就相当于一名申购者变成了若干名申购者,无形中增大网站流量。从技术角度上讲,网站的流量几乎呈几何倍增长,导致其他申购者无法登录。”当大量的用户进行访问时,整个系统由于网络瓶颈或处理
21、瓶颈导致了拥堵,用户无法访问。既然没有有效的网络流量处理能力,如果进行流量控制,问题就会被限制在一个可控的范围内。这好比一个银行有大量人来取款,总不能听之任之,而应该有专人进行协调管理,确保秩序,并告知排在后面的顾客可以考虑改天再来。导致奥运会售票网站瘫痪的原因是综合的。如果当时进行了流量控制,那么可以保证登录到服务器上的用户可以比较正常地访问,而超出服务器处理能力的用户将无法进入系统,从而确保系统不会由于负载过大而停止响应。进一步来说如果剩下的用户需要通过排队的方式来登录服务器进行购票,那么当时尴尬的情况就不会出现。按照系统默认的处理能力,相信在两个小时内肯定能够把所有的票都销售完毕。当然,
22、也需要以平常心来看待这个事情,作为任意一家公司来说,开发和维护一个奥运会门票系统都是有一定困难的,但是问题的出现告诉我们,性能测试不是简单做做就可以的,想要真正地解决性能问题需要注意以下几个问题:1确定需求整个系统到底有多少人会访问?并发量会是多少?访问集中在哪些业务上?根据这些需求进行性能测试,即可保证系统在指定的指标下能够正常工作。如何获得奥运会订票的真实需求呢?其实并不是很难。首先,在奥运会第一次抽签售票的过程中就能了解有多少人有意向购票,由于中签率非常低,那么没有中签的人一定会参加在线购票,所以可以得到一个比较不错的订票访问量预估。其次,可以参考一下往届奥运会售票的经验和数据。最后,可
23、以做一次模拟售票的测试,给予一定的奖励号召大家都来尝试一下(例如:头200名注册的用户可以免费获赠一张门票,或者订票尾号为多少的用户获赠门票),确保在正常上线的情况下不出问题。奥运会开幕式前就在鸟巢进行了带妆彩排,通过这次性能测试了解了开幕式的真实情况,从而制定了推荐观众在开幕式前及早进入场地且开幕式结束后先等待运动员离场后观众再分批离场的策略,确保不会出现拥堵的情况,这就是通过性能测试发现问题并进行修改的案例。2确保系统的健壮性系统应该能够在极端负载的情况下正常运行。这就好我们,不能因为生活压力大就不工作了,可以工作效率低,但是不能不工作。3制定意外的处理方式在运行过程中有全面的监控,并且针
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 性能 测试 进阶 指南 Loadrunner 实战 91 基础 iaid
限制150内