首页 > 范文大全 > 正文

通过自动化性能测试确保系统性能优化最终用户体验

开篇:润墨网以专业的文秘视角,为您筛选了一篇通过自动化性能测试确保系统性能优化最终用户体验范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

难以置信的变化节奏和软件复杂性的骤升为软件开发过程带来了巨大的风险。严格的测试是一种最通用的战略,它可以定量并降低业务的风险。对于开发人员、QA小组和管理层来说,关键是在不超出IT预算的前提下,在系统上线之前,精确而全面地验证系统的性能。

性能测试与自动化性能测试

性能测试是在系统上线之前,唯一能精确测试系统端到端性能的一种方法。性能测试解决方案可以利用最少的硬件资源,模拟成千上万个用户与系统产生交互作用。它能衡量最终用户响应时间,持续重复负载,监控负载下的系统组件,并提供强大的分析和汇报引擎。

全球业务优化科技(BTO)的领导者美科利(Mercury)公司通过在多年积累的经验中发现,自动化测试解决方案通常使用四种主要组件来创建和运行测试。其中包括:Virtual User Generator将最终用户业务流程捕捉到自动化脚本中。Controller可以组织、驱动、管理和监控负载。Load Generator可以在执行阶段运行虚拟用户。Analysis Engine可以查看、仔细分析和对比测试结果。

自动化性能测试是一种需要遵循的原则,它利用人员、流程和技术来降低应用、更新或补丁安装时的风险。自动化性能测试的核心就是对部署前的系统施以生产环境中的工作负荷,同时衡量系统性能和最终用户体验。

自动化性能测试流程

有些机构通过将流程分割成独立的阶段,成功地实施了自动化性能测试。美科利认为,虽然每个性能测试的实施过程都有所差异,但广义上说,该流程可以分为以下四个阶段――设计、创建、执行和诊断/调优。

・ 设计

设计阶段包括定义被测业务流程,定义业务流程的平均或峰值生产时,并制定系统总体的用户和响应时间目标。该阶段中,性能测试小组将和业务部门(LOB)合作,收集性能需求。性能需求主要分为业务需求、技术需求、系统需求和团队需求等四种。

业务需求的收集通常需要和相关专家(subject matter experts-SMEs)进行交流,主要包括应用概况、业务流程列表、业务流程描述、交易列表、业务流程图表等内容。

技术需求可以通过与系统管理员和数据库管理员(DBAs)进行交流,包括环境浏览、定义系统范围的会议、生产图表等方面。

收集系统需求决定了负载测试流程的成败。系统需求的收集通常和各业务部门的项目经理相互协商决定,包括以下问题:系统在正常时段和高峰时段必须支持的用户数量是多少?系统每秒能够处理的交易数量是多少?对所有关键业务交易来说,最长的和最短的可接受响应时间是什么?用户组如何进行连接?生产环境中的系统工作负荷会遭遇什么情况?什么是交易混合(mix)?团队需求是确定参与未来负载测试的合适的小组成员,当性能测试成为卓越中心(CoE)的一个组成部分时,资源的调配和内部后勤管理等必须在设计阶段处理完成。

・ 创建

创建阶段的任务包括对设计阶段所确定的业务流程和工作负荷进行调优,使其成为自动化组件,可推动形成反复的、实际的负载。它分为自动化安装和环境安装两个重点。自动化安装通常是由性能工程师来完成的一系列连续任务:

脚本创建:录制并文档记录业务流程,形成自动化的脚本。

交易:插入时间参数,形成业务所需的逻辑计时。

参数化:将所有输入数据,如登录ID和密码用一个池(pool)来取代,每个虚拟用户因此可以使用特定数据来进入应用。

场景:通过为每组用户分配不同的脚本、连接和用户行为,从而创建生产工作负荷。

监测器:确定哪些服务器或机器要执行负载监控。

环境安装包括装配必需的硬件、软件和数据,以实现一个成功的、真实的负载测试。这需要和系统、DBA、运作和业务等各个小组进行合作。

・ 执行

执行阶段包括运行负载场景和衡量系统性能。它是由多种性能测试所组成的多步骤进程。每种类型的测试可以提供必要信息,使您能够充分了解应用的业务风险。负载测试的种类包括:

基线测试验证系统和周围环境是在合理的技术参数范围内运行。仅仅用5~10名用户来运行性能测试,确定最终用户交易性能的基线。应该在性能测试流程的开始和结束之际运行这类测试,以衡量响应时间提升的确切尺度。

性能测试在环境中模拟一个负载,从而确定系统可以处理的最优的和最大的用户数量。这些测试应该模拟平均和峰值时刻的生产能力,还应该采用真实用户行为,如思考时间、调制解调器模拟和多种浏览器类型等来最大程度地确保精确性。LoadRunner中的所有监控器和诊断能力都应该全力运行,以全面了解系统衰退和瓶颈问题。

