性能测试面面观——HP性能测试专家宗刚访谈

 问题:能否先简单谈谈您在测试领域的工作经验?和您对此领域的理解?

  宗刚:我的工作经验主要分成三个阶段:

  第一阶段:民企开发Leader

  毕业后做程序员,负责开发维护6个产品。解决过多次关键性能问题,其中有一次系统跑批2小时后死机,通过我的优化最后只需要15分钟完成,协助业务部门打了一个大胜战。06年开始在项目组自下而上推一些敏捷实践。因为有开发编程以及敏捷工程的基础,为我后期进行大型系统性能测试、优化、规划以及提出全生命周期敏捷性能管理体系打下了坚实的基础。

  第二阶段:创业公司负责人

  和几位朋友一起创业,负责公司两个产品的运作,测试、开发、需求、业务、销售、人力各种工作都干过。虽然结果不太理想,但这个阶段磨练我从整体去看一个产品,从开发、测试、产品系统看问题,而不会局限于研发。

  第三阶段:惠普非功能技术负责人

  到惠普后,作为团队非功能技术负责人,推行敏捷软件开发,推行安全测试,提出性能测试优化建模整体服务整体解决系统上线过程中的技术难题,提出全生命周期敏捷性能与容量管理体系解决系统整个生命周期的性能与容量难题,提出交维服务系统解决从研发到运维的技术、流程等问题。主要为国内金融、电信、政府核心系统进行非功能服务。曾在创金融领域全球最高TPS(HP开放平台)的项目担任性能技术专家。惠普是一个很大的平台,各种资源都有,性能测试工具、监控工具、刀片、小机、存储、网络、操作系统以及各种领域专家,最重要的是有很多大型应用系统的客户,非常有利于性能技术成长。

  对于测试领域的理解:

  A、从测试领域职业发展来看,将来的测试有两条比较好的出路,一条为业务专家,懂得某业务领域知识如金融、电信、建筑等等有行业壁垒的知识;另一条为测试技术专家,会编程是基础,能够做技术含量比较高的测试。原来主要点击几下鼠标的黑盒测试竞争会越来越激烈,由于知识壁垒有限,大量的高校毕业生轻易进入这个领域,很难出高薪。前几年是测试领域的原始积累期,很多技术能力不强的人能成为领导、经理,将来这种可能性越来越小。

  B、性能测试领域现在还缺少标准,市面上的培训以及书籍多数以工具为主,没有系统解决性能问题关注性能测试为主。

  问题:能否简述企业中性能测试现状?

  宗刚:从09年的淘宝双十一导致多家银行网银系统宕机,到12306购票难,再到前不久聚美优品促销活动刚开始就遭秒杀。根据Google的统计,如果网站打开慢每500毫秒,用户访问量将下降20%。根据Amazon统计,每慢100毫秒,交易额下降1%。这些事件和统计数据为大家敲响了警钟,企业也会越来越重视性能测试。

  企业性能测试常见问题:

  A、缺少整体性能与容量管理策略,常常临时抱佛脚,见过用20人年开发的系统上线之后系统性能完全无法瞒住要求,重新开发

  B、UAT阶段才做测试。为时太晚,很多问题这个阶段无法解决或解决成本非常高

  C、运维与研发缺乏互动。没有形成生产与研发的闭环,测试结果脱离实际,见过通过大量性能测试的系统上线之后就宕机

  D、缺少性能优化和规划。只有性能测试报告,定位不了问题,提出不了建议,对于生产系统的容量和性能缺少规划,不清楚系统的容量,无法支持有效的业务决策。

  问题:能否描述一下性能测试人员的现状?

  宗刚:11和12年分别在北京、上海、深圳面试了近100位性能测试人员,主要的特点如下:

  A、性能测试人员出身比较复杂,有开发经验的人员能力和潜力都强于其他。由于性能测试项目比较少,所以不同角色的人遇到这种项目,就成为性能测试人员。由于性能测试对人员要求的技术比较高,相对之下有开发经验的人员学习速度要快得多。就拿我自己举例,由于有4年的开发经验,通过两个项目的实践就可以灵活掌握性能测试,1年掌握的东西相当于没有开发经验的3年。

  B、多数性能测试人员都以工具为主,缺少系统解决性能问题的能力。见过一个项目的性能测试人员只懂通过loadrunner设置场景发起压力,根本不会性能监控和瓶颈定位,测试的数据压倒生产库都不知道。

  C、从面试的整体来看北京的技术能力稍强于其它地区,基本上为北京>上海>深圳。

  D、很多“资深”性能测试的人员由于停留于几年以前会loadrunner就是专家的时代,技能没有提升,陷入“上不去,下不来”的尴尬境地。

  E、多数人员习惯于从测试看问题,缺少整体视角解决性能问题。个人建议从产品经理的角度看问题,因为一个产品其实就是一个小型企业,从这个角度看成本、创新、流程、质量就比较有意义,抓住了本质。

  F、性能测试领域非常缺人才,缺少精通性能测试,同时熟悉各层性能优化的人才。见过好几个企业有若干个OS、中间件、DB性能优化专家,但是解决不了性能问题,缺少整体贯通的人员。

 问题:你如何理解性能测试在软件生命周期中的位置?

  宗刚:性能测试应该贯穿整个软件的生命周期,从需求到架构到迭代到上线再到运维都和性能测试息息相关。下图为借鉴了敏捷性能工程的思路整理出来的一个全生命周期性能管理图。

  主要分成4个大阶段:

  A、计划阶段:

  编写可测试的性能需求:详细说明可落地可测试的需求,而不是笼统的写着一天支持1.5亿的交易,支持1亿的用户。

  性能测试策略:需要提前考虑怎么进行性能测试,用什么工具?需要哪些培训等等 在产品代办列表里增加性能活动:由于性能测试一般实施周期比较长,建议单独成为一个列表项。

  B、架构评估:

  在系统架构阶段,在实现部分关键功能的情况下评估系统性能、容量、安全、可扩展性、稳定性等等是否满足系统设计的需要,我们常常缺少这个阶段的实践,等系统开发结束才进行,常常为时已晚。在系统规划时常常在缺少实际测试数据的时候拍脑袋规划硬件,出现“大马拉小车”的局面,架构评估的另一个作用是通过架构阶段的评估为规划提供数据支持。

  C、迭代阶段:

  系统不断的增加新特性、新需求,需要迭代验证系统的性能与容量

  D、运维阶段:

  研发人员常常觉得系统交给运维就可以了,由于运维人员对应用本身不够清楚,所以常常是盲人摸象,抓不住根本。见过业务高峰期,运维人员就看着CPU在往上涨,不知道应该怎么办,不清楚系统的容量点会在哪里出现,系统宕掉一台服务器会怎么样?多长时间能够恢复?到底能够支持多少的业务量?什么业务比较消耗时间?怎么优雅降级?在研发环境中,获得这些数据和手段都是比较容易的,运维人员是研发的第一个客户,应该多为他们考虑。

  上面介绍了整个生命周期性能的管理,从广度角度讲。那么从深度角度讲,性能管理应该包括:性能测试、性能优化和性能建模容量规划。

  性能测试:验证系统性能是否满足需求。

  性能优化:优化性能瓶颈,提升系统处理能力,测试和优化会有若干次的迭代。性能建模容量规划:生产环境可能出现各种场景,应该怎么预测与预防。

  如果比喻整个过程为病人看病,那么性能测试就是体检,性能优化就是对病下药,性能建模容量规划就是保健。

  由于系统总在变化,新业务、扩容、软硬件版本升级等等,所以需要不断的迭代,如下图:

 问题:你如何判断性能测试在项目或产品中的实际价值?

  宗刚:实际价值:

  A、业务部门:支持业务决策和促销,提高客户满意度

  B、运维部门:清楚系统容量,提升系统可用性、稳定定,降低硬件采购成本,提前预测预防提高响应速度,睡觉可以安心

  C、规划部门:有理有据进行规划

  D、研发部门:减少运维部门给研发部门的压力

  问题:你觉得高级性能测试专家需要什么样的个人能力和素质?

  宗刚:高级性能测试专家需要的能力模型,如下图所示,成为博学的专家。

  精通于性能测试分析建模,熟悉系统各层的监控与优化。同时需要较强的沟通能力,为了实施好项目需要有过程领域的知识如敏捷、CMMI等。性能测试技术发展路线参考如下:

  成为一个高级性能测试人员需要掌握的东西非常多,如何学习这些知识。通过多年的实践归纳,我的一点学习方法和大家分享:

  成长=3本书+领域专家+实验+实战+持续提升。

  3本书:1本基础书籍+1本全面的理论书籍+1本实战书籍。所有的书一定要经典书籍,我们常常开始学习知识的时候通过论坛的方法,这种方法入门比较容易,但是很难系统,也会占据非常多的时间。为什么要经典书?读书的最大成本不是买书的钱,而是读书的时间,所以看书一定要看最经典的书,怎么找经典书?可以到豆瓣、专业论坛、当当上看看评论。每个领域有每个领域的书籍,学习Oracle优化有oracle的书籍,学习loadrunner有loadrunner的书籍,千万不要以为做性能测试就学3本性能测试的书籍就够了。

  领域专家:成长过程中如果有领域专家的支持,就会少走不少弯路。当我开始学习Oracle性能调优的时候,刚好认识一位Oracle调优同事,和他沟通请他推荐一些资料,讲讲实操的技巧。这里需要注意的一点是不要所有毛皮小事都去找专家,人家也有自己的工作。一些问题可以通过google搜索、或专业论坛就可以解决。前段时间有项目需要用informix数据库,就请一位informix专家给我指导,大多数技术小问题在技术论坛上都有。如果大家不认识专家,那也没有关系,通过微博、论坛认识他们,大多数人还是愿意帮忙的。

  实验:性能项目不是那么多,所以自己要找一些实验的内容。技术书籍一般都会有一些实战的内容,如果不去实际操作一遍往往过一段时间就忘了。当我学习Tuxedo调优的时候,在自己的虚拟机上搭建Tuxedo环境,使用修改后的Demo应用进行压力测试,设计不同的压力场景,测试过程不断去调优应用,这个学习过程成长会很快。我的好多同事为了学习好hp-ux,自己购买退役的小机搭环境,进行实验调优。很多时候不是技术难,而是没有机会接触这样的环境。有过实验的经历,在就职面试的时候也算是经验啊。

 实战:通过实验之后,基本有经验了,如果再通过几个实战项目,不断总结归纳,基本就成为一个中级的性能测试人员了。以战养战,没有一个人开始就会所有的东西,每个项目都会用一些新的技术,所以在不同的项目中需要有很强的学习能力,能够快速学习新的技术并用于实战。

  持续提升:想成为高级性能测试人员或专家,就需要不断更新学习新的知识和技术。通过论坛、活动、微博、读书等方式不断提升,也要常常和大家一起分享,分享是非常好的学习手段,还可以提高自己的知名度。

  问题:如何从业务目标分析得到性能测试需求、性能指标?

  宗刚:常见的业务需求如下:日交易量支持1.4亿,响应时间小于2秒,支持用户2亿。我们需要把这些指标转化为可以测试的指标和场景。通过分析历史交易的波峰波谷,把1.4亿的交易量折换为每秒钟的交易量;响应时间也可以分类,比如本地业务多长时间,跨省业务多长时间,跨行业务多长时间等等;我们常常把支持多少用户作为衡量指标,这是一个误区,大量用户导致产生大量的业务才会消耗系统的利用率,所以关键是业务量。这里有个例外,如果要验证支持多少在线用户,以及长连接的系统就需要考虑支持的用户数量更精确的说法应该是支持的Session。从业务需求到性能测试需要一般要经历这些过程:评估性能风险、确定关键用例、选择关键性能场景、建立可测试性能目标。

  性能指标一般会有:交易响应时间、交易成功率、资源利用率、每秒钟的交易量(TPS)。这几个指标是相互约束的,如果低成功率下的TPS是没有意义的。多数运维部门对资源利用率都会有一些硬规定,比如CPU不能高于85%,内存不能高于90%等等,所以在测试之前需要清楚这些约束。除了上面的通用指标,各个应用系统会依据技术特点有一些特殊的指标。更全面的指标应该是分层的,从终端用户的体验—>业务流程—>中间件数据库的响应—>基础架构的利用。

  问题:如何进行性能测试建模?在性能测试过程中要建立哪些模型?

  宗刚:性能测试过程需要考虑的模型有:业务模型、测试模型、用户模型TPS模型、数据模型、失效模型、性能模型

  业务模型:依据应用系统特点分析出来的不同的业务场景和业务配比。性能测试常常会通过历史数据分析业务的重要性、交易频率、易耗资源的交易以及未来的发展趋势,最后确定一种业务配比。依据这个业务配比设计测试场景。这往往是不够的,一个线上系统往往有多个业务模型,需要考虑时间驱动的如:白天、晚上、月末、过年过节,事件驱动的如:本拉登去世黄金业务突发变化、业务部门促销等,第三方驱动:永远不要相信第三方的内容,所以需要考虑第三方接口的业务突变,延时等等。

  测试模型:如何将业务模型的内容转化为可以测试的内容,就是测试建模需要解决的问题。通过业务建模分析出来的业务需要过滤,剔除一些不易执行的、相互包含的等等业务。最后落地为各种可执行的业务配比,业务配比完成后,需要考虑的是如何和测试工具映射起来,这个就牵涉到用户模型和TPS模型。用户模型是指按照业务配比设置发起压力的用户比例,这种方法存在一定的局限性,因为不同的交易响应时间是不同的,长交易完成1笔交易,短交易可能是5笔,特别是在较大压力时,测试结果的业务配比会和真实的业务配比差距很大。所以一般情况下需要考虑TPS模型,这个是和业务模型相同的配比,这个模型的一个劣势就是需要不断调整并发用户数。

  数据模型:一个系统的大多数性能问题是数据库问题,所以垫底数据或参数化数据是否和实际相符将直接影响性能测试的有效性。一般建议性能测试使用清洗后的生产数据,参数化数据尽量采集生产系统一天的交易数据。以前见过一个项目,说有的数据都是通过loadrunner压进去的,所有数据都集中在一块,测试结果和实际生产差距巨大,整个测试无效。

  失效模型:主要是总结了大量以往生产系统经常出错的模式,在设计测试案例的时候需要着重考虑。这部分要依据实际情况来定,如果能够从运维部门获得更多的事故数据就更有价值。

  性能模型:不同的交易对系统的性能要求是不同的,依据测试的数据以及生产环境的数据建立模型,主要解决以下问题:测试环境中测试的数据如何映射到生产环境?生产环境中出现性能问题应该如何预测预防和优雅降级?生产环境应该如何扩容等等。

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

