《精通软件性能测试与loadrunner实战32744.docx》由会员分享,可在线阅读,更多相关《精通软件性能测试与loadrunner实战32744.docx(144页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、最新版LoadRunner性能测试实战内容介绍:很多使用LoaadRunnner的测试试人员经常面面临两个难题题:脚本开发发与性能测试试分析。本书书就是基于帮帮助测试人员员解决这两个个问题而编写写,致力于使使读者学精LLoadRuunnnerr这一强大的的性能测试工工具。全书共共分为四部分分:入门篇、基基础篇、探索索篇、实战篇篇。第一篇入入门篇的内容容包括第1章章和第2章,着着重于讲解性性能测试与LLoadRuunner的的基础理论知知识。第二篇篇基础篇的内内容包括第33章至第5章章,是LoaadRunnner的基本本使用部分,着着重讲解Viirtuall Userr Geneeratorr、
2、Conttrolleer、Anaalysiss的使用方法法。第三篇探探索篇的.第1部分 入入门篇. 1第1章 性能能测试基础知知识. 331.1 性能能测试基本概概念. 41.1.1 什么是性能能测试. 41.1.2 性能测试应应用领域. 61.1.3 性能测试常常见术语. 81.2 全面面性能测试模模型. 111.2.1 性能测试策策略模型. 141.2.2 性能测试用用例模型. 171.2.3 模型的使用用方法. 201.3 性能能测试调整基基础. 211.4 如何何做好性能测测试. 241.5 本章章小结. 28第2章 LooadRunnner基础础知识. 292.1 LooadRunn
3、ner简介介. 2292.1.1 LoadRRunnerr主要特点. 2992.1.2 LoadRRunnerr常用术语. 3112.2 LooadRunnner工作作原理. 322.3 LooadRunnner测试试流程. 332.4 LooadRunnner的部部署与安装. 3552.5 本章章小结. 41第2部分 基基础篇. 43第3章 脚本本的录制与开开发. 4453.1 Viirtuall Userr Geneeratorr简介. 453.1.1 VuGenn录制原理. 4663.1.2 VuGenn功能简介. 4883.1.3 如何选择协协议. 493.2 VuuGen录制制功能详
4、解. 5003.2.1 录制参数设设置. 503.2.2 脚本录制与与创建事务. 5773.2.3 回放与调试试脚本. 613.2.4 脚本录制的的基本原则. 6333.3 修改改虚拟用户脚脚本. 643.3.1 参数化功能能. 6643.3.2 深入集合点点. 7713.3.3 巧用检查点点. 7723.3.4 关联. 783.4 配置置虚拟用户脚脚本. 803.5 两个个常用函数介介绍. 843.6 本章章小结. 86第4章 场景景的创建与执执行. 8874.1 Coontrolller简介介. 8874.2 场景景类型介绍. 8884.2.1 手动测试场场景. 884.2.2 面向目标的
5、的测试场景. 9004.3 测试试场景设计. 9334.3.1 配置测试脚脚本. 934.3.2 配置Genneratoor 944.3.3 配置Schhedulee. 954.3.4 集合点配置置. 9994.3.5 IP Sppooferr配置. 1004.3.6 其他设置场场景. 1064.4 执行行测试场景. 10084.4.1 启动测试场场景. 1084.4.2 控制用户与与用户组. 10884.4.3 查看场景与与用户状态. 10094.4.4 控制集合点点. 11104.4.5 查看运行数数据图. 1104.5 监控控系统资源. 11114.5.1 监控Winndows系系统资源
6、. 11224.5.2 监控Linnux/Unnix系统资资源. 1144.6 本章章小结. 121第5章 性能能测试结果分分析. 11235.1 如何何分析性能测测试结果. 12445.1.1 性能分析基基础知识. 12555.1.2 Analyysis使用用基础. 1275.1.3 一个视频网网站例子. 13555.2 如何何从分析图中中发现问题. 14485.2.1 虚拟用户图图. 11485.2.2 事务图. 15115.2.3 Web资源源图. 1605.2.4 网页细分图图. 11665.2.5 小结. 1795.3 分析析图的处理方方法. 1795.3.1 修改默认配配置. 18
7、05.3.2 合并分析图图. 11875.3.3 自动关联. 18885.3.4 场景运行比比较. 1915.4 Annalysiis分析报告告. 11935.4.1 事务活动报报告(Acttivityy Repoorts). 19935.4.2 事务性能报报告(Perrformaance RReportts). 1965.4.3 HTML与与Word报报告. 1995.5 本章章小结. 206第3部分 探探索篇. 2009第6章 用VVisuall C+增增强虚拟用户户. 21116.1 认识识LoadRRunnerr动态链接库库的调用功能能. 22116.1.1 动态链接库库调用功能简简介
8、. 2116.1.2 动态链接库库调用功能适适用范围. 21226.2 创建建与调用动态态链接库. 21226.2.1 用Visuual C+创建Dlll 21226.2.2 Dll调用用方法. 2156.2.3 载入头文件件方法. 2176.2.4 Dll调用用需注意的问问题. 2206.3 UDDP发包应用用案例. 2226.3.1 测试内容简简介. 2226.3.2 测试程序设设计. 2226.3.3 虚拟用户脚脚本. 2236.3.4 测试场景设设置. 2246.3.5 测试结果分分析. 2256.4 本章章小结. 226第7章 深入入Java虚虚拟用户. 2277.1 认识识Java
9、虚虚拟用户. 22777.1.1 Java虚虚拟用户协议议. 22277.1.2 Java虚虚拟用户适用用范围. 2307.1.3 脚本开发环环境配置. 23117.2 Jaava脚本开开发基础. 23447.2.1 Java虚虚拟用户开发发基础. 2347.2.2 LoadRRunnerr的Javaa API. 2437.3 Jaava算法测测试案例. 24557.4 本章章小结. 260第8章 深入入.NET虚虚拟用户. 2618.1 认识识.NET虚虚拟用户. 26118.1.1 .NET虚虚拟用户适用用范围. 2618.1.2 安装与配置置.NET插插件. 2628.2 创建建.NET
10、虚虚拟用户. 26448.2.1 创建虚拟用用户项目. 26448.2.2 参数、集合合点、事务. 26668.3 网站站视频性能测测试应用案例例. 22718.3.1 创建自定义义的播放器类类. 22728.3.2 创建抽象虚虚拟用户类. 27768.3.3 创建抽象并并发测试类. 28828.3.4 创建自定义义虚拟用户脚脚本. 2848.3.5 创建LoaadRunnner .NNET虚拟用用户. 2878.3.6 案例总结. 29908.4 本章章小结. 290第9章 LooadRunnner特殊殊协议应用. 29119.1 Wiindowss Sockkets协议议应用. 2919.
11、1.1 录制Winndows Sockeets协议脚脚本. 2929.1.2 增强Winndows Sockeets协议脚脚本. 2949.2 WAAP协议应用用. 22989.3 Weeb Serrvicess协议应用. 30029.3.1 Web SServicces协议简简介. 3029.3.2 录制Webb Servvices协协议脚本. 30339.4 FTTP协议应用用. 33129.5 本章章小结. 317第4部分 实实战篇. 3119第10章 电电子商务平台台测试案例. 321110.1 GGBE测试项项目简介. 321110.1.1 项目背景景信息. 32110.1.2 系统
12、功能能简介. 32210.1.3 项目测试试计划. 32310.2 性性能测试规划划与设计. 323310.2.1 性能测试试的种类、范范围、目标. 322410.2.2 人力资源源、进度安排排. 332510.2.3 测试环境境需求. 32510.2.4 选择测试试工具. 32710.2.5 用户场景景分析与设计计. 332810.2.6 性能测试试计划. 33310.2.7 测试用例例设计. 33410.2.8 其他事项项. 334110.3 性性能测试准备备. 334110.3.1 测试环境境. 334110.3.2 系统使用用培训. 34210.3.3 测试数据据. 334310.3.
13、4 虚拟用户户脚本. 34610.4 测测试的实施与与控制. 34910.4.1 设计测试试用例场景. 344910.4.2 执行测试试用例场景. 355110.4.3 进度与变变更控制. 359910.5 测测试结论与建建议. 36010.5.1 测试结果果综述. 360010.5.2 系统性能能优化建议. 336110.5.3 风险分析析. 336210.6 本本章小结. 3622附录A LooadRunnner性能能测试常见问问题. 3365附录B LooadRunnner性能能测试模板. 3733B.1 性能能测试计划模模板. 373B.1.1 项项目背景简介介. 3373B.1.2
14、测测试方案简介介. 3373B.1.3 测测试环境与资资源. 373B.1.4 项项目里程碑. 3774B.1.5 技技能培训计划划. 3374B.1.6 风风险分析. 3744B.1.7 计计划结束标准准. 3374B.2 性能能测试用例模模板. 374B.2.1文档档介绍. 374B.2.2 测试需求分分析. 375B.2.3 性性能测试用例例. 3375B.3 性能能测试报告模模板. 380B.3.1 基基本信息. 3800B.3.2 测测试环境描述述. 3381B.3.3 性性能测试用例例执行分析. 3881B.3.4 测测试结果综合合分析及建议议. 3381B.3.5 测测试经验总结
15、结. 3381后 记. 383前言 在作者的另一作作品Webb性能测试实实战中,曾曾经提到过“软软件亚健康”这这个概念。现现在,亚健康康不但威胁着着IT人的生生活质量,也也威胁很多应应用软件的性性能。为此,在在Web性性能测试实战战一书中,作作者提出了“全全面性能测试试模型”,期期望能够成为为解决软件亚亚健康问题的的一剂“良药药”。“全面性能测试试模型”包含含了测试策略略制定、测试试用例设计、模模型使用方法法三部分内容容,基本覆盖盖了性能测试试规划和设计计的相关内容容,为开展性性能测试提供供了一种可行行的方案。借借助本模型,软软件开发和测测试人员可以以更好的组织织与规划性能能测试,避免免在项目
16、后期期遭遇性能问问题的被动局局面。不过要想做好性性能测试,仅仅有性能测试试模型还是远远远不够的,因因为还缺少像像LoadRRunnerr这样令性能能测试工作如如虎添翼的性性能测试利器器。本书将和和读者一起深深入LoaddRunneer的性能测测试世界,探探讨在企业的的性能测试项项目中如何应应用它来发现现应用系统存存在的性能问问题。LoadRunnner在性性能测试中的的地位对于很多使用LLoadRuunner的的测试人员而而言,性能测测试工作中最最大的障碍就就是测试脚本本开发与测试试结果分析,这这导致很多测测试人员忽略略了测试规划划与设计的重重要性,反而而认为能开发发测试脚本、运运行测试场景景
17、、分析测试试结果就算做做好性能测试试了。要想做好性能测测试,首先应应该把重心放放在测试的规规划与设计上上,尤其要注注重测试用例例的设计,仅仅仅能写测试试程序与运行行测试脚本是是远远不够的的。诸如LooadRunnner等测测试工具仅仅仅是性能测试试的执行与分分析工具,它它们应该服从从于测试设计计人员的意志志。测试工具具的使用属于于测试人员的的基本功,应应该在开展性性能测试工作作前修炼好。只只有好的测试试用例或者测测试场景才能能发现系统的的问题,这才才是性能测试试的本质所在在。性能测试分析同同样依赖于前前面工作的输输出结果,不不是随便一个个测试结果就就能发现问题题的。所谓“万万丈高楼平地地起”,
18、性能能分析的准确确性同样取决决于此前所做做的设计与实实施等“地基基”是否可靠靠。可以说,性性能测试分析析仅仅是百米米赛跑的最后后二十米而已已。当然,这这并不是说性性能测试分析析不重要,因因为“最后冲冲刺的二十米米没有跑好”,前前面工作做的的再好也是徒徒劳的。因此此不难理解,性性能测试分析析工作开展的的根基就是前前面测试场景景执行的结果果。要想保证证性能测试分分析的结论是是正确的,则则测试结果数数据首先就应应该是正确的的,而这也意意味着测试场场景以及测试试执行过程都都应该是正确确的。实际上,性能测测试从始至终终都应该是相相当严谨的一一项工程,各各个阶段的工工作环环相扣扣,性能测试试工程师应该该认
19、真对待各各个阶段的工工作。如果一一味地追求找找出系统瓶颈颈,无疑是舍舍本逐末的做做法。因此,在性能测测试工作中首首先要做好性性能测试的规规划与设计工工作,然后再再借助LoaadRunnner的强大大功能来发现现系统存在的的问题。如何通过本书学学习LoaddRunneer首先应该弄清楚楚学习LoaadRunnner的目的的,那就是在在项目的性能能测试中应用用LoadRRunnerr来发现系统统的性能问题题。因此,仅仅仅会用LooadRunnner还远远远不够,这这也是为什么么很多培训班班出来的学员员虽然把工具具用的非常熟熟练,但是仍仍然不能做好好性能测试工工作。学好LoadRRunnerr的标准
20、是真真正能够把LLoadRuunner应应用到实际项项目中去,这这就要求学习习LoadRRunnerr的同时一定定要学好性能能测试相关知知识。本书的的第1章即为为基本的性能能测试知识,读读者需要认真真体会这些内内容,建议在在学习后面的的内容时,经经常翻阅本章章的内容。如如果要学习更更多的性能测测试规划与设设计的知识以以及性能测试试案例,建议议读者参考本本书的姊妹篇篇Web性性能测试实战战。本书的第2章是是LoadRRunnerr的简介部分分,读者需要要通过本章了了解LoaddRunneer的工作原原理、测试流流程、部署与与安装等内容容,尤其要掌掌握图2-11所示的LooadRunnner工作作
21、原理,这是是用LoaddRunneer开展工作作的基础。本书的第3章、第第4章、第55章分别讲解解了LoaddRunneer的Virrtual User Generrator、CControoller、AAnalyssis。这三三大组件分别别负责脚本的的录制与开发发、场景的创创建与执行、测测试结果分析析工作。用LLoadRuunner来来开展性能测测试,必须要要掌握这三大大组件的使用用。如果连基基本的工具都都没有用好,很很难正确地执执行设计好的的测试用例,更更不用说根据据结果来分析析系统的瓶颈颈了。在第335章中,详详细探讨了LLoadRuunner各各个组件的使使用细节,但但是这还远远远不够
22、,尤其其对于那些只只会录制或者者简单修改录录制结果的测测试人员!学学习这三章的的内容时,最最好的方法是是结合LoaadRunnner的联机机帮助文档,这这样可以学习习到更多的内内容。学习完第355章后,可能能还有一些读读者会问:“我我还是不会自自己写测试脚脚本,很多协协议仍然不能能进行测试怎怎么办?”碰碰到这种情况况就需要补习习自己的开发发知识了。开发知识应该分分两个方面来来学习:一是是面向对象基基础知识的学学习,二是开开发语言的学学习。很多人人可能会认为为面向对象基基础知识比较较通用,相对对容易学习;而开发语言言种类繁多,不不知道如何入入手。根据作作者的经验,这这两个方面应应该结合起来来进行
23、:面向向对象是现在在主流开发语语言的灵魂,一一起学习可以以互相促进。具具体做法就是是选择C+、Javaa、C#等一一种主流语言言来学习,只只要这门语言言是自己所在在公司的主流流语言即可。当当学会面向对对象基础和一一门语言后,再再去学习其它它的语言将会会非常容易。具有一定的开发发能力后,就就可以开始本本书探索篇第第69章的的学习。这四四章是LoaadRunnner的探索索篇,讲解了了在LoaddRunneer中如何应应用C+、JJava、CC#语言进行行开发以及一一些特殊的脚脚本协议。相信通过前面99章的学习,读读者已经掌握握LoadRRunnerr的精髓了。不不过本书不是是一本“LooadRu
24、nnner使用用百科大全”,接接下来就需要要读者自己不不断地应用与与探索LoaadRunnner了,逐逐步完成成为为一个LoaadRunnner高手的的蜕变过程。如何学习本书的的性能测试案案例本书在第10章章中,花了很很大的篇幅介介绍了一个电电子商务平台台的性能测试试案例,目的的不是为了介介绍如何测试试电子商务系系统,而是让让读者在掌握握前面技能的的基础上,更更加深入地体体会在项目中中如何通过LLoadRuunner来来实施性能测测试。因此,案案例的业务并并不重要,读读者也没有必必要深究具体体的细节。通通过本案例,能能清晰地了解解了能测试的的整个过程就就已经达到了了目的。本书案例的学习习重点在
25、以下下几个方面:l 借助案例例体会“全面面性能测试模模型”在GBBE项目中的的应用;l 学习性能能测试规划与与设计中的需需求分析过程程,例如测试试环境需求、人人力资源;l 学习性能能测试规划与与设计中的测测试场景分析析与设计、测测试用例设计计;l 学习如何何做好性能测测试实施前的的准备工作;l 测试执行行过程的进度度与变更控制制;l 一些分析析性能问题的的过程。关于性能测试案案例更多的内内容,读者可可以阅读WWeb性能测测试实战中中的案例部分分。关于本书本书的主旨在于于让读者学会会LoadRRunnerr的应用,并并能在此基础础上自行探索索性能测试世世界。本书共分为四部部分:入门篇篇、基础篇、
26、探探索篇、实战战篇。第一部分:入门门篇,包括第第1章和第22章,着重于于讲解性能测测试与LoaadRunnner的基础础理论知识。在在第1章中,讲讲解了性能测测试基本概念念、全面性能能测试模型、性性能测试调整整等基础的性性能测试理论论知识;第22章则介绍了了LoadRRunnerr的特点与术术语、工作原原理、测试流流程、部署与与安装等内容容。第二部分:基础础篇,包括第第3章至第55章,着重讲讲解LoaddRunneer三大组件件的使用,是是LoadRRunnerr的基本使用用部分。在第第3章中,主主要讲解如何何在Virttual UUser GGeneraator中完完成代码的录录制与开发;第
27、4章讲解解如何在Coontrolller中创创建与执行场场景;第5章章中讲解如何何结合Anaalysiss来分析性能能测试结果。第三部分:探索索篇,包括第第6章至第99章,着重讲讲解LoaddRunneer的高级应应用。第6章章讲解如何用用Visuaal C+来增强虚拟拟用户;第77章深入探索索了Javaa虚拟用户;第8章深入入探索了.NNET虚拟用用户;第9章章则讲解了SSockett虚拟用户的的相关知识。第四部分:实战战篇,即第110章,结合合案例来讲解解在具体项目目中如何应用用LoadRRunnerr来完成性能能测试工作。在在第10章中中,通过真实实的性能测试试实例,向读读者展示了如如何
28、在项目中中完成性能测测试的整体规规划与设计、测测试的准备与与实施、测试试结果分析等等工作。致谢感谢广大读者对对Web性性能测试实战战一书的支支持,读者的的支持是作者者写作的真正正动力。正是是一年来因为为大家对WWeb性能测测试实战的的肯定才促使使我完成本书书的写作工作作;感谢博文视点周周筠老师对本本书的支持,周周老师对我这这个新人一直直给予很大的的鼓励;感谢电子工业出出版社博文视视点资讯有限限公司的陈元元玉编辑,她她是本书的责责任编辑;感谢师兄王玉亭亭,他再次为为本书提供了了很多素材;感谢同事关晓培培、周雪松、李李熠,他们为为本书提供了了很多素材;感谢电子工业出出版社为本书书辛勤付出的的所有朋
29、友们们;特别感谢夫人小小姬,她通篇篇审校了本书书并润色了那那些难于理解解的句子,特特别是她对我我在公司的日日常工作和编编写工作的支支持,因为本本书占据了大大量可以陪她她的时间;最后要感谢自己己的父母和老老师,能写出出本书是父母母和老师多年年教育的结果果。软件在性能方面面的“亚健康康”问题一直直伴随着国内内很多企业的的软件产品而而存在。早期期由于多数软软件应用系统统在企业中得得不到有效的的推广应用,因因此用户往往往会忽略自己己在性能方面面的需求。而而现在软件几几乎渗透到人人们工作与生生活的各个方方面,因而软软件的性能开开始得到越来来越多的重视视。随着软件工程技技术、软件开开发方法和软软件开发工具
30、具的发展,一一方面使人们们可以快速开开发更加复杂杂的应用,另另一方面也使使开发出的软软件规模越来来越庞大,架架构越来越复复杂。随之而而来的是软件件性能问题也也越来越多,最最终导致很多多软件系统由由于性能方面面存在问题而而停止使用,给给软件公司以以及客户都带带来了一定的的损失。因此此,解决软件件性能问题是是十分必要的的一项工作中中,对于企业业自身以及客客户都具有重重要的现实意意义。在绍英的上一本本著作Weeb性能测试试实战中,为为接近软件性性能问题提出出了“全面性性能测试模型型”,以期成成为解决软件件亚健康问题题的一剂良药药。“全面性性能测试模型型”包含了性性能测试策略略制定、测试试用例设计、模
31、模型使用方法法三部分内容容,覆盖了性性能测试规划划和设计的相相关内容,为为开展性能测测试工作提供供了一种可行行的方案。但但是仅有理论论是不够的,对对于性能测试试工作而言,不不但需要好的的性能测试理理论作为工作作指导,更需需要掌握好的的性能测试工工具,因此本本书的几位作作者共同创作作了LoaadRunnner性能测测试实战一一书。LoadRunnner是目目前国内性能能测试领域应应用最广泛的的工具之一,它它可以通过模模拟成千上万万的用户,很很快地帮助用用户确认和查查找性能问题题。但是国内内图书市场上上却没有任何何相关书籍,LLoadRuunner性性能测试实战战填补了这这个空白。LoadRuun
32、ner性性能测试实战战是非常注注重实际应用用的作品。书书中详细描述述了LoaddRunneer在性能测测试领域诸多多方面的应用用,并结合具具体的案例来来说明如何应应用Webb性能测试实实战一书中中提到的“全全面性能测试试模型”。强强大的性能测测试工具加上上合理的理论论来指导,将将为读者打开开很多新的思思路。本书是由三位作作者共同完成成的。绍英有有流媒体、PP2P、电子子政务、银行行、门户网站站等领域应用用软件的性能能测试经验,在在LoadRRunnerr方面更有五五年以上的使使用经验。他他曾到很多公公司去推广自自己的性能测测试模型以及及讲解LoaadRunnner课程,对对企业在软件件测试方面
33、的的需求非常熟熟悉;建华是是在读研究生生,因此有充充裕的时间来来研究LoaadRunnner的特殊殊应用;小姬姬在性能测试试方面也有着着丰富的经验验。相信他们们的这些实践践经验是很多多测试人员急急需的。本书对国内软件件企业提高性性能测试水平平是很有价值值的。我很高高兴能为这本本实战性非常常强的作品做做序,预祝LLoadRuunner性性能测试实战战早日出版版。也希望国国内有更多的的人来关注软软件性能测试试,探讨解决决软件亚健康康问题的方法法!北京大学软件与与微电子学院院副教授北京市软件促进进中心专家顾顾问 黎黎怡兰(Meelody Le)1.1 性能测试基本概概念在一些软件项目目中,项目经经理
34、或测试经经理经常会安安排测试工程程师进行下面面的工作:l 用LoaadRunnner测试系系统的最大并并发用户数。l 用LoaadRunnner测试系系统8小时的的最大业务吞吞吐量。l 用LoaadRunnner测试系系统的稳定性性与健壮性。l 用LoaadRunnner测试系系统在数据达达到100万万条记录时的的性能。l 用LoaadRunnner测试核核心事务响应应时间是否满满足用户的需需求。可以说,现在很很多IT企业业的性能测试试工作已经离离不开LoaadRunnner了。不不过,尽管使使用了LoaadRunnner这一强强大的工具,很很多企业软件件产品遇到的的性能问题仍仍未能解决因为仅
35、有有好的测试工工具是不够的的。除了比较较实用的测试试工具外,要要想做好性能能测试还应该该掌握相关的的理论知识。只只有以坚实的的理论作为实实际工作的依依托,才能让让测试工具发发挥出应有的的功效。本章将介绍一些些性能测试的的基础知识,主主要内容如下下:n 性能测试试基本概念n 全面性能能测试模型n 性能测试试调整基础n 如何做好好性能测试提示:关于性能能测试理论的的更多内容,可可以参考作者者性能测试方方面的专著WWeb性能测测试实战,电电子工业出版版社,20006年5月出出版。1.1 性能能测试基本概概念在软件系统日益益复杂的今天天,性能已经经成为软件质质量重要的衡衡量标准之一一,这一点尤尤其体现
36、在和和Web相关关的系统上。软软件几乎无处处不在,在给给用户带来方方便的同时,也也对开发人员员和测试人员员提出了更高高的要求。性性能测试不但但要求测试人人员具备很强强的技术能力力,还要具备备综合分析问问题的能力。本本节从性能测测试的概念入入手,强化性性能测试的基基础知识。1.1.1 什么是性能能测试目前很少能见到到性能测试的的准确定义,但但是性能测试试又似乎是涉涉及范围非常常广泛的测试试。压力测试试、负载测试试、强度测试试、稳定性测测试、健壮性性测试、大数数据量测试都和性能能测试有着密密切的关系。在本书中,主要要从狭义和广广义两方面来来讨论性能测测试。狭义的性能测试试主要用于描描述常规的性性能
37、测试,是是指通过模拟拟生产运行的的业务压力或或用户使用场场景来测试系系统的性能是是否满足生产产性能的要求求。例如,以实际投投产环境进行行测试,来求求出最大的吞吞吐量与最佳佳响应时间,以以保证上线的的平稳、安全全等。性能测测试是一种“正正常”的测试试,主要测试试正常使用时时系统是否满满足要求,同同时可能为了了保留系统的的扩展空间而而进行的一些些稍稍超出“正正常”范围的的测试。广义的性能测试试则是压力测测试、负载测测试、强度测测试、并发(用用户)测试、大大数据量测试试、配置测试试、可靠性测测试等和性能能相关的测试试统称。下面面分别介绍各各类测试的主主要内容和特特点。压力测试对系统不断施加加压力的测
38、试试,是通过确确定一个系统统的瓶颈或不不能接收用户户请求的性能能点,来获得得系统能提供供的最大服务务级别的测试试。例如测试试一个Webb站点在大量量的负荷下,系系统的事务响响应时间何时时会变得不可可接受或事务务不能正常执执行。压力测试的目的的是发现在什什么条件下系系统的性能变变得不可接受受,并通过对对应用程序施施加越来越大大的负载,直直到发现应用用程序性能下下降的拐点。压压力测试和负负载测试有些些类似,但是是通常把负载载测试描述成成一种特定类类型的压力测测试例如如增加用户数数量或延长压压力时间以对对应用程序进进行压力测试试。负载测试对系统不断地增增加压力或增增加一定压力力下的持续时时间,直到系
39、系统的一些性性能指标达到到极限,例如如响应时间超超过预定指标标或某种资源源已经达到饱饱和状态。这这种测试可以以找到系统的的处理极限,为为系统调优提提供依据。压力测试侧重压压力大小,而而负载测试往往往强调压力力持续的时间间。在实际工工作中,没有有必要严格区区分这两个概概念,有关内内容可以参见见后面1.22节的“全面面性能测试模模型”。强度测试强度测试主要是是为了检查程程序对异常情情况的抵抗能能力。强度测测试总是迫使使系统在异常常的资源配置置下运行。例例如:l 当正常的的用户点击率率为“10000次/秒”时时,运行点击击率为“20000次/秒秒”的测试用用例;l 运行需要要最大存储空空间(或其他他
40、资源)的测测试用例;l 运行可能能导致操作系系统崩溃或磁磁盘数据剧烈烈抖动的测试试用例,等等等。强度测试是一种种特别重要的的测试,对测测试系统的稳稳定性,以及及系统未来的的扩展空间均均具有重要的的意义。在这这种异常条件件下进行的测测试,更容易易发现系统是是否稳定以及及性能方面是是否容易扩展展。疲劳强度测试是是一类特殊的的强度测试,主主要测试系统统长时间运行行后的性能表表现,例如7724小时时的压力测试试。并发(用户)测测试主要指当测试多多个用户并同同时访问同一一个应用程序序、同一个模模块或数据记记录时是否存存在死锁或其其他性能问题题,几乎所有有的性能测试试都会涉及并并发测试。在在具体的性能能测
41、试工作中中,并发用户户往往都是借借助工具来进进行模拟的,LLoadRuunner中中称之为并发发虚拟用户。大数据量测试大数据量测试分分为两种:一一种是针对某某些系统存储储、传输、统统计查询等业业务进行大数数据量的测试试;另一种是是与并发测试试相结合的极极限状态下的的综合数据测测试。如专项项的大数据量量测试主要针针对前者,后后者尽量放在在并发测试中中。此外,也也可以把大数数据量测试分分为“运行时时大数据量测测试”与“历历史大数据量量测试”来进进行测试用例例设计。配置测试配置测试主要指指通过测试找找到系统各项项资源的最优优分配原则。配配置测试是系系统调优的重重要依据。例例如,可以通通过不停地调调整
42、Oraccle的内存存参数来进行行测试,使之之达到一个较较好的性能。可以看出,配置置测试本质上上是前面提到到的某些种类类的性能测试试组合在一起起而进行的测测试。可靠性测试在给系统加载一一定业务压力力的情况下,使使系统运行一一段时间,以以此检测系统统是否稳定。例例如,可以施施加让CPUU资源保持770%900%使用率的的压力,连续续对系统加压压8个小时,然然后根据结果果分析系统是是否稳定。这么多类型的性性能测试看起起来很吓人,实实际上它们大大多是密切相相关的。例如如,运行8个个小时来测试试系统是否可可靠,而这个个测试极有可可能包含了可可靠性测试、强强度测试、并并发(用户)测测试、负载测测试,等等
43、。因此,当实施性性能测试时绝绝不能割裂它它们的内部联联系去进行,而而应分析它们们之间的关系系,以一种高高效的方式来来规划与设计计性能测试。为为此,本书在在1.2节提提出了“全面面性能测试模模型”,以更更好的方式来来开展性能测测试工作。1.1.2 性能测试应应用领域性能测试往往是是为了实现下下面的一个或或几个目标:l 判定软件件是否满足预预期的性能需需求;l 根据测试试结果判定软软件的性能表表现;l 查找系统统可能存在的的性能问题,如如果有,则找找出并加以解解决;l 发现一些些应用程序在在功能实现方方面的缺陷;l 对一些存存在性能问题题的系统,找找出瓶颈并加加以解决;l 为用户部部署系统提供供性能参考;l 通过分析性能测测试的种种目目标,不难总总结出性能测测试主要应用用在几个领域域中,下面分分别予以介绍绍。系统的性能瓶颈颈定位系统的性能瓶颈颈定位是性能能测试最常见见的应用领域域。借助LooadRunnner等工工具,可以在在测试场景运运行过程中监监控系统资源源、Web服服务器资源等等运行数据,与与响应时间进进行同步分析析,