51Testing专题采访:陈霁和他的《性能测试进阶指南——LoadRunner11实战》

陈霁,51Testing论坛中ID为云层,《性能测试进阶指南——Loadrunner9.1 实战》作者。自称集上海人和四川人的优缺点于一身,常常被朋友指责为典型处女座。自认公司内皮肤最白,经常被学员笑称“云版”或“棉花糖”老师,现任51Testing高级讲师,主攻性能测试。

2001年至2004年在多家软件公司任职测试工程师,在底层摸爬滚打多年,对各种类型的软件测试都有所涉及。

2004年至2007年在Gameloft上海部曾任测试经理、SQA及SCM。

2007年中加入51Testing任职高级讲师一职,负责软件测试培训、咨询、企业应用解决方案等工作。

专访区
51Testing:继《LoadRunner 9.1实战》之后,出于什么原因又写了《Loadrunner11实战》这本书?

陈霁:写完第一本后真的不想写第二本,写书是个非常消耗精力和时间的事情,也许这个感受只有作者才能互相体会,为了确保书中的内容正确有效而又具有时效性,需要有大量反复检查调整和案例积累工作。

写第二本书的原因其实很简单,就是给老婆一份礼物。

51Testing:写作过程中有过迷茫和困惑吗?

陈霁:如果要问我老爸老妈听我说的最多的一句话就是“为什么?”、“为什么要写这本书呢?”。每天要放弃很多休息的时间,为了一些例子反复调整语句环境,经常睡觉吃饭都在想。从技术角度来说并没有遇到什么问题,而更多的迷茫困惑是如何让大家看着更简单和实用吧。

51Testing:对于《LoadRunner 9.1实战》的脱销热卖,您如何看待和评价《性能测试进阶指南—— Loadrunner11实战》?

陈霁:写一本书难,写一本好书更难,写本突破以前的书难上加难。从上本发行3年后,该书被越来越多的读者逐渐认可,感受到了笔者重思路、重细节的独特风格,而最新的LR11及在上一本内无法尽兴的内容需要进行弥补。为了克服前一本书思路和概念过多,实用性的直接案例过少,在这次的编写中进行了几乎全部的更新重写和补充。所以这本书不是前一本书的简单更新,可以算作一本全面细化和加强的新书。对于读过前书的读者,看了绝对会对以前朦胧的部分有豁然开朗的感觉,因为细化了一些概念的落实,而新增的内容会更加贴近工作。

51Testing:《性能测试进阶指南——Loadrunner11实战》相比《LoadRunner 9.1实战》,区别在哪 里?它的最大特色是什么?

陈霁:1、终于有了索引,在朋友的强烈建议下,将常用的函数加入了索引,这样找函数解释比以前快多了。2、被测项目平台比上一本更有代表性和实用性,选择了基于Centos的主流LANMP架构。提供了详尽的配置、基准、分析性能测试报告。3、添加了VSTS,Jmeter等性能测试工具的使用入门简介。4、脚本开发中添加了关于webservice、Silverlight、Java Vuser、.Net Vuser等脚本开发。5、关于LR11的新功能,带入了很多和自动化相关的脚本开发。

太多的内容,无心详述,参考试读章节吧。

51Testing:有没有下一本书的写作规划?

陈霁:这次是为了老婆写这本书,如果读者支持也许我会为我的孩子再写一本书吧。

51Testing:非常感谢陈霁对本次采访的支持。最后《性能测试进阶指南——Loadrunner11实战》一书即将出版,敬请期待!在此,51Testing也预祝《性能测试进阶指南——Loadrunner11实战》一书大卖!
试读区

1.3.1 性能分析及调优原理

性能测试的目的是评估当前系统性能指标,分析定位解决性能瓶颈,预防规避性能风险。性能分析是为了确定导致性能瓶颈的原因,而调优就是用来解决性能瓶颈。通过某些手段来让系统的性能得到提升是性能调优的主要目的。

性能分析主要有以下两种方法。

1)指标达成法

将测试结果与用户需求进行比较,如果达到用户需要则测试通过。

● 系统满足10万注册用户(其中活跃用户数为1万)访问。

● 系统处理能力:20个注册/秒、45个并发浏览/秒、30个登录操作/秒。

● 服务器资源利用率在满负荷的情况下,忙时峰值CPU负载不超过75%,内存占用不超过80%。

例如,需要对一个参加100米跑的选手在比赛前进行性能测试,确保其能获得冠军,那么首先需要明确第一名所需要达到的性能目标(100米短跑总时间),对其进行性能测试,当发现测试结果能够达到冠军所具备的条件后,性能测试即可结束。

2)最优化分析法

通过分析并消除系统性能瓶颈,使系统的处理能力最大化,系统资源实现充分利用。

