《应用程序性能测试的艺术(第2版)》—第2章 2.2节如何选择性能测试工具

2.2 如何选择性能测试工具
由于对工具本身的技术评估不够,很多性能测试项目在脚本编写阶段就陷入问题的泥潭。很多测试服务供应商都支持来自各种工具供应商的解决方案,他们通常根据特定的客户性能测试需求来选择合适的性能测试工具。

Web技术如日中天,几乎每个性能测试供应商都提供HTTP/S的支持。然而,在Web技术里面还有很多特别的设计,尤其是客户端。如果你在应用中使用了大量的JavaScript、JSON或者微软的Silverlight,你就得充分考虑所选工具的功能以及技术限制。下面是一些关于如何选择工具的建议。

协议支持
选择性能测试工具最重要的一点就是确保你所选的工具能够支持你的应用协议栈,也就是说你的应用客户端如何同服务端进行通信。比如,在绝大多数情况下,一个典型的浏览器会使用HTTP或者HTTPS作为它的通信协议。

授权模式
在工具满足应用协议栈需求的前提下,还要看工具的授权模式。大多数性能测试供应商通过下列模块进行收费。

允许执行的最大规模负载测试(用虚拟用户数来衡量)
这个计价方式通常会采用区间收费,比如以100个虚拟用户作为入门价,虚拟用户数越多,收费越贵。也有一些供应商会以一个较高的固定价格来提供无上限的虚拟用户数。有一些供应商会提供一种短期授权,允许用户临时提高工具允许的最大虚拟用户数,来获得更大的负载。

工具支持的额外协议种类
当用户购买工具的时候,也许只选择了HTTP协议。但是后来由于项目需要,需要测试其他协议,比如Citrix,这样就需要支付额外的协议费用。新购买的额外协议是否适用已经购买的虚拟用户数,不同供应商会有不同的做法。

额外的集成和监控插件
工具供应商通常会有一些可选插件,用户可以在购买基础软件授权后按需购买可选插件。插件通常包括一些特定技术栈的监控工具,比如Oracle、MS SQL Server和IIS等;同时测试工具还可以和应用性能管理工具(Application Performance Monitor,APM)或者持续集成(Continuous Integration,CI)工具进行集成。这些集成通常会收取一定费用。当考虑购买这些插件时,你需要清楚这些功能通常需要在目标服务器上安装相应的代理软件,并且允许它们访问网络;你必须确保这些需求在被测环境(System Under Test,SUT)是可接受的。

在确定采购工具的候选名单时,确保你对各种工具的授权模式是非常清楚的。

脚本能力
很多性能测试工具提供商声称他们工具产生的脚本基本或者完全不需要手工编辑。对于一些简单的页面浏览,或许可以做到完全不需要手工编辑脚本。但事实是你总会遇到需要手工编辑脚本的场景(或许是插入一些JavaScript或者一些代码模块来处理复杂的客户端逻辑)。

你也许会发现你不得不对录制的测试用例进行手工编辑以让它能够正确回放。一个工具可能需要你在每个脚本上耗费几个小时的时间来让它正确运行,而另一个工具基本可以自动化你刚才的操作,因此在选择工具的时候你就必须充分考虑这部分额外工作对你的性能测试项目和测试团队带来的影响。

测试团队的技术能力也是一个需要考量的因素。如果队员有着很强的开发背景,那么让他们在测试脚本中进行一些手工编码应该不成问题。但如果你的队员不熟悉编码,尽管前期投入比较大,你还是更应该考虑一款提供具有向导功能的性能测试工具来帮助测试人员更容易地创建脚本。

解决方案还是压测工具
有些供应商只提供性能测试工具,有些供应商提供整套的性能测试解决方案。解决方案通常要比单纯的性能测试工具贵,但是它可以提供更完善的分析。除了性能测试,解决方案供应商通常提供:自动化需求管理、自动化数据构造和管理、性能测试前的应用性能调优、响应时间预测和容量评估、细到类和方法级别的APM应用性能分析、应用发布后的终端用户体验(EUE,End User Experience)监控以及测试结果/测试资产的可视化的数据看板。

