软件自动化性能测试

发表于:2011-08-22来源:未知作者:领测软件测试网采编点击数: 标签:
通过性能测试,公司可以在投入运行之前检验应用是否满足业务需求,量化最终用户体验的变化的影响,并且快速分析和解决发生故障的组件,因而在部署时就较少出现意外。然而,自动化性能测试的美好前景需要面对一些新问题:

  摘要

  在过去的20年中,很多公司已经转向用软件将工作数字化方式。在软件应用的推动下,已经产生了巨大生产效率,同时,为全球经济的协作和信息共享提供了新的方式。软件应用实际上已经成为业务关键信息共享和各种事务处理两领域的主要渠道。当前,软件应用----从e-mail到CRM(客户关系管理)到事务处理----就意味着业务本身。

  软件开发技术在这段时期内已经发生改变并且相当成熟,现代应用软件的复杂性也正在爆发。应用可以使用数十和数百种组件完成曾经使用纸张或手工的工作。复杂性直接导致业务过程中出现更多的潜在故障点,从而使分析问题的根源更为困难。

  此外,软件应用的运行与汽车不同。它们没有那些当磨损后可直接更换的耐久部件。不论目标是为了建立竞争优势还是为了满足业务的变化,软件应用每周每月每年都在改进。这一连串的变化使公司不得不面对另外一系列风险。

  难以置信的改变速度和爆炸性的软件复杂性给软件开发过程带来了巨大风险。严格的测试,对于量化和降低业务风险,是最常用的策略。开发人员,测试团队和管理层等会提出一个相似的问题:在投入运行前如何准确,全面地验证系统性能,而不超出预算。

  通过性能测试,公司可以在投入运行之前检验应用是否满足业务需求,量化最终用户体验的变化的影响,并且快速分析和解决发生故障的组件,因而在部署时就较少出现意外。然而,自动化性能测试的美好前景需要面对一些新问题:

  什么是性能测试?

  为什么要使它自动化?

  性能测试正确的过程?

  -设计

  -构建

  -执行

  -分析,诊断,和调整

  好的性能测试涉及到哪些人?

  谁需要看结果并且如何报告结果来量化ROI?

  当比较自动化负载测试方案时,哪些特性是最重要的?

  通过我们的负载测试经验和大量的顾客输入和回馈,我们已经在正确的方法中积累了大量的专门技术,使得性能测试的步骤自动化。这篇文章总体介绍了自动化性能测试和最佳覆盖性能测试方法的益处。

  什么是性能测试?

  性能测试是在上线前对系统进行端到端性能测试的唯一方法。性能测试解决方案是:

  使用最少的硬件模拟成百上千的用户与系统进行交互。

  测量最终用户的响应时间

  以一致的方式重复负载

  在负载下监测系统组件

  提供健壮的的分析和报告机制

  自动化测试方案通常使用4个主要的组件来构建和运行测试。这些包括:

  虚拟用户发生器可以捕获最终用户业务过程,并转化为自动化脚本。

  控制器将组织、驱动、管理、和监测负载

  执行期间负载发生器执行虚拟用户

  分析引擎观测、分析和对比结果

  为什么使性能测试自动化?

  自动化测试是一种方法,发挥人力,过程,技术的作用,以降低应用,升级或补丁部署的风险。其核心,自动化性能测试是在预部署的系统上施加生产环境的负载,同时测量系统性能和最终用户的体验。构建良好的性能测试可以回答类似下面的问题:

  应用响应时间对于计划的用户足够快么?

  应用是否能够处理期望的用户负载或更多?

  应用是否能处理业务所需的事务数量?

  应用在期望内或期望外的用户负载下是否稳定?

  你确定用户会在上线时得到积极的体验么?

  通过回答这些问题,自动化性能测试采用业务术语量化改变所带来的影响。这样,就明确了部署的风险。一个有效的自动化性能测试过程可以帮助制定考虑周详的发布决策并防止系统故障和可用性问题。

  自动化性能测试过程

  一些已经成功实行自动化性能测试的组织,已经将这个过程分解为独立的阶段。虽然具体的实施可能有所不同,但是,宽泛地说,性能测试可以分为四个阶段—设计,构建,执行和诊断/调整。每个阶段有具体的任务,涉及到不同的角色,这些任务在转到下一阶段前必须完成。在最高级别,四个阶段可以被描述如下:

  设计阶段包括定义系统中所要测试的业务过程,在平均或峰值生产时间的综合业务过程,和用户和响应时间的全面目标。

  构建阶段包括建立和配置测试系统和基础设施,并且使用自动化性能测试解决方案来构建测试脚本和负载场景。

  执行阶段由运行负载场景和测量系统性能组成。

  诊断和调整反复迭代的阶段超出了测量系统性能和负载测试,达到另外一个层次,关键是要查明问题来快速帮助解决问题,并且调整系统参数来最优化性能

  让我们详细分析关系到每个阶段成功与否的必要任务。

  设计

  这是性能测试团队向业务部门搜集性能需求的主要阶段。需求可以被认为分为四个方面—业务,技术,系统和团队需求。

  业务需求一般通过与主题专家(SME,subject matter expert)的会议来搜集。这些人可以是业务分析师和最终用户。当下面内容准备好后,一套全面的业务需求就形成了:

  应用概要:系统用法的演示使得性能团队得到更高层次的理解,应用是如何被使用的。

  业务过程列表:最终用户在系统上所执行的关键业务过程列表。

  业务流程:Word文档,详尽记录每个业务过程的精确步骤和屏幕。

  事务列表:业务过程中关键活动的列表—例如登录或转移资金—需要在负载下测量。

  业务过程图:业务流程图说明业务流程的分支条件。

  技术需求可以通过与系统管理员和数据库管理员(DBA)的会议来搜集。这些人可以隶属于开发或运营部门,或者隶属于两者。一套全面的技术需求仅当以下内容齐备时完成:

  环境评审:按照测试体系结构由系统或基础设施组进行走查评审。

  系统范围的会议:召开会议,讨论和确认在测试过程中系统需要排出的部分。

原文转自:http://www.ltesting.net