软件性能测试过程详解与案例剖析 第2版
《软件性能测试过程详解与案例剖析(第2版)》不仅仅是一本讲述软件性能测试基础知识的书,也不是一本工具的使用手册,当然更不是一本入门类的书籍。《软件性能测试过程详解与案例剖析(第2版)》面向具有一定测试基础,期望能够通过实际案例去感受和领悟性能测试的测试工程师。书中包含了作者多年在性能测试方面的经验总结,其中精选的案例覆盖多种架构和平台,涉及多个行业,可对实际工作起到直接的指导作用,同时,《软件性能测试过程详解与案例剖析(第2版)》包含了所有会在性能测试中使用的模板,稍加修改即可应用在实际项目中。赠送例映敌模板及习题Software Performance lesting Case软件性能地详(第二版段念编著◆◆换清华大学出版社北京内容简介本书不仅仅是一本讲述软件性能测试基础知识的书,也不是一本工具的使用手册,当然更不是一本入门类的书籍。本书面向具有一定测试基础,期望能够通过实际案例去感受和领悟性能测试的测试工程师。书中包含了作者多年在性能测试方面的经验总结,其中精选的案例覆盖多种架构和平台,涉及多个行业,可对实际工作起到直接的指导作用,同时,本书包含了所有会在性能测试中使用的模板,稍加修改即可应用在实际项目中。本书可以作为软件测试人员、软件项目经理和需要了解软件性能测试的各级软件管理人员的参考手册,也可作为高校软件性能测试课程的辅助教材。本书封面贴有清华大学出版社防伪标签,无标签者不得销售。版权所有,侵权必究。侵权举报电话:010-6278298913701121933图书在版编目(C|P)数据软件性能测试过程详解与案例剖析/段念编著.-2版.一北京:清华大学出版社,20126ISBN978-7-30228179-5I.①软…Ⅱ.①段…Ⅲ.①软件测试ⅣV.①TP311.5中国版本图书馆CP数据核字(2012)第034901号责任编辑:钟志芳封面设计:张秀岩版式设计:文森时代责任校对:张彩凤张兴旺责任印制:王静怡出版发行:清华大学出版社pogtiR:http://www.tup.comcn,http://www.wqbook.com地址:北京清华大学学研大厦A座邮编:100084社总机:010-62770175邮购:010-62786544投稿与读者服务:010-62776969,c-service@tup.tsinghua.edu.cn质量反馈:010-62772015,zhiliang@tup.tsinghua.edu.cn印刷者:清华大学印刷厂装订者:北京市密云县京文制本装订厂经销:全国新华书店开本:180mm×230mm印张:27字数:470千字版次:2012年6月第2版印次:2012年6月第1次印刷印数:1~4000定价:49.80元产品编号:030482-01第二版说明从本书第一版出版至今,已有5个年头。承蒙各位读者的厚爱,直到最近仍有不少读者通过邮件或微博询问我这本书在哪里可以买到。随着性能测试技术的发展,与5年前相比,性能测试领域已经增加了不少新的概念、方法和实践。例如,随着web应用的发展,web应用前端在性能中越来越重要;随着敏捷思想和方法的逐渐推广,软件性能测试的过程与组织方式也发生了新的变化;随着整个软件测试行业的技术发展,性能测试也逐渐扩展到更多的层次;而随着 nternet应用的大规模发展,架构在性能中的重要性越来越凸显。在工具方面, LoadRunner工具一枝独秀的时代早已过去,当前可用的性能测试工具无论在数量还是质量上都已经大大扩展,开源工具在这个领域也得到了广泛应用……站在性能测试的前沿去看5年前的第一版,书中的内容显然有些过时可以说,软件性能测试目前已经成为一个比5年前广泛得多的领域,想要用一本书去覆盖整个性能测试领域已不现实,但考虑到目前仍然有较多测试工程师需要建立对性能测试的初步认识,因此在本书第一版的基础上对不合时宜的章节进行了修改和补充,并根据性能测试的发展主要增加了3部分内容:Web前端性能、敏捷性能测试以及 JMeter应用与实例。本书力图为对软件性能测试感兴趣但不甚了解的性能测试工程师,以及希望进入该领域的技术人员提供较为全面的软件性能测试印象,还为具有一定技术基础的软件技术人员提供参考。考虑到目前越来越多的高校已经开设了软件测试专业和相关课程,本书为每章配备了习题并发布在清华大学出版社网站(www.tup.com.cn)上,因此,本书亦可作为高校软件性能测试课程的辅助教材。前言大多数测试工程师对“性能测试”这个名词并不陌生,即使没有真正参与过性能测试项目,在各个论坛或网站上也经常见到这个名词。然而,究竞什么是软件性能?软件性能测试究竟该如何开展?软件性能测试到底测试了些什么?这些问题恐怕就不是每个测试工程师都能清楚地回答出来的了。其实,在日常工作中,每个测试工程师基本上都会遇到和软件性能、软件性能测试相关的内容。回想一下我们接触到的用户需求,经常会有类似如下的描述:“要求某某系统对用户的操作能快速反应”、“要求某某系统能够在大量用户同时使用时保持稳定运行”等。实际上,这些就是用户对软件系统提出的朴素的性能要求,虽然这些性能要求不是那么显而易见的,在实际的测试中也可能会被忽略,但无论如何,这些描述至少说明了性能要求其实是大部分用户对软件系统的一个基本要求。在开始真正描述软件性能测试之前,先来回顾一下对软件性能认识的历程。如果从世界上第一台计算机诞生开始算起,软件的存在已经有相当时间的历史了(以软件行业的时间概念来说),在以前的DOS时代,甚至是 Windows95时代,好像很少听到对软件性能的抱怨,但为什么在近几年,对软件性能的关注突然变得强烈起来了呢?这种变化究竞是什么原因造成的呢?在DOS和 Windows95时代,我们接触到的大量应用都是单机应用,对这些应用,其实也存在性能方面的要求(想想看,是不是曾经因为某个游戏运行不流畅、单击了IDE工具的“编译”命令后需要等待10分钟甚至更长而抱怨自己的机器?)。但对这类单机应用来说,程序运行的速度基本上只与运行程序的主机有关,因此,只需要更换运行程序的设备就能很好地解决这个问题。所以,虽然用户会觉得程序运行速度慢,但由此引起的抱怨一般都会直接针对计算机设备和资金不足,而不会瞄准运行慢的软件。而近几年来,随着软件系统规模和复杂程度的增加,我们接触到的系统(如OA系统、信息管理系统等)都变得越来越强大。在结构上,这些系统大多采用C/S或B/S架构,采用多种分布式应用技术,具有几百、几千甚至上万的用户数量。由于其采用的是C/S或B/S架构,大量的运算和处理都被集中到服务端来实现,这种变化使得软件系统的性能影响因素变得庞杂,很难通过更换设备来解决。这时,采用类似单软件性能测试过程详解与案例剖析(第二版)机时代的“更换更好的设备”的方法,无论从经济性还是可实现性的角度来考虑,都完全不能满足需要,对性能的关注才越来越多地集中在应用系统本身,而不仅仅是运行系统的设备上对应用系统本身性能的关注和软件性能的复杂性催生了专门的“性能测试工程师”职位,据统计,性能测试工程师的工资水平远远超过了一般的测试工程师,然而到目前为止,在从业人员数量和质量上来看,国内性能测试人才的缺口还是非常大的,尤其是真正能够承担大型系统性能测试工作的工程师更加稀少。软件性能和软件性能测试的复杂性是显而易见的。首先,一个软件系统性能表现的相关因素非常多,网络环境、数据库服务器、应用服务器、业务逻辑的实现方式、系统采用的架构、代码优化的程度、使用者的使用方式等都会对系统的性能表现造成影响,在这种情况下开展性能测试,殊为不易。本书是一本专门描述软件性能测试的书,对没有太多性能测试经验的读者来说,本书的作者力图使它成为一本手册或是实践指南;对于已经进行过一些性能测试的,具有一定的性能测试经验的读者来书,本书也希望能够为其提供一定的启发。本书的作者结合自己在性能测试方面的经验,对软件性能测试的概念、性能测试的组织等进行了阐述;同时,通过贯穿全书的大量精心选择的实例描述,作者期望本书为每一位读者带来性能测试的体会和体验本书的组织结构本书围绕基础、案例、工具三个方面组织,给出了软件测试的基础知识,介绍了软件性能测试过程,提供了通用的软件测试过程模型(PTGM),给出了敏捷软件测试模型(ATPM)。随后,本书尽可能具体地展示了一些有价值的实例,在实例中展示了如何系统地开展性能测试。此外,考虑到web前端性能已经是一个非常热门的性能方向,本书专门设置了一章描述Web前段性能测试和调优。各章内容介绍“基础篇”包括第1章~第6章。第1章首先介绍软件性能测试相关的一些基本概念,重点阐述不同视角的软件性能,对并发用户数、响应时间、吞吐量等软件性能测试中的常见术语进行详细解释和讨论,并对软件性能测试中经常使用的一些方法进行简要的描述。前言第2章介绍软件性能测试应用领域的概念,将软件性能测试的应用范围划分为能力验证、规划能力、性能调优、缺陷发现以及性能基准比较5个应用领域。领域的概念使性能测试工程师可以更好地明确性能测试项目的目标,确定合适的性能测试方法。第3章和第4章分别讨论性能计数器和性能测试工具的原理。在第3章中,重点讨论操作系统、应用服务器和数据库系统常用的性能计数器,并给出利用性能计数器进行性能分析的方法;在第4章中,以典型的系统级性能测试工具Loadrunner为例,展示了服务端性能测试工具的原理,并简要介绍了前端性能测试工具的原理。第5章是本书的重点章节,该章引入了通用的性能测试过程模型(PTGM)和结合了敏捷思想的模型(ATPM),详细描述了PTGM模型的各个阶段及每个阶段的活动,并介绍了ATPM模型中的检查表、活动与工具。该章的内容可以作为性能测试项目的有效参考,帮助读者全面了解如何规划和执行一个性能测试项目。第6章是本书第二版中新增加的章节,该章描述了Web前端性能的主要原理、性能评估方法以及主要的前端性能工具,对前端性能进行了细致的探讨和较为深入的分析。“实践篇”包括第7章~第10章。第7章~第10章围绕4个具体的项目展开,每个项目的描述方式都严格遵循第5章的PGM模型步骤和活动,另外,在每个案例的描述中,针对案例本身的特点,还同时介绍了许多在性能测试中可用的技巧(如时间戳的技巧、处理验证码的方法、 sessionID的概念等)。“工具篇”包括第11章~第13章。“工具篇”给出了一些非常有价值的工具资料,考虑到读者具有不同的技能基础,第11章面向没有性能测试工具使用经验的读者,给出了一份简洁但全面的 LoadRunner快速入门手册;第12章则针对较为熟悉 LoadRunner的用户,在第11章的基础上给出了 Loadrunner的高级使用技巧描述;对于更愿意采用开源解决方案的用户,第13章给出了 JMeter工具的使用描述,包括基础和进阶操作。已经有一定性能测试基础的读者应该可以通过本章很快建立对 JMeter的应用认识,达到熟练使用 JMeter工具的目的。“附录”则包含了其他一些实用资料。附录A给出了一些性能测试过程中可能使用到的有价值的脚本和数据处理技巧;附录B则给出了性能测试过程中使用的模板。ⅥI软件性能测试过程详解与案例剖析(第二版)阅读建议基础篇”是自成体系的一个整体,建议读者按照该篇的组织方式顺序阅读无论读者是有经验的性能测试工程师还是对性能测试不甚了解的测试工程师,建议都要仔细阅读本篇的内容,这样才能为准确理解本书的其他内容奠定良好的基础。特别要提到的是第5章,由于该章的内容是案例描述部分的基础,因此希望读者可以仔细领会该章的内容,再对照案例描述进行体会,方能有最大的收获。“实践篇”介绍了4个各具特色的案例,其中案例1是一个相对概略的案例,重点展示性能测试的过程;案例2则侧重于性能测试的分析和设计,展示了一个完全没有使用商业测试工具进行测试的大型性能测试案例;案例3结合Loadrunner的使用进行了详细的性能测试描述;案例4则展示了如何通过性能测试达成选型的目的。本篇的4个案例各自独立,读者可以按照编排的顺序进行阅读,也可任意选择感兴趣的案例进行阅读。“工具篇”包含了目前性能测试领域应用最广泛的商业工具 LoadRunner和开源工具 JMeter,读者可以根据自己的需要选择学习。对于希望快速上手的读者, Loadrunner工具的学习曲线更平缓,但对于希望获得一款可以很方便地进行定制和控制的开源测试工具的读者, JMeter可能更适合要求“附录”的内容可以作为读者的参考手册,本篇提供的性能测试模板和用于性能测试的脚本可以直接或是稍加修改后在读者的项目中发挥作用。读者对象本书是为对性能测试感兴趣的测试工程师、测试经理,或希望了解性能测试的技术人员准备的,特别适合以下读者希望了解软件性能测试的具体方法和过程的测试工程师。希望寻找一种能够立即用于指导性能测试的过程方法的测试经理。已有一定的性能测试经验,但希望验证自己工作方法正确性的测试工程师或测试经理。希望从别人的经验中学习的性能测试工程师希望全面了解性能测试的其他人员。本书作者本书作者目前就职于乐元素游戏(htp:/ ww. happyelements.cn)公司,任前言VII·该公司的技术副总裁一职,曾在 Google中国有近4年的测试团队管理经验。乐元素游戏是一家以 social game的开发和发布为主业的互联网公司,目前是facebook上最大的亚洲游戏开发商。作者本人有过多个行业的经验,目前的兴趣在于互联网技术、高效率的软件开发、敏捷开发、各种测试技术以及软件领域的新技术。参考资料在写作过程中,参考了不少前人的成果和已有的测试书籍,具体的参考信息请参见书后的参考文献。另外,书中给出的脚本、模板等信息,以及本书的勘误和更新信息都可以从本书的网站上直接获得,读者可以访问htt:/www.guanheshan.com/ebook2下载习题集、部分脚本和其他资料。致谢软件性能测试并不是一个简单的课题,其内容贯穿软件开发、软件测试和软件系统知识等领域,并且,软件性能测试的技术也会随着软件架构、软件开发的变化而不断发展,任何人甚至是任何团体都很难写出一本能够完全涵盖软件性能测试的书籍。本书的很多内容都建立在前人的研究成果的基础上,因此在本书完成之际,对那些为本书提供了基础的前人表示衷心的感谢,没有这些研究成果,就不会有本书的出现。写作本书耗费的时间和精力超出想象,在本书出版之际,感谢所有为本书的写作提供帮助的人员:为本书提供宝贵建议的相识或不相识的朋友们;慷慨地花费个人时间阅读本书初稿并给出意见的朋友和同事;持续追问我进度,让我不敢偷懒的读者们……另外,我的学员们也在课程期间为我提供了不少宝贵的经验和教训,所有这些经验和教训都为本书增色不少。清华大学出版社的钟志芳编辑是我最希望感谢的人,她出色的编辑经验、她的耐心和宽容是本书得以完成和出版的重要原因。最后但最重要的是,真诚地感谢我的家人。在本书的写作过程中,我的妻子周小莉和儿子段楫舟给了我巨大的支持。虽然他们并不理解软件测试,但直对我所从事工作的意义深信不疑。六岁的儿子等待我完成这件“有意义的事情”的耐心让我感激不已段念
用户评论