某项目性能方案_第1页
某项目性能方案_第2页
某项目性能方案_第3页
某项目性能方案_第4页
某项目性能方案_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

产品名称Productname密级Confidentialitylevel秘密产品版本ProductversionTotal14pages共14页某某某项目性能测试方案(仅供内部使用)拟制:日期:yyyy-mm-dd审核:二日期:yyyy_mm_dd审核:日期:yyyy_mm_dd批准:日期:yyyy_mm_dd修订记录日期修订版本描述作者yyyy-mm-ddV1.0某某某项目性能测试方案初稿yyyy-mm-ddV1.1针对初稿进行修改和添加*****目录TOC\o"1-5"\h\z\o"CurrentDocument"概述4\o"CurrentDocument"系统简介4\o"CurrentDocument"性能测试目的(这部分具体阐述要进行性能测试的原因)4\o"CurrentDocument"性能测试策略4\o"CurrentDocument"系统结构分析5\o"CurrentDocument"系统组成分析5\o"CurrentDocument"性能测试相关分析6\o"CurrentDocument"测试环境6\o"CurrentDocument"测试环境组成分析6\o"CurrentDocument"测试环境差异性分析7\o"CurrentDocument"性能需求分析7\o"CurrentDocument"性能测试预要求8\o"CurrentDocument"测试工具及数据采集8\o"CurrentDocument"性能测试方法10\o"CurrentDocument"性能测试用例11\o"CurrentDocument"测试用例执行顺序11\o"CurrentDocument"测试用例通过准则11\o"CurrentDocument"测试用例执行方法11\o"CurrentDocument"DB查询程序测试用例11程序1、程序211\o"CurrentDocument"单业务场景12\o"CurrentDocument"混合业务测试用例12\o"CurrentDocument"稳定性测试测试用例12\o"CurrentDocument"测试用例数据模型分析及数据规划12\o"CurrentDocument"测试过程风险分析13\o"CurrentDocument"工作量估计13\o"CurrentDocument"人员安排13\o"CurrentDocument"进度安排14\o"CurrentDocument"附录14某某某项目性能测试方案摘要:本文档为某某某项目性能测试方案,主要内容包括某某某项目简介、性能测试需求(范围)、性能指标、测试环境、测试方法、测试工具、结果分析的标准介绍等。目的在于通过本文档指导性能测试脚本、用例开发、性能测试执行以及性能测试评估等相关工作。主要的读者有性能测试脚本开发人员、性能测试执行人员、性能评估人员、项目经理、用户代表等。缩略语清单:缩略语至称说明1概述1.1系统简介这部分根据实际的系统进行填入具体的内容。。。(一般来说对项目需求文档或者相关技术文档进行整合并做一定修改即可)1.2性能测试目的(这部分具体阐述要进行性能测试的原因)根据目前系统改造需求,随着某某某系统逐步的稳定和完善,***********,在性能测试过程中评估系统的能力、识别系统中的性能瓶颈并根据相应监控数据进行瓶颈定位,必要时进行系统性能调优,以保证某某某系统运行稳定可靠。1.3性能测试策略通过分析某某某系统得知,整个系统的性能是由A程序的数据量、基础数据量、B程序运行效率和B程序运行参数决定的。因此,本次测试不仅要验证不同的业务场景,而且还要验证同一场景下B程序不同的配置参数的性能,以便为某某某系统找到相对合适的运行参数。在整个测试过程中要收集各关键程序、步骤的运行时间,各服务器的资源使用情况,各数据库的资源使用情况,以便根据测试过程中收集的监控数据分析系统瓶颈所在,进行系统调优。2系统结构分析2.1系统组成分析某某某系统架构如下图:这里是一张系统架构图^片太青0无法显示图1某某某系统架构图由系统架构图知,某某某系统的主要组成部分见下表:表1:某某某系统架构组建表名称功能备注web应用***/FIP服务***/数据库***/存储/A子系统////B程序对上传的文件进行处理/C程序在系统运行过程中采集运行信息/2.2性能测试相关分析通过对以上系统架构进行分析,web应用和FTP服务不是本次性能测试关注的重点,因此在后面的描述中不予考虑。本次性能测试主要针某某某后台进行,并在测试过程中监控相关数据。程序D是调度执行前的步骤,在本次测试中也不考虑。在并发方面,由于调度程序只有一个,因此在本次测试中不会并发多个调度。3测试环境3.1测试环境组成分析根据目前已知的测试环境,主要如下:表2:测试环境系统架构组建表名称功能运行机器IP数据库存储数据25存储存储数据,提供整个系统运行需要的空间16A子系统1程序********202程序********3程序********4程序********B程序后台目标服务器21C程序后台目标服务器非本测试环境区域IP表3:测试环境资源配置表资源名称配置用途16DELLR510Intel四核E56202.40GHzx2,4GBx4,300GBx2(Raid1),HBXF33XWindows2003R2存储27DELLR510Intel四核E56202.40GHzx2,4GBx4,300GBx8(Raid5),13HC33X,RHEL5.532位Mysql数据库20DELLR510Intel四核E56202.40GHzx2,4GBx4,300GBx2(Raid1),GLT333XRHEL5.532位A程序B程序C程序2926DELLR510Intel四核E56202.40GHzx2,4GBx4,300GBx2(Raid1),2CXF33XWindows2003R2测试使用系统登录URL:http://IP:PORT测试环境需配HOSTSW下:hostlhost23.2测试环境差异性分析由以上测试环境可知,程序1、程序2、程序3运行在同一台机器上,因此本次性能测试结果只针对该测试环境,无法通过本次部署所得的测试结果准确的预测出其他部署方式的结果,但本测试环境下的结果仍可作为一个参考。4性能需求分析本次测试目前已知的原始需求如下表:表4:原始需求表业务类型服务提供能力服务提供质量优先级容量处理能力响应率正确率需求1-20000封/分钟100%100%高需求2-20000次/分钟100%100%高需求3-20000封/分钟100%100%高需求4-20000封/分钟100%100%高需求5-20000封/分钟100%100%高由以上性能需求可知,系统对业务成功率要求非常高,均为100%,同时要求每个进程的处理能力可以达到20000封份钟(即在资源保证的前提下,执行一个20000封任务的进程需要在1分钟之内完成)。对于部分,需求中明确给出了最大的并发量,以上可以提取出以下需求:需求1:要求程序1可以处理20000封/分钟的业务量;需求2:要求程序2可以处理20000次/分钟的业务量;需求3:程序3要求可以满足20000封/分钟的业务处理量;鉴于系统实际使用和运行特点,本次性能测试需要验证系统应该具备却没有在性能需求中明确提及的隐含需求:隐含需求1:程序1、程序2和程序3,不仅可以并发运行,而且每个运行的进程还可以通过配置文件配置成多线程运行,不同的线程数量会对操作系统的上下文切换和程序执行时间造成一定的影响,性能测试中将针对多个不同线程数量进行分别测试,验证程序1、程序2、程序3在配置不同线程数量的环境下的执行情况;隐含需求2:程序2有3种输入文件形式,一种是HTML,一种是txt,一种是分包。对于不同的形式,程序处理机制不同,势必会造成资源开销和响应时间的差别。因此,要针对三种情形分别进行测试和混合测试,以保证更真实的模拟系统运行环境;隐含需求3:系统在真实运行过程中会出现混合业务场景,例如程序1和程序2同时并发的情况,因此本次测试要针对混合业务场景进行用例设计;隐含需求4:由于程序3要求满足不间断连续运行,虽然该程序不要求并发,但程序3是整个系统快速稳定运行的基础,需要对该程序的资源使用情况(特别是内存)进行长期监控,监测多次程序1运行后,程序3的资源使用率是否正常,应该释放的资源是否释放(包括内存,文件描述符等系统资源);隐含需求5:由于还有其他系统共用相关资源,因此被测系统不能无限制的占用系统资源,如果在性能测试过程中发现资源占用率过高(暂定高于70%),将视为相应的测试用例不通过。隐含需求6:在整个测试过程中,网络传输的效率直接影响程序的效率,测试中将监控程序3的网络使用情况,如果网络使用情况过高(暂定高于40%),将根据数据量和对其他业务的影响情况对该情况给出合理的建议。隐含需求7:基于被测系统业务的特点,调度程序要求连续不间断运行,因此本次性能测试将针对被测系统进行稳定性测试,要求连续不间断运行业务至少72小时。以上是本次性能测试的需求分析,下文的测试用例部分将依据需求分析进行测试用例设计。5性能测试预要求在性能测试开始以前,需要确认一些环境和工具方面的问题,以保证性能测试准备充分和避免不必要的风险。1)性能测试开始前需保证测试环境搭建正确,尽量符合系统上线后的真实环境。网络设备、网络连接、网络带宽满足系统运行要求;2)性能测试开始前需确定被测系统已进行一轮完整的功能测试且回归测试通过;3)外部方面需要保证自身系统运行稳定。只有在外部系统运行稳定的前提下,被测系统性能测试的结果才真实有效。同时还需保证外部系统中存在相应的数据,性能测试将以该数据量为基础进行测试(该数据量大小会影响性能);4)性能测试过程中需要使用的脚本和工具开发完成(该部分在下文详细阐述);5)不同数量的并发使用的数据(包括各种测试过程中使用的数据和文件等)准备完成。6测试工具及数据采集基于本次被测系统的特点,在并发方面采用直接向数据库中插入多条(具体数目根据并发量确定)审核通过的记录以达到并发操作。同时在系统中也插入一些暂停和未审核的记录,以便更真实的模拟调度程序的负载。