时间: 2025-01-30 08:44:17

性能测试面面观——HP性能测试专家宗刚访谈的相关文章

性能测试知多少----性能测试分类之我见

从这一篇开始,虫师向性能方面发力.翻看自己的博客,最早的时候热衷于jmeter,于是写了几篇图文并茂的文章(其实,主要是操作截图加文字 描述),之后,由于看到好多朋友关于性能的知识什么都不知道,下载个loadrunner 就说要做性能测试,结果可想而知,遇到各种概念与使用问题.于是写了<在做性能测试之前需要知道什么><在做性能测试之后需要知道什么>,关于loadrunner的我没有写一篇博客,因为介绍loadrunner的网站.资料.书籍和视频太多了.我想这个系列我也会把关注点放在

秦刚访谈:用五年的时间去做一年的事情

今天开始,秦刚访谈会和大家玩点不一样的东西,什么不一样的玩法呢? 以后每次访谈的嘉宾都会拿出他们的一个时间来拍卖,如果你觉得这个访谈嘉宾有干货,你就可以买他的某个时间和他进行深度的交流. 网络营销圈有不少做得不错的自媒体明星,今天我们的访谈主角是山上渔夫,他主要在QQ空间做他的自媒体,现在在网络营销圈也小有名气了. 山上渔夫,本名余群力,想必很多人都知道他,今天访谈的主角就是他了.如果还有不了解他的朋友可以往下看,慢慢见分晓. 秦刚:每个人都会给自己一个定位,你给自己的定位是什么呢? 山上渔夫:

秦刚访谈:传统行业到处都是黄金,就看你怎么捡

上周我收到了这封邮件: 秦老师 您好! 关注您的微信很久了,首先非常感谢秦刚老师和江水平老师.通过向您和江老师的学习,对公司营销方式做出了调整和改变,并且有所收获.谢谢你们! 第一,感谢秦刚老师让我对社交媒体和垂直行业运营了个全新的认识:由陌生变为了解,由了解变为尝试,最后由慢慢尝试,变成成为现实. 因为之前,在深圳做网络营销,对网络营销也算是比较了解和熟悉:但是,那只是停留在PC互联网时代的网络营销,仅仅针对百度等搜索引擎进行推广和运营,而没有重视社会化媒体及垂直行业运营.像马云说的,有点看不

性能测试知多少---性能测试流程

性能测试知多少---性能测试流程 看到好多新手,在性能需求模糊的情况下,随便找一个性能测试工具,然后就开始进行性能测试了,在这种情况下得到的性能测试结果很难体现系统真实的能力,或者可能与系统真实的性能相距甚远. 与功能测试相比,性能测试在技术层面具有更大的复杂性.在以往的测试流程中,性能测试只是测试流程的一部分,是系统或验收测试的一个可选项.但随着测试技术的发展.许多公司也单独把性能测试独立出来,建立专门的性能测试小组或团队.那么性能测试在实施的过程中也需要建立独立的流程与规范. 虫师提出了自己