标准测试(Benchmark Tests)设计用于衡量和对比每种机器类型、环境或应用创建在理想状态下的性能。这种测试在系统经历了可扩展性测试之后展开,用于了解不同架构的性能影响。

渗透测试(Sock Tests)设计用于在长时间内对系统运行负载测试,检查系统运行的情况。

峰值测试设计用于在一段时间内对系统模拟峰值负载,从而确保应用和基础硬件能够应对一段时间的高负载。

・ 分析、诊断和调优

诊断和调优阶段的重点在于定位问题,协助快速解决问题,并调整系统参数以最大化系统性能。在性能测试期间和性能测试之后,可以通过对监控、分析、调优、诊断四个步骤的反复运行,进一步实现性能的最优化

一个好的性能测试的ROI应该包括两个方面:风险缓解确保项目在上线之际拥有良好的性能可扩展性和性能。性能优化通过提升最终用户响应时间或降低整体硬件基础架构的需求,在一定程度上提高了系统的性能。

性能测试需要参与的人员

一个好的性能测试需要以下人员的参与。项目经理:协调多个性能项目,管理测试进度,购买必要的硬件和/

或软件,处理资源和资金问题。

业务分析人员:负责从业务角度来审核和验收(sign-off)系统性能,协助交易流程开发和性能测试进度安排。性能经理:作为团队中的联系人,负责协调性能支持小组的工作。负责管理性能小组的日常活动。性能测试人员:负责自动化测试的创建和执行,并收集测试结果。应用架构师:接收负载测试的诊断和分析信息,用于优化应用性能或解决性能缺陷。基础架构专家(DBAs、网络管理员、系统架构师):接收负载测试的调优和分析信息,用于系统性能或解决性能缺陷。

性能测试市场的绝对领导者

在性能测试市场,美科利公司拥有超过70%的份额(根据2003年Newport Group报告),是该领域的绝对领导者。此外,美科利LoadRunner所拥有的一系列关键性能使它成为该行业的领先者。

・ 按需的生产工作负荷:LoadRunner可以驱动上百甚至上千个虚拟用户来执行不同的业务流程,从而为应用模拟一种实际的生产条件。这有助于在上线之前发现潜在的性能和可扩展性瓶颈问题,同时最大程度地减少生产宕机和性能低下问题,满足服务水平和正常运行的需求。

・ 企业环境支持:LoadRunner支持近40种协议――远远超出其它的供应商。协议包括:web、J2EE、.NET、XML、Oracle、PeopleSoft、无线、Citrix和客户服务器应用。

・ 企业监控支持:LoadRunner非插入的实时性能监控器可以提供被测系统所有组件的详细信息。其中包括web服务器、应用服务器、数据库、ERP和CRM系统、防火墙和负载平衡器。

・ 诊断:LoadRunner是唯一可以跟踪、测时和检修处于负载条件下单个应用组件的性能测试解决方案。用户可以深入到一个缓慢的最终用户交易中,发现引起交易缓慢的瓶颈问题或SQL命令。

・ 基础架构调优:LoadRunner是唯一的性能测试解决方案,它提供客户定制方法论,可以在系统上线之前隔离和解决系统基础架构的瓶颈问题。

・ 自动化分析:LoadRunner拥有行业中最深入和最广泛的分析能力,可以将性能测试结果转化成可执行的、精确的开发数据,极大地降低了问题解决的时间,推动展开更多的测试循环,从而确保了上线应用的高质量。

・ 易于使用:LoadRunner是完全为QA用户而创建的。它提供形象的脚本编写语言、数据和自动关联机制、ActiveScreen技术,使得脚本录制和运行负载测试变得简单易行。

・ TurboLoad:LoadRunner的每个虚拟用户只需要最少的CPU和内存资源就可以帮助实现最大的可扩展性。这确保了在实施阶段只需要很低的或者根本没有隐性的硬件成本。

・ WAN模拟:LoadRunner通过采用网络等待时间和数据包丢失(packet-loss)配置,将生产网络模拟到负载生成器上,从而形成跨洋和跨地区网络连接模拟。这样,远程用户就能避免遭遇低下的性能问题,业务受到影响的风险也随之降低。

・ 统一的脚本录制引擎:LoadRunner拥有和美科利应用管理产品相同的脚本录制引擎。这样就降低了美科利解决方案的培训成本、脚本录制成本和运营总成本。

小结

使用软件应用不像使用一辆汽车,其固定部件只在损坏了之后才调换。软件应用每周、每月、每年都在发展变化,无论该应用是设计用于提升竞争力还是应对业务环境的。因此,这种变化本身也带来了另外一些风险,企业必须面对并管理好这些风险。

使用先进的性能测试解决方案和产品(如美科利 LoadRunner)实现自动化性能测试,企业可以在系统上线之前,验证应用是否满足了业务的需求;有条不紊地展开应用部署;量化变更对最终用户体验的影响;精确定位出错组件,并快速解决问题。