首页 LoadRunner性能测试实战.pdf

LoadRunner性能测试实战.pdf

LoadRunner性能测试实战.pdf

上传者: 2011-09-07 评分1 评论0 下载648 收藏0 阅读量1263 暂无简介 简介 举报

简介:本文档为《LoadRunner性能测试实战pdf》,可适用于专题技术领域,主题内容包含LoadRunner性能测试实战内容介绍:很多使用LoadRunner的测试人员经常面临两个难题:脚本开发与性能测试分析。本书就是基于帮助测试人员解符等。

LoadRunner性能测试实战内容介绍:很多使用LoadRunner的测试人员经常面临两个难题:脚本开发与性能测试分析。本书就是基于帮助测试人员解决这两个问题而编写致力于使读者学精LoadRunnner这一强大的性能测试工具。全书共分为四部分:入门篇、基础篇、探索篇、实战篇。第一篇入门篇的内容包括第章和第章着重于讲解性能测试与LoadRunner的基础理论知识。第二篇基础篇的内容包括第章至第章是LoadRunner的基本使用部分着重讲解VirtualUserGenerator、Controller、Analysis的使用方法。第三篇探索篇的第部分入门篇第章性能测试基础知识性能测试基本概念什么是性能测试性能测试应用领域性能测试常见术语全面性能测试模型性能测试策略模型性能测试用例模型模型的使用方法性能测试调整基础如何做好性能测试本章小结第章LoadRunner基础知识LoadRunner简介LoadRunner主要特点LoadRunner常用术语LoadRunner工作原理LoadRunner测试流程LoadRunner的部署与安装本章小结第部分基础篇第章脚本的录制与开发VirtualUserGenerator简介VuGen录制原理VuGen功能简介如何选择协议VuGen录制功能详解录制参数设置脚本录制与创建事务回放与调试脚本脚本录制的基本原则修改虚拟用户脚本参数化功能深入集合点巧用检查点关联配置虚拟用户脚本两个常用函数介绍本章小结第章场景的创建与执行Controller简介场景类型介绍手动测试场景面向目标的测试场景测试场景设计配置测试脚本配置Generator配置Schedule集合点配置IPSpoofer配置其他设置场景执行测试场景启动测试场景控制用户与用户组查看场景与用户状态控制集合点查看运行数据图监控系统资源监控Windows系统资源监控LinuxUnix系统资源本章小结第章性能测试结果分析如何分析性能测试结果性能分析基础知识Analysis使用基础一个视频网站例子如何从分析图中发现问题虚拟用户图事务图Web资源图网页细分图小结分析图的处理方法修改默认配置合并分析图自动关联场景运行比较Analysis分析报告事务活动报告(ActivityReports)事务性能报告(PerformanceReports)HTML与Word报告本章小结第部分探索篇第章用VisualC增强虚拟用户认识LoadRunner动态链接库的调用功能动态链接库调用功能简介动态链接库调用功能适用范围创建与调用动态链接库用VisualC创建DllDll调用方法载入头文件方法Dll调用需注意的问题UDP发包应用案例测试内容简介测试程序设计虚拟用户脚本测试场景设置测试结果分析本章小结第章深入Java虚拟用户认识Java虚拟用户Java虚拟用户协议Java虚拟用户适用范围脚本开发环境配置Java脚本开发基础Java虚拟用户开发基础LoadRunner的JavaAPIJava算法测试案例本章小结第章深入NET虚拟用户认识NET虚拟用户NET虚拟用户适用范围安装与配置NET插件创建NET虚拟用户创建虚拟用户项目参数、集合点、事务网站视频性能测试应用案例创建自定义的播放器类创建抽象虚拟用户类创建抽象并发测试类创建自定义虚拟用户脚本创建LoadRunnerNET虚拟用户案例总结本章小结第章LoadRunner特殊协议应用WindowsSockets协议应用录制WindowsSockets协议脚本增强WindowsSockets协议脚本WAP协议应用WebServices协议应用WebServices协议简介录制WebServices协议脚本FTP协议应用本章小结第部分实战篇第章电子商务平台测试案例GBE测试项目简介项目背景信息系统功能简介项目测试计划性能测试规划与设计性能测试的种类、范围、目标人力资源、进度安排测试环境需求选择测试工具用户场景分析与设计性能测试计划测试用例设计其他事项性能测试准备测试环境系统使用培训测试数据虚拟用户脚本测试的实施与控制设计测试用例场景执行测试用例场景进度与变更控制测试结论与建议测试结果综述系统性能优化建议风险分析本章小结附录ALoadRunner性能测试常见问题附录BLoadRunner性能测试模板B性能测试计划模板B项目背景简介B测试方案简介B测试环境与资源B项目里程碑B技能培训计划B风险分析B计划结束标准B性能测试用例模板B文档介绍B测试需求分析B性能测试用例B性能测试报告模板B基本信息B测试环境描述B性能测试用例执行分析B测试结果综合分析及建议B测试经验总结后记前言在作者的另一作品《Web性能测试实战》中曾经提到过“软件亚健康”这个概念。现在亚健康不但威胁着IT人的生活质量也威胁很多应用软件的性能。为此在《Web性能测试实战》一书中作者提出了“全面性能测试模型”期望能够成为解决软件亚健康问题的一剂“良药”。“全面性能测试模型”包含了测试策略制定、测试用例设计、模型使用方法三部分内容基本覆盖了性能测试规划和设计的相关内容为开展性能测试提供了一种可行的方案。借助本模型软件开发和测试人员可以更好的组织与规划性能测试避免在项目后期遭遇性能问题的被动局面。不过要想做好性能测试仅有性能测试模型还是远远不够的因为还缺少像LoadRunner这样令性能测试工作如虎添翼的性能测试利器。本书将和读者一起深入LoadRunner的性能测试世界探讨在企业的性能测试项目中如何应用它来发现应用系统存在的性能问题。LoadRunner在性能测试中的地位对于很多使用LoadRunner的测试人员而言性能测试工作中最大的障碍就是测试脚本开发与测试结果分析这导致很多测试人员忽略了测试规划与设计的重要性反而认为能开发测试脚本、运行测试场景、分析测试结果就算做好性能测试了。要想做好性能测试首先应该把重心放在测试的规划与设计上尤其要注重测试用例的设计仅仅能写测试程序与运行测试脚本是远远不够的。诸如LoadRunner等测试工具仅仅是性能测试的执行与分析工具它们应该服从于测试设计人员的意志。测试工具的使用属于测试人员的基本功应该在开展性能测试工作前修炼好。只有好的测试用例或者测试场景才能发现系统的问题这才是性能测试的本质所在。性能测试分析同样依赖于前面工作的输出结果不是随便一个测试结果就能发现问题的。所谓“万丈高楼平地起”性能分析的准确性同样取决于此前所做的设计与实施等“地基”是否可靠。可以说性能测试分析仅仅是百米赛跑的最后二十米而已。当然这并不是说性能测试分析不重要因为“最后冲刺的二十米没有跑好”前面工作做的再好也是徒劳的。因此不难理解性能测试分析工作开展的根基就是前面测试场景执行的结果。要想保证性能测试分析的结论是正确的则测试结果数据首先就应该是正确的而这也意味着测试场景以及测试执行过程都应该是正确的。实际上性能测试从始至终都应该是相当严谨的一项工程各个阶段的工作环环相扣性能测试工程师应该认真对待各个阶段的工作。如果一味地追求找出系统瓶颈无疑是舍本逐末的做法。因此在性能测试工作中首先要做好性能测试的规划与设计工作然后再借助LoadRunner的强大功能来发现系统存在的问题。如何通过本书学习LoadRunner首先应该弄清楚学习LoadRunner的目的那就是在项目的性能测试中应用LoadRunner来发现系统的性能问题。因此仅仅会用LoadRunner还远远不够这也是为什么很多培训班出来的学员虽然把工具用的非常熟练但是仍然不能做好性能测试工作。学好LoadRunner的标准是真正能够把LoadRunner应用到实际项目中去这就要求学习LoadRunner的同时一定要学好性能测试相关知识。本书的第章即为基本的性能测试知识读者需要认真体会这些内容建议在学习后面的内容时经常翻阅本章的内容。如果要学习更多的性能测试规划与设计的知识以及性能测试案例建议读者参考本书的姊妹篇《Web性能测试实战》。本书的第章是LoadRunner的简介部分读者需要通过本章了解LoadRunner的工作原理、测试流程、部署与安装等内容尤其要掌握图所示的LoadRunner工作原理这是用LoadRunner开展工作的基础。本书的第章、第章、第章分别讲解了LoadRunner的VirtualUserGenerator、Controller、Analysis。这三大组件分别负责脚本的录制与开发、场景的创建与执行、测试结果分析工作。用LoadRunner来开展性能测试必须要掌握这三大组件的使用。如果连基本的工具都没有用好很难正确地执行设计好的测试用例更不用说根据结果来分析系统的瓶颈了。在第~章中详细探讨了LoadRunner各个组件的使用细节但是这还远远不够尤其对于那些只会录制或者简单修改录制结果的测试人员!学习这三章的内容时最好的方法是结合LoadRunner的联机帮助文档这样可以学习到更多的内容。学习完第~章后可能还有一些读者会问:“我还是不会自己写测试脚本很多协议仍然不能进行测试怎么办?”碰到这种情况就需要补习自己的开发知识了。开发知识应该分两个方面来学习:一是面向对象基础知识的学习二是开发语言的学习。很多人可能会认为面向对象基础知识比较通用相对容易学习而开发语言种类繁多不知道如何入手。根据作者的经验这两个方面应该结合起来进行:面向对象是现在主流开发语言的灵魂一起学习可以互相促进。具体做法就是选择C、Java、C#等一种主流语言来学习只要这门语言是自己所在公司的主流语言即可。当学会面向对象基础和一门语言后再去学习其它的语言将会非常容易。具有一定的开发能力后就可以开始本书探索篇第~章的学习。这四章是LoadRunner的探索篇讲解了在LoadRunner中如何应用C、Java、C#语言进行开发以及一些特殊的脚本协议。相信通过前面章的学习读者已经掌握LoadRunner的精髓了。不过本书不是一本“LoadRunner使用百科大全”接下来就需要读者自己不断地应用与探索LoadRunner了逐步完成成为一个LoadRunner高手的蜕变过程。如何学习本书的性能测试案例本书在第章中花了很大的篇幅介绍了一个电子商务平台的性能测试案例目的不是为了介绍如何测试电子商务系统而是让读者在掌握前面技能的基础上更加深入地体会在项目中如何通过LoadRunner来实施性能测试。因此案例的业务并不重要读者也没有必要深究具体的细节。通过本案例能清晰地了解了能测试的整个过程就已经达到了目的。本书案例的学习重点在以下几个方面:l借助案例体会“全面性能测试模型”在GBE项目中的应用l学习性能测试规划与设计中的需求分析过程例如测试环境需求、人力资源l学习性能测试规划与设计中的测试场景分析与设计、测试用例设计l学习如何做好性能测试实施前的准备工作l测试执行过程的进度与变更控制l一些分析性能问题的过程。关于性能测试案例更多的内容读者可以阅读《Web性能测试实战》中的案例部分。关于本书本书的主旨在于让读者学会LoadRunner的应用并能在此基础上自行探索性能测试世界。本书共分为四部分:入门篇、基础篇、探索篇、实战篇。第一部分:入门篇包括第章和第章着重于讲解性能测试与LoadRunner的基础理论知识。在第章中讲解了性能测试基本概念、全面性能测试模型、性能测试调整等基础的性能测试理论知识第章则介绍了LoadRunner的特点与术语、工作原理、测试流程、部署与安装等内容。第二部分:基础篇包括第章至第章着重讲解LoadRunner三大组件的使用是LoadRunner的基本使用部分。在第章中主要讲解如何在VirtualUserGenerator中完成代码的录制与开发第章讲解如何在Controller中创建与执行场景第章中讲解如何结合Analysis来分析性能测试结果。第三部分:探索篇包括第章至第章着重讲解LoadRunner的高级应用。第章讲解如何用VisualC来增强虚拟用户第章深入探索了Java虚拟用户第章深入探索了NET虚拟用户第章则讲解了Socket虚拟用户的相关知识。第四部分:实战篇即第章结合案例来讲解在具体项目中如何应用LoadRunner来完成性能测试工作。在第章中通过真实的性能测试实例向读者展示了如何在项目中完成性能测试的整体规划与设计、测试的准备与实施、测试结果分析等工作。致谢感谢广大读者对《Web性能测试实战》一书的支持读者的支持是作者写作的真正动力。正是一年来因为大家对《Web性能测试实战》的肯定才促使我完成本书的写作工作感谢博文视点周筠老师对本书的支持周老师对我这个新人一直给予很大的鼓励感谢电子工业出版社博文视点资讯有限公司的陈元玉编辑她是本书的责任编辑感谢师兄王玉亭他再次为本书提供了很多素材感谢同事关晓培、周雪松、李熠他们为本书提供了很多素材感谢电子工业出版社为本书辛勤付出的所有朋友们特别感谢夫人小姬她通篇审校了本书并润色了那些难于理解的句子特别是她对我在公司的日常工作和编写工作的支持因为本书占据了大量可以陪她的时间最后要感谢自己的父母和老师能写出本书是父母和老师多年教育的结果。软件在性能方面的“亚健康”问题一直伴随着国内很多企业的软件产品而存在。早期由于多数软件应用系统在企业中得不到有效的推广应用因此用户往往会忽略自己在性能方面的需求。而现在软件几乎渗透到人们工作与生活的各个方面因而软件的性能开始得到越来越多的重视。随着软件工程技术、软件开发方法和软件开发工具的发展一方面使人们可以快速开发更加复杂的应用另一方面也使开发出的软件规模越来越庞大架构越来越复杂。随之而来的是软件性能问题也越来越多最终导致很多软件系统由于性能方面存在问题而停止使用给软件公司以及客户都带来了一定的损失。因此解决软件性能问题是十分必要的一项工作中对于企业自身以及客户都具有重要的现实意义。在绍英的上一本著作《Web性能测试实战》中为接近软件性能问题提出了“全面性能测试模型”以期成为解决软件亚健康问题的一剂良药。“全面性能测试模型”包含了性能测试策略制定、测试用例设计、模型使用方法三部分内容覆盖了性能测试规划和设计的相关内容为开展性能测试工作提供了一种可行的方案。但是仅有理论是不够的对于性能测试工作而言不但需要好的性能测试理论作为工作指导更需要掌握好的性能测试工具因此本书的几位作者共同创作了《LoadRunner性能测试实战》一书。LoadRunner是目前国内性能测试领域应用最广泛的工具之一它可以通过模拟成千上万的用户很快地帮助用户确认和查找性能问题。但是国内图书市场上却没有任何相关书籍《LoadRunner性能测试实战》填补了这个空白。《LoadRunner性能测试实战》是非常注重实际应用的作品。书中详细描述了LoadRunner在性能测试领域诸多方面的应用并结合具体的案例来说明如何应用《Web性能测试实战》一书中提到的“全面性能测试模型”。强大的性能测试工具加上合理的理论来指导将为读者打开很多新的思路。本书是由三位作者共同完成的。绍英有流媒体、PP、电子政务、银行、门户网站等领域应用软件的性能测试经验在LoadRunner方面更有五年以上的使用经验。他曾到很多公司去推广自己的性能测试模型以及讲解LoadRunner课程对企业在软件测试方面的需求非常熟悉建华是在读研究生因此有充裕的时间来研究LoadRunner的特殊应用小姬在性能测试方面也有着丰富的经验。相信他们的这些实践经验是很多测试人员急需的。本书对国内软件企业提高性能测试水平是很有价值的。我很高兴能为这本实战性非常强的作品做序预祝《LoadRunner性能测试实战》早日出版。也希望国内有更多的人来关注软件性能测试探讨解决软件亚健康问题的方法!北京大学软件与微电子学院副教授北京市软件促进中心专家顾问黎怡兰(MelodyLe)性能测试基本概念在一些软件项目中项目经理或测试经理经常会安排测试工程师进行下面的工作:l用LoadRunner测试系统的最大并发用户数。l用LoadRunner测试系统小时的最大业务吞吐量。l用LoadRunner测试系统的稳定性与健壮性。l用LoadRunner测试系统在数据达到万条记录时的性能。l用LoadRunner测试核心事务响应时间是否满足用户的需求。可以说现在很多IT企业的性能测试工作已经离不开LoadRunner了。不过尽管使用了LoadRunner这一强大的工具很多企业软件产品遇到的性能问题仍未能解决因为仅有好的测试工具是不够的。除了比较实用的测试工具外要想做好性能测试还应该掌握相关的理论知识。只有以坚实的理论作为实际工作的依托才能让测试工具发挥出应有的功效。本章将介绍一些性能测试的基础知识主要内容如下:n性能测试基本概念n全面性能测试模型n性能测试调整基础n如何做好性能测试提示:关于性能测试理论的更多内容可以参考作者性能测试方面的专著《Web性能测试实战》电子工业出版社年月出版。性能测试基本概念在软件系统日益复杂的今天性能已经成为软件质量重要的衡量标准之一这一点尤其体现在和Web相关的系统上。软件几乎无处不在在给用户带来方便的同时也对开发人员和测试人员提出了更高的要求。性能测试不但要求测试人员具备很强的技术能力还要具备综合分析问题的能力。本节从性能测试的概念入手强化性能测试的基础知识。什么是性能测试目前很少能见到性能测试的准确定义但是性能测试又似乎是涉及范围非常广泛的测试。压力测试、负载测试、强度测试、稳定性测试、健壮性测试、大数据量测试……都和性能测试有着密切的关系。在本书中主要从狭义和广义两方面来讨论性能测试。狭义的性能测试主要用于描述常规的性能测试是指通过模拟生产运行的业务压力或用户使用场景来测试系统的性能是否满足生产性能的要求。例如以实际投产环境进行测试来求出最大的吞吐量与最佳响应时间以保证上线的平稳、安全等。性能测试是一种“正常”的测试主要测试正常使用时系统是否满足要求同时可能为了保留系统的扩展空间而进行的一些稍稍超出“正常”范围的测试。广义的性能测试则是压力测试、负载测试、强度测试、并发(用户)测试、大数据量测试、配置测试、可靠性测试等和性能相关的测试统称。下面分别介绍各类测试的主要内容和特点。压力测试对系统不断施加压力的测试是通过确定一个系统的瓶颈或不能接收用户请求的性能点来获得系统能提供的最大服务级别的测试。例如测试一个Web站点在大量的负荷下系统的事务响应时间何时会变得不可接受或事务不能正常执行。压力测试的目的是发现在什么条件下系统的性能变得不可接受并通过对应用程序施加越来越大的负载直到发现应用程序性能下降的拐点。压力测试和负载测试有些类似但是通常把负载测试描述成一种特定类型的压力测试例如增加用户数量或延长压力时间以对应用程序进行压力测试。负载测试对系统不断地增加压力或增加一定压力下的持续时间直到系统的一些性能指标达到极限例如响应时间超过预定指标或某种资源已经达到饱和状态。这种测试可以找到系统的处理极限为系统调优提供依据。压力测试侧重压力大小而负载测试往往强调压力持续的时间。在实际工作中没有必要严格区分这两个概念有关内容可以参见后面节的“全面性能测试模型”。强度测试强度测试主要是为了检查程序对异常情况的抵抗能力。强度测试总是迫使系统在异常的资源配置下运行。例如:l当正常的用户点击率为“次秒”时运行点击率为“次秒”的测试用例l运行需要最大存储空间(或其他资源)的测试用例l运行可能导致操作系统崩溃或磁盘数据剧烈抖动的测试用例等等。强度测试是一种特别重要的测试对测试系统的稳定性以及系统未来的扩展空间均具有重要的意义。在这种异常条件下进行的测试更容易发现系统是否稳定以及性能方面是否容易扩展。疲劳强度测试是一类特殊的强度测试主要测试系统长时间运行后的性能表现例如小时的压力测试。并发(用户)测试主要指当测试多个用户并同时访问同一个应用程序、同一个模块或数据记录时是否存在死锁或其他性能问题几乎所有的性能测试都会涉及并发测试。在具体的性能测试工作中并发用户往往都是借助工具来进行模拟的LoadRunner中称之为并发虚拟用户。大数据量测试大数据量测试分为两种:一种是针对某些系统存储、传输、统计查询等业务进行大数据量的测试另一种是与并发测试相结合的极限状态下的综合数据测试。如专项的大数据量测试主要针对前者后者尽量放在并发测试中。此外也可以把大数据量测试分为“运行时大数据量测试”与“历史大数据量测试”来进行测试用例设计。配置测试配置测试主要指通过测试找到系统各项资源的最优分配原则。配置测试是系统调优的重要依据。例如可以通过不停地调整Oracle的内存参数来进行测试使之达到一个较好的性能。可以看出配置测试本质上是前面提到的某些种类的性能测试组合在一起而进行的测试。可靠性测试在给系统加载一定业务压力的情况下使系统运行一段时间以此检测系统是否稳定。例如可以施加让CPU资源保持~使用率的压力连续对系统加压个小时然后根据结果分析系统是否稳定。这么多类型的性能测试看起来很吓人实际上它们大多是密切相关的。例如运行个小时来测试系统是否可靠而这个测试极有可能包含了可靠性测试、强度测试、并发(用户)测试、负载测试等等。因此当实施性能测试时绝不能割裂它们的内部联系去进行而应分析它们之间的关系以一种高效的方式来规划与设计性能测试。为此本书在节提出了“全面性能测试模型”以更好的方式来开展性能测试工作。性能测试应用领域性能测试往往是为了实现下面的一个或几个目标:l判定软件是否满足预期的性能需求l根据测试结果判定软件的性能表现l查找系统可能存在的性能问题如果有则找出并加以解决l发现一些应用程序在功能实现方面的缺陷l对一些存在性能问题的系统找出瓶颈并加以解决l为用户部署系统提供性能参考l……通过分析性能测试的种种目标不难总结出性能测试主要应用在几个领域中下面分别予以介绍。系统的性能瓶颈定位系统的性能瓶颈定位是性能测试最常见的应用领域。借助LoadRunner等工具可以在测试场景运行过程中监控系统资源、Web服务器资源等运行数据与响应时间进行同步分析可以在一定程度上进行性能瓶颈的分析与定位。系统的参数配置通过性能测试可以测试系统在不同参数配置下的性能表现进而找出令系统表现更优的系统配置参数为应用系统投产提供最佳配置建议。实际上操作系统、数据库、中间件服务器等的参数配置是应用系统发生性能问题的重要原因。例如分配给Oracle的内存大小与系统自身的业务特点有极大关系配置不同的数据库性能表现就会不同而即使在内存一定的情况下SGA的分配也会对性能产生很大的影响。因此要通过测试以确定内存的最佳配置。发现一些软件算法方面的缺陷一些多线程、同步并发算法在单用户模式下测试是很难发现问题的只有通过模拟多用户的并发操作才能验证其运行是否正常与稳定。例如作者就经历过在一次性能测试过程中测试人员模拟多个用户并发时发现的一个明显的缺陷:测试对象是一个随机分配任务的模块只要有用户申请就会给用户分配任务。这个算法在单用户情况下调试没有任何问题但是当多个用户同时申请任务时就发生了把同一任务分配给多个不同用户的现象。经证实这个缺陷就是“同步算法”发生了问题而引起的。系统的验收测试系统验收测试经常会验证一些预期的性能指标或者验证系统中一些事务指标是否符合用户期望这时就需要借助性能测试来完成验证工作。随着用户对性能的重视现在性能测试几乎是系统验收测试中必不可少的内容之一。用户甚至自己进行专门的性能测试来验证系统上线前的性能以保证运行时的性能稳定。因此性能测试在用户验收测试中越来越重要。系统容量规划通过总结系统在不同硬件环境下的性能表现可以为系统部署时提供非常好的参考。对于一些性能要求较高的系统性能测试可以为硬件规划提供很好的参考数据使用户在购买硬件时“有据可依”。例如同一系列机型:两颗CPU系统支持用户并发、四颗CPU支持用户并发这些都是用户根据自身需求来规划硬件的重要依据。产品评估选型产品评估选型是性能测试的又一应用领域。通过性能测试可以对产品的软硬件性能进行更全面的评估选出更适合自己的产品类型。性能测试的应用领域越来越广因此在实际工作中性能测试往往会一次应用在一个或多个领域。对于软件性能测试设计人员应该根据测试的具体应用领域、测试原则和目标来进行性能测试的规划与设计。性能测试常见术语本节将介绍一些性能测试中的常见术语只有掌握这些基础的性能测试知识才可以进一步开展测试工作。性能测试常见的术语主要有并发、并发用户数量、请求响应时间、事务响应时间、吞吐量、吞吐率、TPS、点击率、资源利用率等下面分别介绍它们。并发狭义的并发一般分两种情况。一种是严格意义上的并发即所有的用户在同一时刻做同一件事情或操作这种操作一般针对同一类型的业务。例如在信用卡审批业务中一定数目的用户在同一时刻对已经完成的审批业务进行提交(操作的不是同一记录)还有一种是特例即所有用户进行完全一样的操作目的是测试数据库和程序对并发操作的处理。例如在信用卡审批业务中所有的用户可以一起申请业务或者修改同一条记录。另外一种并发是广义的并发。这种并发与狭义的并发的区别是尽管多个用户对系统发出了请求或进行了操作但是这些请求或操作可以是相同的也可以是不同的。对整个系统而言仍然有很多用户同时对系统进行操作因此仍然属于并发的范畴。可以看出广义的并发是包含狭义的并发的而且广义的并发更接近用户的实际使用情况因为对大多数系统而言只有数量很少的用户进行“严格意义上的并发”。对于性能测试而言这两种并发一般都需要进行测试通常做法是先进行严格意义上的并发测试。严格意义上的并发一般发生在使用比较频繁的模块中尽管发生的概率不是特别高但是一旦发生性能问题后果很可能是致命的。严格意义上的并发测试往往和功能测试关联起来因为只要并发功能遇到异常通常都是程序的问题这种测试也是健壮性和稳定性测试的一部分。并发用户数量关于并发用户的数量有两种常见的错误观点。一种错误观点是把并发用户数量理解为使用系统的全部用户的数量理由是这些用户可能同时使用系统还有一种比较接近正确的观点是把用户在线数量理解为并发用户数量。实际上在线用户不一定会和其他用户发生并发例如正在浏览网页信息的用户对服务器是没有任何影响的。但是用户在线数量是统计并发用户数量的主要依据之一。并发主要针对服务器而言是否并发的关键是看用户的操作是否对服务器产生了影响。因此并发用户数量的正确理解是在同一时刻与服务器进行交互的在线用户数量。这些用户的最大特征是和服务器发生了交互这种交互既可以是单向传送数据的也可以是双向传送数据的。并发用户数量的统计方法目前还没有准确的公式因为不同的系统会有不同的并发特点。例如OA系统统计并发用户数量的经验公式为:使用系统的用户数量(%~%)。对于这个公式没有必要拘泥于计算出的结果因为为了保证系统的扩展空间测试时的并发用户数量都会稍稍大一些除非要测试系统能承受的最大并发用户数量。举例说明:如果一个OA系统的期望用户为个只要测试出系统能支持个并发用户就可以了。请求响应时间请求响应时间是指从客户端发出请求到得到响应的整个过程的时间。这个过程从客户端发送一个请求开始计时到客户端接到从服务器端返回的响应结果计时结束。在某些工具中请求响应时间通常会被称为“TTLB”即“Timetolastbyte”意思是从发送一个请求开始到客户端收到最后一个字节的响应为止所耗费的时间。请求响应时间的单位一般为“秒”或“毫秒”。请求响应时间的分解如图所示。图Web请求过程分解图从图可以看出请求响应时间为“网络响应时间”和“应用程序与系统响应时间”之和具体由个部分组成即(NNNN)(AAA)。事务响应时间事务可能由一系列请求组成事务的响应时间主要针对用户而言属于宏观上的概念是为了向用户说明业务响应时间而提出的。例如:跨行取款事务的响应时间就是由一系列的请求组成的。事务响应时间和后面的业务吞吐率都是直接衡量系统性能的参数。吞吐量指在一次性能测试过程中网络上传输的数据量的总和。吞吐量传输时间就是吞吐率。吞吐率(Throughput)通常用来指单位时间内网络上传输的数据量也可以指单位时间内处理的客户端请求数量。它是衡量网络性能的重要指标。但是从用户或业务角度来看吞吐率也可以用“请求数秒”或“页面数秒”、“业务数小时或天”、“访问人数天”、“页面访问量天”来衡量。例如在银行卡审批系统中可以用“千件每小时”来衡量系统的业务处理能力。TPS(TransactionPerSecond)每秒钟系统能够处理的交易或事务的数量。它是衡量系统处理能力的重要指标。TPS是LoadRunner中重要的性能参数指标。点击率(HitPerSecond)每秒钟用户向Web服务器提交的HTTP请求数。这个指标是Web应用特有的一个指标:Web应用是“请求响应”模式用户发出一次申请服务器就要处理一次所以“点击”是Web应用能够处理交易的最小单位。如果把每次点击定义为一次交易点击率和TPS就是一个概念。不难看出点击率越大对服务器的压力也越大。点击率只是一个性能参考指标重要的是分析点击时产生的影响。需要注意的是这里的点击不是指鼠标的一次“单击”操作因为在一次“单击”操作中客户端可能向服务器发出多个HTTP请求。资源利用率资源利用率指的是对不同系统资源的使用程度例如服务器的CPU利用率、磁盘利用率等。资源利用率是分析系统性能指标进而改善性能的主要依据因此它是Web性能测试工作的重点。资源利用率主要针对Web服务器、操作系统、数据库服务器、网络等是测试和分析瓶颈的主要参数。在性能测试中要根据需要采集具体的资源利用率参数来进行分析。全面性能测试模型全面性能测试模型通过前面的内容可以看出性能测试的很多内容都是关联的。这就提供了一条思路:性能测试的很多内容可以经过一定的组织来统一进行。统一开展性能测试的最大好处是可以按照由浅入深的层次对系统进行测试进而减少不必要的工作量以实现节约测试成本的目的。为此本书提出了“全面性能测试模型”。“全面性能测试模型”提出的主要依据是:一种类型的性能测试可以在某些条件下转化成为另一种类型的性能测试而这些测试的实施方式很类似。例如:对一个网站进行测试模拟个到个用户就是常规的性能测试。当用户增加到乃至上万时就变成了压力负载测试。如果同时对系统进行大量的数据查询操作就包含了大数据量测试。在“全面性能测试模型”中把常见的性能测试分为个类别然后结合测试工具把性能测试用例归纳为类来进行设计。下面首先介绍这个性能测试类别的主要内容:预期指标的性能测试系统在需求分析和设计阶段都会提出一些性能指标完成和这些指标相关的测试是性能测试的首要工作。本模型把针对预先确定的一些性能指标而进行的测试称为预期指标的性能测试。这些指标主要指诸如“系统可以支持个并发用户”、“系统响应时间不得长于秒”等这些在产品说明书等文档中规定得十分明确的内容。对这种预先承诺的性能要求测试小组应该首先进行测试验证。独立业务性能测试独立业务实际是指一些与核心业务模块对应的业务这些模块通常具有功能比较复杂、使用比较频繁、属于核心业务等特点。这类特殊的、功能比较独立的业务模块始终都是性能测试的重点。因此不但要测试这类模块和性能相关的一些算法还要测试这类模块对并发用户的响应情况。核心业务模块在需求设计阶段就可以确定在集成或系统测试阶段开始单独测试其性能。如果是系统类软件或特殊应用领域的软件通常从单元测试阶段就开始进行测试并在后继的集成测试、系统测试、验收测试中进一步进行以保证核心业务模块的性能稳定。何时开始测试核心模块主要由性能测试策略决定读者可以参考节“性能测试用例模型”部分。组合业务性能测试通常所有的用户不会只使用一个或几个核心业务模块一个应用系统的每个功能模块都可能被使用到。所以性能测试既要模拟多用户的“相同”操作(这里的“相同”指很多用户使用同一功能)又要模拟多用户的“不同”操作(这里的“不同”指很多用户同时对一个或多个模块的不同功能进行操作)对多项业务进行组合性能测试。组合业务测试是最接近用户实际使用情况的测试也是性能测试的核心内容。通常按照用户的实际使用人数比例来模拟各个模板的组合并发情况。由于组合业务测试是最能反映用户使用情况的测试因而组合测试往往和服务器(操作系统、Web服务器、数据库服务器)性能测试结合起来进行。在通过工具模拟用户操作的同时还通过测试工具的监控功能采集服务器的计数器信息进而全面分析系统的瓶颈为改进系统提供有利的依据。疲劳强度性能测试疲劳强度测试是指在系统稳定运行的情况下以一定的负载压力来长时间运行系统的测试。其主要目的是确定系统长时间处理较大业务量时的性能。通过疲劳强度测试基本可以判断系统运行一段时间后是否稳定。大数据量性能测试大数据量测试通常是针对某些系统存储、传输、统计查询等业务进行大数据量的测试。主要测试运行时数据量较大或历史数据量较大时的性能情况这类测试一般都是针对某些特殊的核心业务或一些日常比较常用的组合业务的测试。由于大数据量测试一般在投产环境下进行所以把它独立出来并和疲劳强度测试放在一起在整个性能测试的后期进行。大数据量测试可以理解为特定条件下的核心业务或组合业务测试。网络性能测试网络性能测试主要是为了准确展示带宽、延迟、负载和端口的变化是如何影响用户响应时间的。在实际的软件项目中主要是测试应用系统的用户数目与网络带宽的关系。网络性能测试一般有专门的工具本书不加详述。网络测试的任务通常由系统集成人员来完成。服务器性能测试(操作系统、Web服务器、数据库服务器)服务器性能测试主要是对数据库、Web服务器、操作系统的测试目的是通过性能测试找出各种服务器的瓶颈为系统扩展、优化提供相关的依据。一些特殊测试主要是指配置测试、内存泄漏测试等一些特殊的Web性能测试。这类性能测试或和前面的测试结合起来进行或者在一些特殊的情况下独立进行本书重点讨论前一种情况。后一种情况由于投入较大往往通过特有的工具进行可以不纳入性能测试的范畴。“全面性能测试模型”是在以上性能测试分类和总结的基础上提出来的主要包含部分内容:第部分:性能测试策略模型这是整个性能测试模型的基础。软件类型决定着性能测试的策略同时用户对待软件性能的态度也影响性能测试策略的制定。本部分内容主要结合软件类型和用户特点来讨论性能测试策略制定的基本原则和方法。第部分:性能测试用例模型这是整个性能测试模型的核心部分。其主要思想就是结合测试工具把以上性能测试的项内容进一步归纳形成类测试用例:l预期指标的性能测试l并发用户的性能测试l疲劳强度和大数据量的性能测试l服务器性能测试l网络性能测试。在具体的测试设计中性能测试用例往往和测试工具结合起来把服务器、网络性能测试的用例设计与前三种类型结合起来。例如LoadRunner就可以在进行压力测试的同时完成后面两类测试的数据采集工作。因此后面两部分的测试用例只进行总体设计就可以了。第部分:模型的使用方法。本部分内容讨论如何在工作中使用“全面性能测试模型”。性能测试策略模型本节主要介绍性能测试策略的制定方法。性能测试策略一般从需求设计阶段就开始讨论如何制定了它决定着性能测试工作将要投入多少资源、什么时间开始实施等后继工作的安排。其制定的主

职业精品

现金采购管理制度.doc

材料采购及出入库管理制度.doc

日常采购管理流程.doc

采购管理.ppt

用户评论

0/200
    暂无评论
上传我的资料

精彩专题

相关资料换一换

资料评价:

/ 0
所需积分:0 立即下载

意见
反馈

返回
顶部