本文来自著名物流供应链专家黄刚教授的置顶长微博

本文来自著名物流供应链专家黄刚教授的置顶长微博.此文中,黄刚对2013生鲜电商的发展进行了一个阶段性的总结,并由此展望2014年的生鲜电商发展趋势和爆点.认为2014年的生鲜电商将会随着菜鸟顺丰O2O等物流和商业形式的完善,将出现新的爆发点.是一篇难得的行业年度总结及展望的好文. 2013年12月悄然而至,转眼年就剩最后一个月了.这一年对于生鲜电商来说是一个从草莽到规范化.品牌化.平台化.故事化转型的一年.记得在5月11日,由中国供应链联盟组织的第十一届北京物流经理人活动"生鲜电商物流专场&qu

本文来自知名物流供应链专家黄刚先生的微博

本文来自知名物流供应链专家黄刚先生的微博,文中挑选八家极具代表性的公司,从供应链的角度对其进行了详尽的解读,从一整年行业的变化中,看这些企业通过供应链层面的创新,从而准确地把握住了新的商业机会.这对品牌商寻求供应链新模式来说,是一个很有启发的文本. 全球供应链20年一次重组,2013年刚好是迎来一个重要的重组之年.在中国,2013年中国企业在互联网经济推动下供应链模式正面临快速转型和创新.回味这一年的行业变化,我们看到太多血淋淋的变革,同时我们也看到了新的商业机会正在孕育和诞生.值得欣慰的是那些