自研还是外包
如果你的资源有限或者项目周期非常紧张,那还是考虑将性能测试项目外包给一个供应商会更加合适。一些工具供应商会提供一整套服务,从带有实施支持的工具采购到全方位的性能测试服务。这些公司在测试领域非常专业,能够使用合适的性能工具集来提供专业的性能测试服务。使用外包模式的优势在于用户不用为自己的应用专门购买一个性能测试工具,节省了时间和资源成本。但如果用户的场景需要进行多次性能测试,使用外包模式来完成性能测试会比自己购买或者研发性能测试工具贵得多。

其他可选项
如果你的应用是基于Web的,而且它也是面向消费者的,你也许有一个更好的选择——软件即服务(Software as a Service,SaaS)的性能测试服务。现在有很多供应商通过Web提供性能测试服务,他们帮你实现整个测试流程:编写关键测试用例,然后通过分布在各地的施压引擎来对你的应用施加压力。采用这种方式,用户不需要自己提供足够数量的施压机器,性能测试服务供应商的施压节点通常部署在主干网络,能够真实地模拟大量终端用户。对于低频的大规模性能测试,SaaS化的解决方案非常有吸引力,而且性能测试服务供应商通常还提供终端用户体验监控。

采用SaaS化性能测试服务的一个不足之处在于你需要为每次测试付钱,对被测服务器和网络的监控也需要用户自己来负责。当测试过程出现问题,用户需要通过重复测试来排查时,整体开销就相当可观了。

总而言之,SaaS化的性能测试服务还是非常值得调研的。附录C列举了一些提供这类服务的供应商。

时间: 2024-10-23 07:39:22

《应用程序性能测试的艺术(第2版)》—第2章 2.2节如何选择性能测试工具的相关文章

《全栈性能测试修炼宝典 JMeter实战》—第1章 1.4节不仅仅是性能测试

1.4 不仅仅是性能测试 随着国内软件质量体系的健全,企业逐渐意识到软件测试质量不单单是满足功能流程顺畅就行,测试效率和用人成本的降低也是趋势,更要为软件的稳定和易用性等质量保障来提高产品黏性留住用户.可以这么说,一个成熟的大型产品必须有过关的性能测试把关,这不是一个简单的事情,从需求.架构.硬件.数据库.代码等层面都需要精心设计和测试. 那么如何提高职业技能和核心价值从而赚取更多的劳动报酬?后续测试的职业发展会碰到哪些问题,测试的捷径在哪里? 全栈一般是技术方面的领导者,需要涉猎广?懂得如何解

《精通软件性能测试与LoadRunner最佳实战》—第2章2.5节 测试脚本编写

2.5 测试脚本编写精通软件性能测试与LoadRunner最佳实战性能测试用例编写完成以后,接下来就需要结合用例的需要,进行测试脚本的编写工作.本书后面章节将讲述了有关LoadRunner协议选择和脚本编写的一些知识,如果您还不是特别清楚,请参见第3-6章内容.关于测试脚本的编写在这里着重强调以下几点. (1)协议的正确选用,关系到脚本是否能够正确录制与执行,十分重要.因此在进行程序的性能测试之前,测试人员必须弄清楚,被测试程序使用的是什么协议. (2)测试脚本不仅可以使用性能测试工具来完成,在

《精通软件性能测试与LoadRunner最佳实战》—第2章2.7节 测试场景运行

2.7 测试场景运行精通软件性能测试与LoadRunner最佳实战测试场景运行是关系到测试结果是否准确的一个重要过程.经常有很多做测试的人员花费了大量的时间和精力去做性能测试,可是做出来的测试结果不理想.原因是什么呢?关于测试场景的设计在这里着重强调以下几点. (1)性能测试工具都是用进程或者线程来模拟多个虚拟用户,每个进程或者线程都是需要占用一定内存的,所以要保证负载的测试机足够跑设定的虚拟用户数,如果内存不够,请用多台负载机分担进行负载. (2)在进行性能测试之前,需要先将应用服务器"预热&

《全栈性能测试修炼宝典 JMeter实战》—第2章 2.1节性能测试初体验

