前 言
软件系统是企业IT的核心,软件系统的质量影响着企业的运转、业务的开展,除了软件系统的功能正确性外,软件系统的质量还包括性能、安全性、可靠性等。
软件性能问题遍布各种行业领域的软件系统,例如金融业务服务系统、电子商务网站、移动互联应用系统、网络游戏、嵌入式软件系统等。在竞争日趋激烈的商业环境下,为了满足用户日益增加的体验需求,软件系统的性能优化被提到了前所未有的高度,您的软件系统比竞争对手快1秒,您就有可能比竞争对手多赚100万!
软件性能优化离不开性能测试,全面的性能优化需要全过程的性能测试解决方案,包括性能需求分析、性能设计、性能系统测试、性能诊断分析与调优。
在软件生命周期的需求分析阶段,需要对软件性能的需求作出定义,并进行需求分析,尤其是软件性能需求的可测试性分析,这有利于后续开展性能架构设计和性能测试的工作。
在设计阶段,尤其是架构设计阶段,应该对软件系统的性能架构进行充分设计、原型评估,必要时在这个阶段可进行小规模的性能验证性测试,以便论证系统架构在性能上的可扩展性。
在代码设计阶段,需要按照指定的开发规范进行软件开发。为了获得最佳的性能体验,需要从每个细节入手确保软件性能,及时进行代码性能检查和评估。
系统的性能测试可分为负载测试、压力测试、耐力测试、容量测试等多种类型,不同类型的性能测试侧重点不同,需要根据软件系统特点和项目类型进行选择。
软件系统的性能瓶颈可能出现在各个环节,例如数据库、中间件应用服务器、Web服务器、网络、代码层。性能瓶颈的定位和诊断分析需要熟悉软件系统的各个方面,通常需要多种项目成员角色配合一起完成,例如DBA、系统管理员、网络管理员、设计人员、测试人员等。
本书结合主流的性能测试工具LoadRunner,讲解性能测试过程、方法和技术。另外,结合笔者多年性能测试和性能优化经验,详细讲解了软件系统常见的性能瓶颈,以及如何发现、诊断分析这些性能瓶颈,从而提出性能优化方案。
本书的内容安排
本书分为3篇,共10章,从软件性能测试的基本概念讲起,再进一步介绍性能测试的基本方法和流程,然后基于LoadRunner介绍性能测试工具的使用方法、测试脚本的开发技巧,以及性能场景设计、性能测试结果分析,之后结合主流操作系统、Web服务器、应用服务器和数据库,从多方面、多角度出发详细讲解性能问题的诊断分析技巧。
第1篇 性能测试基础篇(第1章和第2章)
讲述了性能测试的基础知识,性能测试基本流程。这两章内容是性能测试工程师必须具备的基础知识。
第2篇 性能测试工具篇(第3章到第5章)
性能测试工具是性能测试工程师的基本“装备”,掌握性能测试工具的基本使用方法,才有可能顺利开展性能测试和性能监控,以及后续的性能分析诊断、性能优化工作。LoadRunner作为业界主流的性能测试工具,是性能测试工程师必备的“利器”。第3章到第5章的内容涵盖LoadRunner性能测试工具的使用、脚本开发、场景设计与运行、测试结果分析等内容。
第3篇 性能问题诊断分析篇(第6章到第10章)
性能瓶颈可能出现在软件系统的各个方面,第6章到第10章的内容分别从Web服务器、应用服务器、数据库服务器、应用程序代码、操作系统等层面进行性能问题的分析诊断。让性能测试工程师可以借助笔者总结的丰富经验,应用于实际性能测试项目的性能问题诊断分析优化。
本书由浅入深,由理论到实践,尤其适合初级读者逐步学习和完善自己的性能测试方面的知识结构,加上LoadRunner性能测试工具的应用技巧和性能瓶颈的分析诊断技巧,是性能测试团队和性能测试工程师的案头指南和最佳实践指导。
本书特色
本书在讲解性能测试过程、性能测试工具LoadRunner的使用,以及性能问题诊断分析的过程中,通过详细的例子进行分析,让读者可以通过例子理解,并且可以自己进行尝试,非常适合独立学习和研究性能测试技术、性能优化技巧的初级测试工程师参考使用。
本书以循序渐进的方式讲解了性能测试的基本知识,结合LoadRunner的使用,深入讲解性能测试脚本的开发,在讲解性能诊断分析技术时,涉及目前流行的Web服务器、应用服务器、数据库服务器等方面的内容,例如Apache、Tomcat、WebLogic、Oracle、Linux等。
在讲解性能诊断分析技术时,首先分析系统组件的架构原理,再介绍性能监控的方法,最后引出性能问题出现的原因和诊断分析的技巧,以及调优的方法。
适合阅读本书的读者
本书面向使用LoadRunner等性能测试工具进行性能测试的测试工程师、QA,以及希望了解性能测试的测试员,希望掌握性能诊断分析技术的软件工程师。
编 者
2012年2月