例如,需要对一个参加100米跑的选手进行技术指导,并不在乎他是否能够拿到冠军,而是重点强调能否提升自己的比赛成绩,那么就需要进行系统的训练和指导,如规范起跑动作、强化肌肉及协调性等,最终实现运动成绩的提高。

对应的性能调优方法也分为两大方向,如图1.6所示......[详细]

1.3.2 常见系统性能瓶颈

1.硬件瓶颈

任何系统的性能问题最终都会体现在硬件上,影响系统性能的主要硬件部件通常都是CPU、内存、硬盘,而其中的性能瓶颈往往是在硬盘上。作为计算机硬件中发展最慢的设备,很多常见瓶颈都是由于硬盘的读/写速度慢导致的。提高硬盘读/写性能的方法无非是提高转速、提高单碟容量、增加缓存和更新接口,传统的温氏硬盘已经基本没有太大的调优空间了,因为从稳定性的角度15?000 RPM(RPM是Revolutions Per Minute的缩写,是转/每分钟。RPM值越大,内部传输速率就越快,访问时间就越短,硬盘的整体性能也就越好)已经几乎是极限了,而提高单碟容量也存在一定的技术瓶颈,1TB单碟的容量想要突破还需要比较长的时间。

对于现在的主流配置硬件来说,每秒钟十几GB的数据读取写入速度(内存)不在话下,而传统的温氏硬盘到现在也只能做到平均120MB/s的读取速度,这个速度还是针对大文件读/写的,而对于服务器(特别是WWW服务器)大量4KB小文件读/写速度,会惊人地下跌至1MB不到,而对应的IOPS(每秒磁盘读/写次数)会低得可怜,大量的数据都在排队从硬盘上读取到内存中,再利用内存的超大带宽完成操作,这也是为什么内存大系统会运行比较快的原因。而一旦内存耗尽,数据不得不从硬盘上读取,这时系统的响应时间会大幅下降。在现在的很多系统中都会使用Memory Cache技术来解决小文件读/写的问题,但是这种技术存在一个比较致命的缺点就是一旦内存掉电,那么就意味着数据丢失,关键业务不能使用这种技术(例如,买入股票这样的操作不能写在内存中,否则一旦掉电,这笔业务就没了)。而除了Memory Cache技术以外,固态硬盘给了我们更多的选择,对于传统硬盘的读/写速度瓶颈及IOPS,固态硬盘提供了全面的提升......[详细]

1.3.3 性能测试的注意要点

1.性能测试应尽可能早地进行

与功能测试相同,性能测试进行得越早越容易发现并修复问题,当系统集成后,想要从众多模块中分析定位模块瓶颈是十分困难的,但是如果在项目初期就能对每个模块进行性能测试,问题自然会迎刃而解。

2.性能测试需要团队支持

质量是做出来的,而不是测出来的。性能也是同样,并不是有了一个性能测试部门,发现并定位了问题就能够提升软件的性能,性能的优化需要开发部门和相关部门的通力合作。

3.性能测试需要独立的测试环境

性能测试的测试环境相对功能测试有着更为严格的要求,需要独立的网络和硬件环境,来保证被测系统是独立可控的,甚至需要专门的管理员和流程来对被测环境进行控制。

4.测试前定义明确的测试目标

性能测试的执行成本较高,为了确保性能测试执行的有效性,在每一次性能测试前应明确本次性能测试的目标,并对这个目标进行监控和验证。

5.不要在服务器上进行性能测试

虽然服务器可以用来作为负载生成和被负载的对象,但是如果在服务器上进行这样的操作,系统资源会被负载消耗,导致得出的性能测试......[详细]

51Testing软件测试网作品系列
性能测试进阶指南——LoadRunner11实战
2012年5月新上架

本书是一本基于HP LoadRunner 11工具的指导用书,从性能测试原理到工具使用再到项目实施,全面介绍了性能测试的各个方面,其内容基本主线说明如下。

第一步(了解理论):磨刀不误砍柴工,打下基础;第二步(掌握工具):深入介绍LoadRunner11工具三大部分(Virtual User Generator、Controller、Analysis)如何实现用户行为的模拟、性能指标的监控、负载的生成及后期的数据分析;第三步(项目实施):理论联系实际,介绍性能测试项目实施的流程和性能测试部门的组织管理;第四步(进阶提升):对一些当下流行的或比较特殊的协议和开发技巧通过真实案例进行介绍。

本书结合了很多工作中的实际案例,图文并茂,既适合渴望了解性能测试的新人,也适合对性能测试有一定认识和经验的中、高级测试工程师。同时,本书也可以作为高校开展性能测试课程的参考教材,让在校学生能对性能测试的本质和价值有一定的认识。

查看详细介绍>>        试读章节连载>>        评论/提问>>

51Testing软件测试网作品系列

精通QTP——自动化测试技术领航性能测试从零开始——LoadRunner入门与提升性能测试进阶指南——LoadRunner 9.1实战软件质量管理指南手机软件测试最佳实践软件测试精要