第2章 性能测试初体验 全栈性能测试修炼宝典 JMeter实战 从本章你可以学到: 性能测试的价值 性能测试流程 性能测试成功与失败要素 不同角色看性能 性能测试工具选择 性能测试相关术语 性能测试通过标准 性能测试趋势 性能测试是一项综合性的工作,致力于暴露性能问题,评估系统性能趋势.性能测试工作实质上是利用工具去模拟大量用户操作来验证系统能够承受的负载情况,找出潜在的性能问题,分析并解决:找出系统性能变化趋势,为后续的扩展提供参考.测试显然不是录制脚本那么简单的事情(而且现在很多系统还无法录

《全栈性能测试修炼宝典 JMeter实战》—第2章 2.5节性能测试工具选择

2.5 性能测试工具选择 工欲善其事必先利其器,性能测试时模拟大量负载需要工具帮忙,市面上可供使用的负载工具繁多,如何选择呢? 首先我们要明白负载工具是帮助我们来模拟负载的,对于性能测试来说,工具并不是核心,分析.评估.找出性能问题才是核心,这些是主观因素:工具是客户因素,自然要降低其对结果的影响,所以工具选择时我们有几个方面要考虑. (1)专业.稳定.高效,比如Loadrunner,工业级性能负载工具. (2)简单易上手,在测试脚本上不用花太多时间. (3)有技术支持,文档完善,不用在疑难问题

《精通软件性能测试与LoadRunner最佳实战》—第2章2.1节性能测试的基本过程

第2章 性能测试过程概述 2.1 性能测试的基本过程精通软件性能测试与LoadRunner最佳实战笔者所在公司招聘性能测试人员时,经常会问一个问题"您能否简单地介绍一下性能测试的过程?"多数应聘者的回答差强人意,原因是很多人不是十分清楚以至于回答问题的思路混乱.其实,大家在应聘性能测试职位时,必须要清楚这个职位是具体做哪些工作的,并且按照工作的流程把每一个环节都表述清楚.下面笔者将结合自己多年的工作经验向读者介绍一下,性能测试的过程到底是如何进行的. 为了方便大家了解性能测试的过程,笔

《精通软件性能测试与LoadRunner最佳实战》—第2章2.2节性能测试需求分析

2.2 性能测试需求分析精通软件性能测试与LoadRunner最佳实战性能测试的目的就是把客户的真正需求搞清楚,这是性能测试最关键的过程.有很多客户对性能测试是不了解的,可能您会因为对客户提出的"我们需要贵单位对所有的功能都进行性能测试"."系统用户登录响应时间小于3秒"."系统支持10万用户并发访问"等要求所困扰.不知道您是不是看出了上面几个要求存在的问题, 下面让我们逐一来分析一下这几句话. 1."我们需要贵单位对所有的功能都进行性

《精通软件性能测试与LoadRunner最佳实战》—第2章2.3节性能测试计划

2.3 性能测试计划精通软件性能测试与LoadRunner最佳实战性能测试计划是性能测试的重要过程.在对客户提出的需求经过认真分析后,作为性能测试管理人员,需要编写的第一份文档就是性能测试计划,性能测试计划非常重要,在性能测试计划中,需要阐述产品.项目的背景,将前期的需要测试性能需求明确,并落实到文档中.指出性能测试可参考的一些文档,并将这些文档的作者.编写时间.获取途径逐一列出,形成一个表格,这些文档包括:用户需求规格说明书.会议纪要(内部讨论.与客户讨论等最终确定的关于性能测试内容)等性能测

《精通软件性能测试与LoadRunner最佳实战》—第2章2.11节性能测试总结

2.11 性能测试总结精通软件性能测试与LoadRunner最佳实战性能测试工作完成以后,需要编写性能测试总结报告. 性能测试总结不仅使我们能够了解到如下内容:性能测试需求覆盖情况,性能测试过程中出现的问题,我们又是如何去分析.调优.解决的,测试人员.进度控制与实际执行偏差,性能测试过程中遇到的各类风险是如何控制的,而且,还能描述经过该产品/项目性能测试后有哪些经验和教训等内容.随着,国内软件企业的发展.壮大,越来越多的企业也更加重视软件产品的质量,而好的软件无疑和良好的软件生命周期过程控制密不