性能测试的思路

上传人:s9****2 文档编号:431933243 上传时间:2023-01-24 格式:DOCX 页数:5 大小:63.03KB
返回 下载 相关 举报
性能测试的思路_第1页
第1页 / 共5页
性能测试的思路_第2页
第2页 / 共5页
性能测试的思路_第3页
第3页 / 共5页
性能测试的思路_第4页
第4页 / 共5页
性能测试的思路_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《性能测试的思路》由会员分享,可在线阅读,更多相关《性能测试的思路(5页珍藏版)》请在金锄头文库上搜索。

1、性能测试的思路文:解决方案技术中心 邸贺华Is that has the standard process workflow for performance testing? 可能大家都希望找到一种关于性能测试的标准化的方法,但是到目前为止还没有一种 通用的方法能够普遍适用于所有性能测试案例或大多数性能测试的案例。这是由性能测试本 身是一个非常复杂的过程决定的。影响性能测试的因素可能来源于被测项目本身、测试环境、 业务的驱动程序、验收标准、测试所应用的技术、测试的日程、测试人员的能力和测试工具 等等。而且这些因素在整个项目中所占的比例不同和它们由不同的事件所引起、在不同的时 间出现以及对它们不

2、同的关注度都会影响到测试的成败,因此对于寻找一种统一的性能测试 方法显得有些不契合实际。我们性能测试人员能够做到的是如何在各种因素影响下来更有效 的开展我们的测试工作,从而使我们的项目最终取得成功。那么如何使我们的性能测试更有 效率呢?我将从以下段落来阐述。The definition of Performance Testing 首先我们要了解性能测试的基本定义,它是指在预期用户或是大用户量情况下度量系统 响应时间,系统地资源消耗和吞吐量的一种测试。性能测试同时也用来确认系统性能是否满 足用户需求,一般通过负载产软件包 (load generation software package) 模

3、拟应用的真实使 用情况。性能测试主要包含三种类型的测试:负载测试(Load Test)-模拟真实环境下的用户活动,被度量的值包括吞吐量(Throughput)、 稳定性(stability)和应用的响应(responsiveness)。压力测试(Stress Test)-用来检测应用在扩展情况下的临界点(breaking point)。举例来说, 向服务器尽可能快地发送大量交易数据就是对应用的一种压力测试。这种测试不仅对检测系 统的最大承受压力能力,而且也能够检测每个时间度量单位内系统能够处理的最大请求数 可靠性测试(Reliability Test)-检测应用在预期负载下能够持续一定性能水平

4、的时间。 这种测试在预期时间内把恒定的负载施加于应用上。以上每种测试允许测试人员对于被测应用进行完整的性能分析,识别出应用瓶颈。The work Process of Neusoft performance testing 东软性能测试流程图是东软性能工程的重要组成部分,旨在通过全面、有效的过程和方法指 导下,成功顺利地完成软件性能测试项目。流程图中包含了计划、执行、分析、收尾四个阶 段,并且在每个阶段中又包含了一系列活动,他们相互支持,相互依赖,形成了一个具有 PDCA 质量持续提升特点的工作环。Most common activities relevant to successful pe

5、rformance testing一个性能测试周期是由一系列的活动组成的,只有我们充分的理解和把握住每个活动 背后的细节,才能做好我们的性能测试。这些活动包括项目的背景、性能验收的标准、性能测试的设计、测试环境的搭建、测试 脚本的录制、测试的执行、测试的分析、性能调优和回归、测试报告的生成,简单而言我们 可以归纳为以下的英文单词方便记忆。Background, Criteria, Design, Install, Script, Execute, Analyze, Tuning&Regression, Report。下面我对这些活动做出具体的解释:Background:进行性能测试之前我们要对

6、项目的相关背景有所了解。项目的背景主要包括项 目的意向、性能测试的目标、系统性能各项指标、项目开发的周期、项目的进度、项目的预 算、现有的测试环境和工具、性能测试人员的技能、性能关注的优先级和性能问题对业务的 影响度。如果我们对这些方面理解的不充分,那么性能测试工作将会遇到不可避免的阻挠, 我们不仅会浪费大量的时间,甚至导致我们整个测试的失败。Criteria :性能验收的标准包括项目性能的需求、性能的目标和性能的阀值。由于在项目的 生命周期中这些标准可能会发生变化,因此我们在性能测试中要与这些变化保持同步。对于 这些标准我们可以给出简单的定义,以便加深对它们的了解并加以区分。Performa

7、nce requirements:是指与用户所签署在合同中性能需求条款,它代表了用户的 固定业务需求,是不可以拿来进行协商的。Performance goals: 是指对于产品发布的预期性能值,但是在某些情况下可以它可以进 行适当的调整,产品的终端用户比较关注的一些指标。Performance testing objectives:是指为了提高产品的性能,对性能测试过程中的一些数值 加以定义并以期达到的一系列指标。这些指标是不必进行量化的或与系统的其他性能标准相联系的。Performance targets: 是指在某特定的状态下系统资源的预期值。例如响应时间,吞吐量 和资源的利用率。Perf