在资源采集方面,需要监控以下数据表5:资源米集监控表名称采集数据米集方法存储存储所在操作系统的资源使用情况,包括CPU,内存,网络,10spotlight子系统A程序1该程序的CPU内存(验证内存泄露)和响应时间CPU、内存、心使用nmon,响应时间通过杳看程序日志程序2******CPU、内存、心使用nmon,响应时间通过杳看inetd.log中的duration参数程序3******CPU、内存、心使用nmon,响应时间通过杳看inetd.log中的duration参数DB查询数据库数据库占用资源、网络占用资源待定程序A后台服务器资源使用情况包括CPU,内存,网络,10使用nmon程序B后台服务器资源使用情况包括CPU,内存,网络,10使用nmon由于并发量大,一次操作的数据众多,对于程序1、程序2和程序3的响应时间不可能通过手工进行操作,因此在测试之前需根据相关程序日志的特点编写相应的程序来解析日志并自动计算响应时间,以便形成统计图表。对于业务2和DB查询,需要根据接口协议开发相应的脚本进行并发来加压满足压力需求。对于程序4、程序5和程序6,需要根据接口协议编写相应的调用命令。由以上分析,需要开发的程序或脚本如下:表6:开发脚本列表名称作用实现方法并发实现脚本根据并发量和并发的业务执行插入数据库的SQL脚本PL/SQLDB杳询并发脚本******LoadRunnerSocket协议模拟并发脚本******LoadRunnerSocket协议程序调用命令调起相应的程序的命令未正日志分析程序1响应时间分析脚本自动抽取响应时间python程序2响应时间分析脚本自动抽取响应时间python程序3响应时间分析脚本自动抽取响应时间python由以上的分析总结可知,本次性能测试所使用的工具及脚本如下:SpotlightonwindowsSpotlight是一款功能强大的服务器监控软件,该软件可以监视相关系统运行时的状态数据并通过图形界面的方式清晰的展现,以帮助使用者快速定位系统瓶颈。Nmonnmon工具可以帮助在一个屏幕上显示所有重要的性能优化信息,并动态地对其进行更新。这个高效的工具可以工作于任何哑屏幕、telnet会话、甚至拨号线路。Loadrunner负载生成和结果分析工具。其他其他为本次测试所编写的程序或脚本。(例如python脚本)7性能测试方法在整个性能测试过程中,主要分5大部分,下面将分别针对每部分的测试方法进行描述,虽然每部分有多个用例要执行,但执行的原理和方法基本相同。在使用程序1进行测试过程中,需预先在数据库中构造一些暂停和未审核的记录,以便更真实的模拟调度程序的负载。程序1和DB查询测试方法主要是使用Loadrunner并发生成负载来验证是否满足相应的指标要求。由于程序均使用socket协议与DB查询程序交互,因此需要在Loadrunner中按照接口协议编写相应的socket脚本;程序2和程序3只需提供相应合法数据后,通过命令调用运行即可;单业务测试用例执行方法单业务测试用例执行方法主要是将要执行的用例对应的记录插单数据库后并启动调度多业务测试用例执行方法多业务测试用例执行方法主要是将要执行的用例对应的记录插入数据库后并启动调度稳定性测试用例执行方法稳定性测试在最后执行,根据前面的测试结果和反馈,选择合适压力的多业务测试用例连续不间断的执行72小时。8性能测试用例测试用例的设计依据测试需求和测试策略,测试用例将覆盖本次测试需求和按照测试策略进行。8.1测试用例执行顺序在测试用例执行的过程中,为保证测试效率,要求按照一定的先后逻辑顺序执行。在性能测试开始前进行功能的预测试;先执行一些数量小、并发小的测试预热系统,同时也验证系统是否有承受大压力的能力;对于同一类型的用例如果压力小的用例没有通过,暂不执行压力大的用例。8.2测试用例通过准则在性能测试执行过程中,如果有以下情况出现,视为不通过测试过程中有业务失败;测试过程中相关程序响应时间过长(指标低于需求);测试过程中程序1、数据库程序占用资源率过高;其他系统不应该出现的问题;8.3测试用例执行方法测试用例的执行要求有一定的顺序。因为程序1和程序2均要调用DB查询程序,因此如果DB查询不满足20000/分的业务处理量,那么程序1和程序2则更不会满足,因此需先对DB查询程序进行性能测试,再对程序1和程序2进行测试,之后是通过调度对整个系统进行性能测试。8.4DB查询程序测试用例DB查询只需开发相应的脚本并生成负载即可。8.5程序1、程序2序号用例描述运行模式线程数期望结果1程序1C、R、M1满足测试需求2程序1]c、R、M43程序1C、R、M124程序1:C、R、M16序号用例描述运行模式线程数文件格式程序开关期望结果1程序2C、R、M1html/txt开/关满足测试需求2程序2C、R、M4html/txt开/关3程序2C、R、M12html/txt开/关4程序2C、R、M16html/txt开/关

8.6单业务场景程序1测试用例设计原则:序号用例描述运行模式并发数线程数程序开关期望结果1调度+程序1C、R、M1TBD开/关满足测试需求2调度+程序1C、R、M5TBD开/关3调度+程序1C、R、M10TBD开/关程序2测试用例设计原则:序号用例描述运行模式并发数线程数程序开关文件格式期望结果1调度+程序2C、R、M1TBD开/关html/txt满足测试需求2调度+程序2C、R、M10TBD开/关html/txt3调度+程序2C、R、M20TBD开/关html/txt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论