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

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

本节书摘来自异步社区《应用程序性能测试的艺术(第2版)》一书中的第2章,第2.2节如何选择性能测试工具,作者【新西兰】Ian Molyneaux(莫得尼克斯),更多章节内容可以访问云栖社区“异步社区”公众号查看。

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列举了一些提供这类服务的供应商。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
1月前
|
数据采集 监控 机器人
浅谈网页端IM技术及相关测试方法实践(包括WebSocket性能测试)
最开始转转的客服系统体系如IM、工单以及机器人等都是使用第三方的产品。但第三方产品对于转转的业务,以及客服的效率等都产生了诸多限制,所以我们决定自研替换第三方系统。下面主要分享一下网页端IM技术及相关测试方法,我们先从了解IM系统和WebSocket开始。
49 4
|
1月前
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
29天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
168 17
Selenium:强大的 Web 自动化测试工具
|
2月前
|
机器学习/深度学习 人工智能 算法
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
BALROG 是一款用于评估大型语言模型(LLMs)和视觉语言模型(VLMs)在复杂动态环境中推理能力的基准测试工具。它通过一系列挑战性的游戏环境,如 NetHack,测试模型的规划、空间推理和探索能力。BALROG 提供了一个开放且细粒度的评估框架,推动了自主代理研究的进展。
46 3
BALROG:基准测试工具,用于评估 LLMs 和 VLMs 在复杂动态环境中的推理能力
|
2月前
|
监控 测试技术 开发工具
移动端性能测试工具
移动端性能测试工具
59 2
|
2月前
|
安全 前端开发 测试技术
如何选择合适的自动化安全测试工具
选择合适的自动化安全测试工具需考虑多个因素,包括项目需求、测试目标、系统类型和技术栈,工具的功能特性、市场评价、成本和许可,以及集成性、误报率、社区支持、易用性和安全性。综合评估这些因素,可确保所选工具满足项目需求和团队能力。
|
2月前
|
安全 网络协议 关系型数据库
最好用的17个渗透测试工具
渗透测试是安全人员为防止恶意黑客利用系统漏洞而进行的操作。本文介绍了17款业内常用的渗透测试工具,涵盖网络发现、无线评估、Web应用测试、SQL注入等多个领域,包括Nmap、Aircrack-ng、Burp Suite、OWASP ZAP等,既有免费开源工具,也有付费专业软件,适用于不同需求的安全专家。
248 2
|
2月前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
|
2月前
|
数据采集 缓存 测试技术
性能测试中,除了迭代次数,还有哪些因素会影响测试结果?
性能测试中,除了迭代次数,还有哪些因素会影响测试结果?
46 2
|
2月前
|
测试技术 数据库连接 数据库
测试脚本的编写和维护对性能测试结果有何影响?
测试脚本的编写和维护对性能测试结果有着至关重要的影响,
35 1