多语言展示
当前在线:1975今日阅读:58今日分享:42

自动化性能测试过程

一些已经成功实行自动化性能测试的组织,已经将这个过程分解为独立的阶段。虽然具体的实施可能有所不同,但是,宽泛地说,性能测试可以分为四个阶段—设计,构建,执行和诊断/调整。每个阶段有具体的任务,涉及到不同的角色,这些任务在转到下一阶段前必须完成。在最高级别,四个阶段可以被描述如下:1.设计阶段包括定义系统中所要测试的业务过程,在平均或峰值生产时间的综合业务过程,和用户和响应时间的全面目标。2.构建阶段包括建立和配置测试系统和基础设施,并且使用自动化性能测试解决方案来构建测试脚本和负载场景。3.执行阶段由运行负载场景和测量系统性能组成。4.诊断和调整反复迭代的阶段超出了测量系统性能和负载测试,达到另外一个层次,关键是要查明问题来快速帮助解决问题,并且调整系统参数来最优化性能让我们详细分析关系到每个阶段成功与否的必要任务。设计这是性能测试团队向业务部门搜集性能需求的主要阶段。需求可以被认为分为四个方面—业务,技术,系统和团队需求。业务需求一般通过与主题专家(SME,subjectmatterexpert)的会议来搜集。这些人可以是业务分析师和最终用户。当下面内容准备好后,一套全面的业务需求就形成了:1.应用概要:系统用法的演示使得性能团队得到更高层次的理解,应用是如何被使用的。2.业务过程列表:最终用户在系统上所执行的关键业务过程列表。3.业务流程:Word文档,详尽记录每个业务过程的精确步骤和屏幕。4.事务列表:业务过程中关键活动的列表—例如登录或转移资金—需要在负载下测量。5.业务过程图:业务流程图说明业务流程的分支条件。技术需求可以通过与系统管理员和数据库管理员(DBA)的会议来搜集。这些人可以隶属于开发或运营部门,或者隶属于两者。一套全面的技术需求仅当以下内容齐备时完成:1.环境评审:按照测试体系结构由系统或基础设施组进行走查评审。2.系统范围的会议:召开会议,讨论和确认在测试过程中系统需要排出的部分。3.生产图:一个生产基础设施图,用于说明测试与生产环境的差异,当从QA向生产迁移时可能对性能造成影响。最后,重要的是,必须收集系统需求。这些是系统的高层次目标,决定着负载测试过程的通过/失败状态。这些一般在与LOB的项目经理工作中达成一致。系统需求包括对以下问题的回答:1.系统在正常和最高峰时期必须支持多少用户?2.每秒钟它必须处理多少个事务?3.对于可业务关键事务最大和最小可接受的响应时间是多少?4.用户群体如何联系?5.生产中系统承受的工作负载是什么?以及混合的事务?团队需求是进展到构建阶段前需要解决的最后一个问题。这只不过是决定适合的性能团队成员来参与到未来的负载测试。最初,这也许被自动的确定(例如,当只有一个团队)。然而,如果性能测试成为卓越中心(CoE)的一部分,那么资源分配,内部后勤就应该在设计阶段考虑和解决。预先收集一套完整的业务,技术,系统,和团队需求是使负载测试有效和成功的基础。构建构建阶段将在设计阶段确定的业务过程和工作负载转变为自动化组件,这部分可以驱动可重复的,实际的负载。这可以分为两个方面:自动化设置和环境设置。自动化设置是由性能工程师完成的一系列连续的工作。1.脚本:将确定的业务过程记录为自动脚本。2.事务:插入定时器来产生业务所需的逻辑计时。3.参数化:用一个池替代所有的输入数据,例如ID和密码,这样每个虚拟用户用唯一的数据访问应用。4.场景:通过给用户组分配不同的脚本,连通性和用户行为等方法,创建生产工作负载。5.监测器:确定负载下所要监控的服务器或机器。环境设置由执行成功,现实的负载测试所需的硬件,软件,和数据组成。这些可能涉及到系统,DBA,运营和业务团队。构建阶段的最终成果就是可以执行在可用的,已配置的环境上的一系列自动化“资产”。执行对于刚接触性能测试的新手来说,经常存在一个误解,就是执行是一个单一事件。实际上,它是一个由多种类型的性能测试组成的多步骤的过程。每种测试都提供了理解发布应用所带来风险的必要信息。负载测试的类型包括:1.基线测试验证了系统和其周围环境可在合理的技术参数下运行。性能测试按5到10个用户执行,作为最终用户事务性能的基线。这些测试应该在性能测试的开始和结束时执行,来测量响应时间的绝对改进。2.性能测试在环境中模仿负载,并确定系统可以支撑的最佳和最大用户数量。这些测试应该仿效平均和峰值时间的生产用法,他们应当最大限度地仿真用户的真实行为,例如思考时间,调制解调器的仿真,和各种类型的浏览器。同时,采用其它专用的监控和诊断工具,有效地查看系统内部行为,诊断系统衰变和瓶颈。3.基准测试被设计来测量和对比理想情况下的各种机器类型,环境,或应用的版本。当系统经过扩展性测试后,执行这些测试可以帮助了解不同体系结构的影响。4.渗透测试被设计用于在长时间的负载下检测系统的执行情况。5.峰值测试被设计用于模拟系统在峰值负载下运行一段时间来保证应用和其硬件可以在合理的时间段内支持高负载
推荐信息