本书是一本来自性能测试实战领域的专家作品,主要用来指导性能测试人员规划、设计、实施性能测
试。书中深入探讨了性能测试的基础理论与实施方法,并针对大型IT 系统的性能测试提出了“全面性能测试方案”,为性能测试规划与设计提供了全新的思路和方法。
本书通过真实的项目案例讲解性能测试基础理论的应用方法,向读者展示了如何在项目中管理与实施
性能测试,并深入探讨了如何根据测试结果来分析与定位系统性能瓶颈。
性能测试实战领域的专家作品,十年经典再度崭新回归!
针对大型IT 系统的性能测试提出了“全面性能测试方案”!
彻底改善软件的亚健康状况!
前 言
从前我们很少看到“软件亚健康”或“亚健康软件”这样的概念,之所以提出这个概
念,是因为现在亚健康不但威胁着IT 人的生活质量,也威胁很多应用系统的性能。
伴随着IT 行业的高速发展,软件开发方法也越来越先进,实现的功能也越来越强大,
应用软件几乎涉及了国计民生的各个领域。而与之相反的是,这些应用系统的整体性能却
越来越低,尤其是一些涉及多用户并发的大型应用系统。因此,近几年软件性能测试工作
显得越来越重要,各种性能测试工具也应需而生。“软件亚健康”和“亚健康软件”概念就
是在这种背景下提出的。
“软件亚健康”绝非危言耸听。作者曾亲身经历了多个由于性能不合格而终止上线的项
目,其中一个项目曾是某国外公司为国内某大型银行开发的一套“银行信用卡申请审批系
统”,此系统历经用户三次测试,每次均以数据库服务器崩溃而告终,最后银行只好忍痛让
此公司出局。
本书以大型IT 系统作为背景来研究性能测试的规划与设计、管理与实施方法,探讨如
何通过规范的性能测试来解决IT 系统的亚健康问题。
下面先从“亚健康软件”开始本书的讨论。
亚健康IT 人与亚健康软件
亚健康IT 人定义:记得2005 年8 月的某一天,作者和几位测试同行一起爬了次香山,
结果第二天几个人累得几乎下不了床,一个星期之后,才觉得走路时的腿是自己的。无疑
我们这几个人的身体都已进入“亚健康”状态。当时躺在床上忽然想到亚健康IT 人就是“爬
了一次香山需要休息一个星期才能恢复正常的从事IT 行业的人”。
类似也可以做如下的定义:
超级健康IT 人——爬了一次香山之后没有什么感觉的IT 人,这类人应该属于具有运
?? XII ??
动员素质的IT 人。
健康IT 人——爬了一次香山之后休息一两天就恢复正常的IT 人。
不健康IT 人——爬了一次香山之后需要休息一个月甚至更长时间的人。
在软件领域中,判定软件性能高低的依据是其满足用户性能需求的程度以及是否存在
一定的扩展空间,所以评价软件性能不要脱离具体用户背景,用户的性能需求与软件是否
健康有着很大的关系,这一点与人的健康分类是有很大的区别的。例如对于电子政务系统,
可以认为速度达到“自行车的性能”就是健康的,而银行或者电信的应用系统,速度至少
要达到“飞机的性能”才是健康的。
与四类IT 人的健康分类相对应,软件也可按其性能高低划分为四类。
超级健康软件——UNIX 是“超级健康软件”的典型,“体魄”像运动员一样,非常“抗
折腾”。
健康软件——性能稳定,可以满足用户现在以及将来一定时期内的扩展需求。例如我
们日常用到的数据库管理系统。
亚健康软件——软件性能很一般,就像亚健康IT 人正常上下班一样,能满足使用要求,
但是扩展性、稳定性都很一般,只要环境发生变化,极有可能成为“不健康软件”。
不健康软件——性能很差,甚至存在严重性能问题的软件。
毫无疑问,开发人员应以做出超级健康或健康的软件为目标。但是现实恰恰相反,就
像很多IT 人都处于亚健康状态一样,超级健康和健康软件的比例很低,多数软件都存在性
能问题。
亚健康软件是大多数公司赶进度和压缩成本的产物,也是本书讨论的重点。亚健康软
件的例子很多:下面是某电子政务系统进行并发测试时,5 个用户与50 个用户的一些事务
对比测试结果。
某OA 系统不同用户并发的响应时间对比(单位:秒)
最小值 平均值 最大值 90%用户的响应时间
事务名称
5 50 5 50 5 50 5 50
保存修改 0.183 0.164 0.193 16.591 0.204 45.247 0.2 23.465
保存新建记录 1.285 25.736 1.973 43.829 3.016 70.259 3.014 61.313
修改操作 0.026 0.024 0.03 1.63 0.043 7.522 0.04 4.143
删除公文记录 1.308 15.403 1.621 25.579 1.892 37.362 1.887 32.271
?? XIII ??
续表
最小值 平均值 最大值 90%用户的响应时间
事务名称
5 50 5 50 5 50 5 50
新建记录 0.683 8.776 1.263 20.253 1.674 30.765 1.674 28.954
查看公文 0.126 0.114 0.128 32.196 0.13 83.371 0.12 81.207
用户登录 0.472 1.088 0.509 14.912 0.576 76.929 0.572 24.072
这个电子政务系统是亚健康软件的典型。可以看出在50 个用户并发时,其响应时间是
5 个用户并发时的几十倍,甚至上百倍。这套系统倒是与我们这些IT 人很类似,平时上班
走路根本看不出什么,可是爬一爬山,是否健康就见分晓了。
本书首次针对性能测试提出了“全面性能测试方案”,和读者共同探讨如何更加有效地
诊断与治疗应用系统性能低下的“亚健康”问题。
亚健康软件良药——全面性能测试方案
不言而喻,软件亚健康问题将会越来越突出,因此我们应该尽早寻找诊断和治疗这一
问题的方法。为了达到上述目的,本书提出了“全面性能测试方案”,期望能够成为解决软
件亚健康问题的一剂“良药”。
“全面性能测试方案”包含性能测试策略制定原则、测试场景设计通用模型、五一测试
场景设计模型、全面性能测试方案使用方法四部分内容,基本覆盖了性能测试规划和设计
的相关内容,为开展系统性能测试提供了一套完整可行的方案。“全面性能测试方案”主要
特点如下。
?? 来自实践领域,适用范围广: “全面性能测试方案”是综合了大量项目的性能测
试经验而提出的性能测试模型,可以满足银行、电信、OA、互联网等诸多领域应
用系统的性能测试需要。
?? 测试工具无关性:目前性能测试工具的使用已经不再是难题,比较困难的是有了
工具去测试什么场景、如何管理与实施性能测试以及如何分析测试结果。“全面性
能测试方案”不是依赖于某一特定性能测试工具而提出的,而是一种通用的性能
测试方法,它的目标是为使用性能测试工具的人员解决上面的难题。测试人员掌
握“全面性能测试方案”后,设计和执行测试时可以选择JMeter、LoadRunner 等
任何一种性能测试工具。
?? XIV ??
?? 根据策略来裁剪测试内容:五一测试场景设计模型按照由浅入深的顺序设计,因
此可以根据测试策略进行灵活的裁剪。可以裁剪的特点使模型更加灵活,测试设
计人员可以根据实际情况选择对应的测试场景部分进行设计,简介节约了测试成
本。
对于很多项目,性能测试是一项需要大量时间和成本投入的工作,因此有了“全面性
能测试方案”,并不意味着可以杜绝亚健康软件的产生。但是建议有能力的公司,应该进行
合理的投入开发出健康的软件,否则只能经常祈祷“不要发生性能问题”!如果一旦发生严
重性能问题,将意味着更高的修复成本,防患于未然才是上策!
最后祝所有IT 人都摆脱亚健康状态,开发出超健康的软件!
配套视频
本书免费提供了作者录制的两门LoadRunner 学习视频课程:《LoadRunner 性能测试快
速入门》、《LoadRunner Controller 使用基础》,共计14 学时。
读者可以使用微信扫描下面的二维码来学习课程:
借助上面的视频课程,读者可以很容易掌握LoadRunner 这一强大性能测试工具的基础
用法,从而快速在性能测试中应用LoadRunner。
建议读者可以先学习视频中的内容,大致了解LoadRunner 性能测试的测试过程,然后
再开始学习本书的理论知识,这样更容易领悟本书的精髓,最终实现融会贯通的效果。
关于本书
本书分为三部分,包括了性能测试设计理论、实施和分析方法、性能测试实施案例等
内容。
第一部分:兵法篇,即第1、2 章。第1 章主要介绍性能测试基础理论,是做好性能测
试工作的必备知识,主要内容有性能测试简介、性能测试种类、性能测试误区、系统调整
?? XV ??
等;第2 章介绍全面性能测试方案,是全书的核心部分,主要讲解性能测试策略制定、测
试场景设计模型、测试方案使用方法等。
第二部分:战术篇,即第3、4 章。第3 章主要探讨如何在性能测试工作中设计与实施
性能测试,包含了性能测试的启动、计划、实施、控制、收尾等内容;第4 章介绍性能测
试分析的基础方法。
第三部分:技术篇,即第5、6 章。第5 章主要探讨性能测试基本的调优技术与方法;
第6 章主要讲解性能测试工具JMeter 的用法。
第四部分:实战篇,即第7、8、9 章,详细讨论了一些涉及银行、电子政务等不同领
域的性能测试案例,介绍了如何在实际中应用前面的理论。
致谢
感谢林锐博士,本书的前一版在林老师的大力推荐下得以顺利地出版;
感谢电子工业出版社的郭立、孙学瑛两位老师,她们对本书的出版提供了非常大的支
持;
感谢本书合作者周志龙、金成姬、刘蕙兰、刘建华,本书的写作过程占用了大家大量
的休息时间;
感谢电子工业出版社为本书辛勤付出的所有朋友们;
尤其要感谢夫人金成姬和宝贝女儿米菲,夫人通篇审校了本书并润色了那些难于理解
的句子,还一起和米菲提供了大量本来可以陪她们的时间来让我写作。
联系方式
相信本书在出版后会有很多读者想与我们交流,读者可以通过下面的联系方式与我们
进行沟通。