本书是软件性能测试领域的一部创新著作,作者结合多年性能测试项目管理与实践经验,由浅入深地从性能测试方法、性能测试工具使用、实际大型性能测试项目实施案例等多方面进行系统讲解,既能让刚刚步入性能测试领域的新人充分掌握性能测试所需的知识和方法,又能让性能测试从业人员真正做到理论结合实际、学以致用,同时更加明确在性能测试领域的职业规划和发展方向。全书共分为三大部分:第1篇——初识庐山,主要介绍性能测试现状及必要性、性能测试常见类型、基本指标和方法、性能测试工具原理、工具使用及工具实操;第2篇——云览群山,主要介绍性能测试的基本过程、性能测试指标的监控,以及性能结果分析、瓶颈定位与调优;第3篇——华山论剑:介绍三个不同行业的实际项目案例,直观地讲述性能测试如何实施、怎样分析定位问题、如何优化等。
本书最后附有性能测试工具LoadRunner的高级使用技巧与常见问题解决方法,方便读者在学习和工作中更快捷、高效地解决性能测试中的各类问题。
内容覆盖软件性能测试方法、工具、实践、大型项目案例实施方方面面!
前 言
转眼间一年过去了,2014年,应用性能管理团队决定把性能测试相关项目实践经验写成一本书,几经波折,最近终于定稿。
关于性能测试的能力,我通常将其分成三个层次:能测—会分析—懂调优。这也是进阶的三个层次。
我的第一本关于性能测试的书是与好友郭伯雅合著的《性能测试诊断分析与优化》,书中以迫切希望能面面俱到的心态尝试覆盖三个层次的内容,现在看来还是有点急躁。
能测,这个层次很多人都能达到,掌握一两个性能测试的工具,按照一定的流程规范即可开展性能测试工作。
会分析,需要掌握的技能则要广泛很多,从网络到Web服务器、中间件、数据库的性能监控,性能指标数据的解读,业务指标与资源指标的关联分析,能精通此道的人就少了很多。
懂调优,原则上不是测试人员的事情,但是懂调优的测试人员会更有价值。如果Web服务器、中间件、数据库的调优都能加以尝试和排查,剩下的就是代码优化,岂不是能倒逼程序员,让其毫无借口,必须优化代码?
优化是最高境界,但是能测、会分析是基础!
应用性能管理团队在电信、航空、电力、金融、政府等领域的性能测试项目中摸爬滚打了多年后,大部分人都能达到能测的境界,并且有所超越,甚至一些性能测试脚本的疑难杂症也能顺利攻克。但是,始终只有少部分人在性能数据的分析上能摸到一些门道,能调优的就更少,这种状况直到公司APM产品问世才得到很好的解决。
这里先简单介绍一下我们的APM能力:通过分析应用程序在Web层、中间件层、数据库层的调用情况,组合成完整的调用链,从而形成清晰的业务视图。正是这种能力大大提升了团队性能分析的准确性和效率,降低了对人的要求,在某些项目中还能定位到代码的性能瓶颈,推动开发进行优化。
借此次编写书籍的机会,应用性能管理团队重新梳理了性能测试领域的知识体系,分成“初识庐山”、“云览群山”、“华山论剑”三篇,在总结项目实践经验的同时,再一次巩固了自身对性能测试知识的掌握,达到更深入的理解。
? “初识庐山”篇的编写目的是教会他人性能测试的基本功,使得新员工入职也能迅速掌握基本的性能测试工作技能,继而投入到项目中去。
? “云览群山”篇的编写目的是希望走在前面的性能测试工程师能把多年的经验传承下来,让初级的测试工程师也能顺着阶梯往上爬。
? “华山论剑”篇的编写目的是归纳总结不同行业、不同类型的性能测试项目特点及实战经验,让测试的同行可以参考借鉴。
在我看来,这几大目的都在一定程度上达到了。参与编写本书的几位同事也收获了很多,这些收获有工作经验上的积累,有性能测试技能上的提高,也有同甘共苦、共同奋战在一线的成长与快乐。
本书得以最终成稿并出版,有赖应用性能管理团队几位小伙伴(丁锦良、蒋娟、冼志超、邱艳玲)的帮助。他们在辛苦工作之余,牺牲个人时间,帮忙收集相关材料和提出宝贵建议。
由于篇幅有限,我们遗漏了不少在项目中实践的技术和案例,例如,APM工具在性能测试中的应用、性能基线测试的管理、性能测试自动化调度执行框架的设计、业务拨测与性能数据分析等。我们期待有机会在下一本书中呈现,或者以其他形式与读者交流碰撞。
通过此次书籍的编写,让我本人也收获良多,尤其是有了更多新的关于软件性能的视角,以及关于性能测试发展方向的思考。例如,APM这类工具在典型的系统架构中所发挥的性能诊断分析的作用;从日志分析的角度利用类似Splunk这样的工具进行性能诊断分析。我希望有机会能在一些项目中验证这些想法。
人生总在一次次的经历中成长,有所经历不代表着一定会有经验,但是经验一定是建立在经历的基础之上的。很高兴我们的应用性能管理团队能一起经历各种项目,面对各种类型的客户,更难得的是我们能把这些经历转化为经验传递给团队中的其他人,以及通过出版书籍的方式传递给广大的测试同行。
最近一两年来,通过与客户的交流、与同行的交流,我收获了很多。例如,通过给客户培训性能测试一遍又一遍地梳理性能测试的知识体系;与华为的朋友交流性能建模;与DynaTrace厂商的朋友交流APM及大规模分布式性能压测;与招商银行的客户碰撞关于通过抓取网络流量包进行大数据性能分析,等等。这些都让我脑洞大开,原来性能领域还有这么新奇的东西。
书是一种与人交流的形式,我们期待通过著书立说的途径与更多人交流。希望我们的书能给大家带来一些启发的同时,抛砖引玉,期待广大读者的反馈,共同努力推进软件性能领域的发展。
最后,再次感谢应用性能管理团队的小伙伴们的努力,在符强和潘绍强的“双强”带领下,取得了骄人的成绩。感谢新炬的领导程总,营造了一个技术导向、技术为王、技术创新的工作团队氛围,让我们能在工作的同时取得技术上的一次次突破。还要感谢出版社编辑的辛勤工作,你们的耐心与细心指导是本书得以顺利出版的必备条件。
他山之石,可以攻玉。
路漫漫其修远兮,吾将上下而求索。
与广大测试同行共勉!
新炬网络 应用性能技术总监、APM架构师
DBA+社群联合发起人 陈能技