8、ormance thresholds: 是指系统最大的可接受的性能值,例如响应时间,吞吐量和资源的利用率的阀值。Design:对性能测试的设计也可计说成是进行性能测试所使用的一些策略。和其它类型的测 试一样,在做性能测试之前必须要对测试有过良好的设计,只有这样我们得到的结果才能最 大限度地与我们的产品在实际上线时获得的数值一致。设计主要是对测试用例的选取来验证 产品将达到的性能需求、测试场景的制定来反映出产品在生产环境中的真实情况、各种测试 数据的创建以期来模拟不同类型的应用者。当然这里我们的设计思路一定要与我们项目的背 景相结合。Instal 1:这一过程是指测试环境的搭建。包括操作系统,应

9、用服务器和数据库的选取、安装 和配置,数据库的数据导入,应用程序的部署,自动化测试工具的选取来形成以期的负载压 力环境等等。另外,为了确保我们收集到的数据能够准确地反映出系统上线的结果,我们要 对测试工具的参数配置和负载的分布尽量符合产品的实际的业务工作流程。Script:对于性能测试脚本的录制,无论你使用什么样的工具来生成脚本和负载,它的最终 目的就是要与被测系统相交互并产生所期望的数据。一个好的测试工具不仅可以生成你所需 要的脚本,而且它应该具有很强的维护机制,这样将会大大减少你的脚本维护时间,从而把 更多的精力放在测试本身上去。Execute:在性能测试的执行中,我们首先运行一次测试以建

10、立基准。验证环境与生产环境 越相似,应用程序部署后的性能令人满意的可能性就越大。因此,一开始有一个符合实际情 况的验证环境很重要。幸运的话,基准性能将符合性能目标,并且应用程序不需要任何调整。 但更可能的情况是,基准性能不令人满意。然而,记录初始测试环境和基准结果可以为调整 工作提供坚实的基础。进行压力测试。压力测试是性能测试的一种专门形式,它与其他工程领域的破坏性测试 相似。压力测试的目的是使应用程序产生故障,通过增加处理负载使其超过性能的降低,直 到由于资源饱和或发生错误而使应用程序开始出问题。压力测试有助于揭示细微的错误,这 些错误本来要到部署应用程序时才会被发现。由于此类错误通常是因设

11、计缺陷所致,压力测 试应该早在开发阶段便在应用程序的每个区域上开始进行。在其源头修复这些细微的错误 而不是忽视这些错误,直到它们可能在应用程序中表现出症状时才修复它们。同时我们也要时刻关注性能测试策略中的工作目标和性质。例如某个性能测试内容在执 行时由于某种原因异常中止,要尽快确认是否是性能瓶颈,而一旦确定是性能瓶颈,该项性能测试内容就要终止,表明已经达到检测目标,不要再尝试重新运行以期发现更多的问题。其次要关注性能测试环境中各项要素的变化,例如基础数据的规模变化,测试数据的数量变 化,系统资源的使用情况的变化等等。Analyze :当测试场景执行完成后,很多测试工程师认为最困难的阶段到来了,

12、那就是性能 测试结果分析,那么怎样来分析性能测试结果呢?以下四步是对性能测试的结果分析做一个 简要的归纳。在整个测试场景执行过程中,测试环境是否正常。如果测试过程发生一些异常,这样的 结果往往不准确,更不需要分析。测试场景的设置是否正确、合理。测试场景的设置是否正确对测试结果有很大的影响。 因此当一次测试结束后,需要分析一下是不是场景设置不正确引起。测试结果是否暴露出系统的一些问题。如果有必要我们可以调整场景(比如增大压力) 进行测试。而对于在测试过程中,使系统表现不正常的测试场景生成的结果则要进行深 入地分析。实际上,分析能反映性能问题的测试结果才是性能分析阶段要做的主要工作。从对性能测试的

13、结果数据中我们可以很快发现系统性能问题的所在,例如从JVM的使用和回收情况可以定位到具体的应用程序代码问题,从操作系统的CPU、内存和磁盘 的使用情况来定位到系统的瓶颈问题,从数组库的等待事件来发现数据死锁问题等等。Tuning&Regression:性能测试分析人员经过对结果的分析以后,有可能提出系统存在性能 瓶颈。这时相关开发人员、数据库管理员、系统管理员、网络管理员等就需要根据性能测试 分析人员提出的意见同性能分析人员共同分析确定更细节的内容,相关人员对系统进行调整 以后,性能测试人员进行回归测试,与以前的测试结果进行对比,从而确定经过调整以后系 统的性能是否有提升,直到系统达到你要优化

14、的目标。这里有一点需要提醒大家,就是在进 行性能调整的时候,最好一次只调整一项内容或者一类内容,避免一次调整多项内容而引起 性能提高却不知道是由于调整那项关键指标而改善性能的。下面列出可能要进行优化的几个 方面。硬件的优化网络的优化应用服务器、数据库等配置的优化源代码、数据库脚本的优化Reports:对最终的测试结果进行归纳总结后形成了我们的性能测试报告。如果测试报告没 有清晰的表达出读者所关心的测试结论,那么也将会影响到整个测试的成败,而且这种失败 并不是由于任何的技术原因导致的。因此一个规范的测试报告在性能测试中也是至关重要 的。规范化的测试报告应该包含以上所讲的全部要素。实际上,性能测试从始至终都应该是相当严谨的一项工程,各个阶段的工作环环相扣, 性能测试工程师应该认真对待各个阶段的工作。如果一味地追求找出系统瓶颈,无疑是舍本 逐末的做法。通过我们对性测试的深入了解,合理的去计划、组织、管理和实施将会对我们 的性能测试工作起到事半功倍的效果。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号