论文部分内容阅读
摘要:没有策略的性能测试只是一系列查找错误的过程,只有遵循一个合理的性能测试策略才能够提高性能测试的效率及效果。RUP(Rational UnifiedProcess)是IBM Rational Software提出的软件工程实施过程,是当前最成功的软件工程方法论之一,基于RUP的基础上提出一种具有普遍性的Web性能测试策略,并给出一个性能测试实例。
关键词:性能测试;RUP;Web
中图分类号:TP3 文献标识码:A 文章编号:1671—7597(2012)0520191-01
Web应用系统由于它的便捷、易维护等特性,受到越来越多企业的青睐,很多企业将自己的核心业务搭建在Web平台上,Web应用系统也越来越复杂。性能测试是提高Web应用系统质量和改善用户体验的有效方法。RUP(Rational UnifiedProcess)是IBM Rational Software提出的软件工程实施过程,是一种迭代的、以架构为中心的、持续的质量验证的软件开发方法,本文基于RUP的基础提出一种具有普遍性的Web性能测试策略。
1 RUP中性能测试的概念
RUP中认为性能测试是表现和评估被测对象性能特征的一系列测试手段,常见的性能特征有代码执行效率、响应时间、可靠性及容载量等;在整个软件开发生命周期中,不同种类的性能测试针对不同的性能特征来被设计实现。
2 基于RUP的WEB性能测试策略
没有策略的性能测试只是一系列查找错误的过程,效率较低,效果较差,使用RUP的一个重要原则就是持续的质量验证,在整个产品生命周期中尽早地、持续地验证软件质量,确保产品满足客户的需求并且构造一个高性能、高可靠的软件系统。所以,策略中提倡尽早进行性能测试,持续地进行性能测试。早在Web系统构架阶段就应该及时进行性能测试,验证系统架构在性能上是否能够满足项目构建的需要,验证所选中间件、服务器是否能够满足要求,尽早找出、解决性能瓶颈。
2.1 评估分析系统
评估分析被测系统是性能测试成功的关键因素之一,其主要目的有两点。
1)确定系统的负荷量、负荷分布情况,B/S模式的Web系统较C/S系统而言,用户可自由选择的操作路径较多,页面跳跃性强,对用户业务操作习惯的评估分析有利于负载模型的建立。
2)定义性能标准,业界并没有一个通用的标准来说明Web应用系统的性能指标应该是多少,所以进行性能测试时需要定义一个用户可接受的性能标准。
2.2 开发测试资产
测试资产就是测试过程中需要使用的,并要纳入配置管理的一系列信息,RUP中称之为“工件”。性能测试中的测试资产包括:测试计划、测试用例、性能测试脚本、测试场景、负载模型、测试数据等。测试用例、测试场景和负载模型的编制可在完成评估分析系统后开始进行;性能测试脚本最好是在一个独立的子模块基本稳定后再进行开发,否则程序的频繁变动会导致较高的脚本维护成本。
2.3 执行基准测试及计划中的测试
测试环境搭建完毕后,运行一次测试以建立基准。验证环境与生产环境越相似,应用程序部署后的性能令人满意的可能性就越大。因此,一开始有一个符合实际情况的验证环境很重要。绝大多数的情况是基准性能不令人满意。使用性能测试工具进行并发测试时,如果要模拟成百上千的并发用户,就应该采用多台客户机同时进行测试,避免因客户机不能及时处理从服务器返回的响应,造成测试误差。如果被测系统包含负载均衡器,模拟的并发用户应进行IP伪装(比较成熟的性能测试工具都具有此功能),不同的虚拟用户使用不同的IP地址,避免负载均衡器分配负载不均匀。执行测试时,应该同时监控、记录服务器的资源变化情况,如CPU、Memory、Disk、Database等。现在Web系统大都采用N层构架,分段计算响应时间可以准确的定位系统瓶颈,很多第三方工具都有该功能,如IBMTivoli等。
2.4 分析测试结果
性能测试结果分析是性能测试过程中最重要,也是最困难的步骤。良好的测试设计、执行和系统度量方法能够有效减轻结果分析的难度。性能测试结果分析需要分析人员对测试结果中的各项数据有准确的认识,明确各指标之间的关系,各项数据指标并没有显而易见的联系,在多数情况下都需要综合考虑各种因素,才能得出最终的结论。结论要指出哪些性能需求达到目标,哪些没有达到,为什么。对于没有达到目标的,要进行调优,对于不能得出结论的,还要附加测试查找原因。在测试结果分析过程中,通常会遇到三种性能问题:错误页、缓慢点、瓶颈。分清这三种性能问题有利于我们抓住问题的本质,快速解决问题。
3 测试实例
被测系统是某大型商业银行信贷管理系统,它是面向全国的大集中式Web平台,整个软件开发过程应用RUP方法及IBMRational全套工具,性能测试中主要使用Robot进行并发测试,Tiroli监控收集数据、Purify Plus进行运行时分析。
在系统构架阶段,主要测试验证了两个关键点。
1)为了实现快速构建的目的,系统主要部件工作流引擎使用现有中间件,所以需要验证其可靠性及稳定性。
2)为了减少与后台数据库服务交互,加快前台响应时间,财务数据的临时保存和传递功能采用Session存放的方式来实现,所以需要验证这种方式会不会占用大量系统内存。由于此时程序并没有真正实现,所以必须开发一个简单原型系统来进行性能测试,为了使测试结果真实可信,测试环境采用类生产环境。检测工作流引擎时,以并发测试为主,逐渐递增并发用户数;经测试发现在极端负载的情况下,工作流引擎会发生并发控制错误。检测Session存放方式时,不仅通过并发测试来监测整体内存使用情况,还通过Purify Plus来进行代码级分析,查看存放完财务数据的单个Session对象占用多少内存;通过测试发现,相对于服务器较大的物理内存,Session存放方式不存在性能隐患。构架阶段验证主要部件、实现方式的可靠性和稳定性为后期程序构建提供了坚实的基础。
在系统构建阶段,以迭代的方式对经过功能测试的日间业务和夜间批量程序进行性能测试。日间业务以并发测试为主,而夜间批量程序是单一执行程序,所以采用运行时分析,对在性能测试中不能达到性能要求的一些模块,通过修改低效率的代码、设计新的实现方法、优化数据库等措施使性能得到提高。整个性能测试过程中运用本文论述的策略,少走了弯路,提高了性能测试效率和效果,使系统的性能和稳定性得到了保证。
4 结束语
没有策略的性能测试只是一系列查找错误的过程,本文基于RUP的基础上提出一种具有普遍性的Web性能测试策略,提倡尽早进行性能测试,持续地进行性能测试,并指出了Web性能测试各环节中需要重点关注的问题。最后在一个实际的大型项目中成功地运用该策略,验证了该策略的可行性和有效性。
关键词:性能测试;RUP;Web
中图分类号:TP3 文献标识码:A 文章编号:1671—7597(2012)0520191-01
Web应用系统由于它的便捷、易维护等特性,受到越来越多企业的青睐,很多企业将自己的核心业务搭建在Web平台上,Web应用系统也越来越复杂。性能测试是提高Web应用系统质量和改善用户体验的有效方法。RUP(Rational UnifiedProcess)是IBM Rational Software提出的软件工程实施过程,是一种迭代的、以架构为中心的、持续的质量验证的软件开发方法,本文基于RUP的基础提出一种具有普遍性的Web性能测试策略。
1 RUP中性能测试的概念
RUP中认为性能测试是表现和评估被测对象性能特征的一系列测试手段,常见的性能特征有代码执行效率、响应时间、可靠性及容载量等;在整个软件开发生命周期中,不同种类的性能测试针对不同的性能特征来被设计实现。
2 基于RUP的WEB性能测试策略
没有策略的性能测试只是一系列查找错误的过程,效率较低,效果较差,使用RUP的一个重要原则就是持续的质量验证,在整个产品生命周期中尽早地、持续地验证软件质量,确保产品满足客户的需求并且构造一个高性能、高可靠的软件系统。所以,策略中提倡尽早进行性能测试,持续地进行性能测试。早在Web系统构架阶段就应该及时进行性能测试,验证系统架构在性能上是否能够满足项目构建的需要,验证所选中间件、服务器是否能够满足要求,尽早找出、解决性能瓶颈。
2.1 评估分析系统
评估分析被测系统是性能测试成功的关键因素之一,其主要目的有两点。
1)确定系统的负荷量、负荷分布情况,B/S模式的Web系统较C/S系统而言,用户可自由选择的操作路径较多,页面跳跃性强,对用户业务操作习惯的评估分析有利于负载模型的建立。
2)定义性能标准,业界并没有一个通用的标准来说明Web应用系统的性能指标应该是多少,所以进行性能测试时需要定义一个用户可接受的性能标准。
2.2 开发测试资产
测试资产就是测试过程中需要使用的,并要纳入配置管理的一系列信息,RUP中称之为“工件”。性能测试中的测试资产包括:测试计划、测试用例、性能测试脚本、测试场景、负载模型、测试数据等。测试用例、测试场景和负载模型的编制可在完成评估分析系统后开始进行;性能测试脚本最好是在一个独立的子模块基本稳定后再进行开发,否则程序的频繁变动会导致较高的脚本维护成本。
2.3 执行基准测试及计划中的测试
测试环境搭建完毕后,运行一次测试以建立基准。验证环境与生产环境越相似,应用程序部署后的性能令人满意的可能性就越大。因此,一开始有一个符合实际情况的验证环境很重要。绝大多数的情况是基准性能不令人满意。使用性能测试工具进行并发测试时,如果要模拟成百上千的并发用户,就应该采用多台客户机同时进行测试,避免因客户机不能及时处理从服务器返回的响应,造成测试误差。如果被测系统包含负载均衡器,模拟的并发用户应进行IP伪装(比较成熟的性能测试工具都具有此功能),不同的虚拟用户使用不同的IP地址,避免负载均衡器分配负载不均匀。执行测试时,应该同时监控、记录服务器的资源变化情况,如CPU、Memory、Disk、Database等。现在Web系统大都采用N层构架,分段计算响应时间可以准确的定位系统瓶颈,很多第三方工具都有该功能,如IBMTivoli等。
2.4 分析测试结果
性能测试结果分析是性能测试过程中最重要,也是最困难的步骤。良好的测试设计、执行和系统度量方法能够有效减轻结果分析的难度。性能测试结果分析需要分析人员对测试结果中的各项数据有准确的认识,明确各指标之间的关系,各项数据指标并没有显而易见的联系,在多数情况下都需要综合考虑各种因素,才能得出最终的结论。结论要指出哪些性能需求达到目标,哪些没有达到,为什么。对于没有达到目标的,要进行调优,对于不能得出结论的,还要附加测试查找原因。在测试结果分析过程中,通常会遇到三种性能问题:错误页、缓慢点、瓶颈。分清这三种性能问题有利于我们抓住问题的本质,快速解决问题。
3 测试实例
被测系统是某大型商业银行信贷管理系统,它是面向全国的大集中式Web平台,整个软件开发过程应用RUP方法及IBMRational全套工具,性能测试中主要使用Robot进行并发测试,Tiroli监控收集数据、Purify Plus进行运行时分析。
在系统构架阶段,主要测试验证了两个关键点。
1)为了实现快速构建的目的,系统主要部件工作流引擎使用现有中间件,所以需要验证其可靠性及稳定性。
2)为了减少与后台数据库服务交互,加快前台响应时间,财务数据的临时保存和传递功能采用Session存放的方式来实现,所以需要验证这种方式会不会占用大量系统内存。由于此时程序并没有真正实现,所以必须开发一个简单原型系统来进行性能测试,为了使测试结果真实可信,测试环境采用类生产环境。检测工作流引擎时,以并发测试为主,逐渐递增并发用户数;经测试发现在极端负载的情况下,工作流引擎会发生并发控制错误。检测Session存放方式时,不仅通过并发测试来监测整体内存使用情况,还通过Purify Plus来进行代码级分析,查看存放完财务数据的单个Session对象占用多少内存;通过测试发现,相对于服务器较大的物理内存,Session存放方式不存在性能隐患。构架阶段验证主要部件、实现方式的可靠性和稳定性为后期程序构建提供了坚实的基础。
在系统构建阶段,以迭代的方式对经过功能测试的日间业务和夜间批量程序进行性能测试。日间业务以并发测试为主,而夜间批量程序是单一执行程序,所以采用运行时分析,对在性能测试中不能达到性能要求的一些模块,通过修改低效率的代码、设计新的实现方法、优化数据库等措施使性能得到提高。整个性能测试过程中运用本文论述的策略,少走了弯路,提高了性能测试效率和效果,使系统的性能和稳定性得到了保证。
4 结束语
没有策略的性能测试只是一系列查找错误的过程,本文基于RUP的基础上提出一种具有普遍性的Web性能测试策略,提倡尽早进行性能测试,持续地进行性能测试,并指出了Web性能测试各环节中需要重点关注的问题。最后在一个实际的大型项目中成功地运用该策略,验证了该策略的可行性和有效性。