秦刚访谈:邮件营销如何做更有效?

很多人认为邮件营销是非常古老的网络营销手段,已经没有多少人在用了.但是有时候招不用新,管用就好,关键是把细节执行到位.今天的秦刚访谈给大家看看别人是如何玩转邮件营销的吧. 秦刚:你好,请先做一个简单的自我介绍吧. 王鼎钧:秦刚老师好,我是鼎钧(王鼎钧),南京好轻松咨询有限公司总经理,百耀培训学校校长,汇智天下教育投资有限公司董事长. 秦刚:头衔挺多的,你给自己定位是什么呢? 王鼎钧:我的定位是移动电商思维训练和实战培训师. 秦刚:你说你对培训很了解,可以讲讲吗? 王鼎钧:我主要对国内以陈安之为代

秦刚访谈:未来属于传统产业里懂互联网的人

我的微友中有不少做传统企业的朋友,现在他们也非常想转型互联网,想在移动互联网时代能够分到一杯羹.但是很多在传统行业里生意做得非常大的朋友,一转到互联网就完全抓瞎了,不知道如何做了. 其实互联网和移动互联网只是一个生意的工具,面向B端(企业)的垂直门户网站需要用传统手段且结合线下才有可能爆发.传统生意手段 互联网思维,是垂直门户生存和发展的两翼,缺一不可. 今天这篇秦刚访谈是关于一品威客网的,这个网站是由2个传统企业出身的兄弟两创办的. 他们开始在互联网领域创业的时候,被人把钱给骗光了,但是靠着闽

秦刚访谈:C2B模式会彻底颠覆二手汽车行业吗

现在传统行业的老板都比较着急,为什么? 因为他们发现自己的竞争对手不在是原来自己天天明争暗斗的同行,而是不知道哪里冒出来的,原来完全八竿子都没有关系的互联网公司. 而且这些互联网公司完全是不同的打法,根本摸不着他们的门道,唯一能够看明白的,就是自己的市场被这些公司急剧蚕食. 汽车后市场是最近互联网圈子一直热衷谈论的,等待被蚕食,被颠覆的传统市场. 秦刚(微信号,QQ号 1111884)不少原来的同事都开始介入汽车后市场,他们原来根本就不是搞汽车的,都是玩互联网的. 上次我回北京碰到一个老同事,问