WebLOAD:商业负载测试工具即将开源

  • Floyd Marinescu
  • 郭晓刚

2007 年 6 月 25 日

话题:Java.NETRuby语言 & 开发架构

WebLOAD 是来自Radview软件的负载测试工具,它可被用以测试性能和伸缩性,也可被用于正确性验证(验证返回结果的正确性)。其测试脚本是用 Javascript(和集成的 COM/Java 对象)编写的,并支持多种协议,如 Web(包括 AJAX 在内的 REST/HTTP)、SOAP/XML 及其他可从脚本调用的协议如 FTP、SMTP 等,因而可从所有层面对应用程序进行测试。Radview 声称拥有超过 1600 个客户和 12 年的开发 WebLOAD 的经验,他们在今年二月发布了 WebLOAD 专业版的 v8 版本。而在四月,Radview 则以 GPL 协议发布了 WebLOAD 的开源社区版本,该版本可从 webload.org 下载。

Chris McMahon 评论说,“一直以来开源负载测试工具还算不错,但大家普遍都同意性能测试是商业工具比开源工具远为优胜的主要方面。构建一个好的性能测试工具是困难的。Radview 的贡献使整个情况瞬间扭转。”

专业版是在社区版的基础上开发的,两个版本之间最主要的区别是,开源版本将产生模拟负载的服务器限制为一台(但没有对并发作任何限制)。专业版还提供更多的报告和协议供用户选择。

InfoQ 向 Radview 的 Rami Goraly 作了进一步的了解。关于 WebLOAD 的常见用途,Rami 解释道:

WebLOAD 通常用作 QA 团队的独立运行的工具,在开发周期的验证阶段,被测系统(System Under Test,SUT)投入实用之前,于模拟环境中对被测系统进行测试。

在某些情况下,WebLOAD 也可以在生产环境中使用,以执行监控应用程序的任务,因为 WebLOAD 可以提供极佳的系统健康统计数据,甚至可以在出现问题的时刻发出 Email 通知。

比较少见的情况是在开发的早期阶段就开始使用 WebLOAD——但我们见过这种情况。一般来说,我们,以及其他测试专家,都相信性能测试应该在开发周期中尽早开始。例如,WebLOAD 可以被用来对 Web Services、Java 和 COM 或者 SUT 的其他界面进行单元测试。通过使用 WebLOAD 的命令行界面,WebLOAD 可以将这些测试作为自动构建过程的一部分来执行。

WebLOAD 还有一个命令行界面,允许以批量模式执行(不经过用户界面)。Rami 解释说“可以预先准备一个测试脚本,然后通过任何 ALM(automatic lifecycle management,自动化生命周期管理)或持续集成工具调用这个命令行界面来执行脚本,跟 JUnit 非常相似。”

Rami 指出了 WebLOAD 比另两个常用的开源负载生成工具的优胜之处:

JMeter

  • JMeter 只提供了可视化编辑方式,跟 WebLOAD 提供的 Javascript 编辑方式相比,WebLOAD 在创建测试脚本方面更加灵活。
  • JMeter 只适用于 Java 程序,因此不能在测试脚本中调用 COM 对象。
  • JMeter 比 WebLOAD 支持的服务器监控协议要少。
  • JMeter 不支持对 HTTPS 网站进行脚本录制。
  • WebLOAD 的分析和报告能力要超过 JMeter。
OpenSTA

  • OpenSTA 不能跨平台——它是一个只能运行在 Windows 平台上的负载引擎。
  • 在功能上两者持平,但 OpenSTA 较难学习和使用——它的开发环境不够直观,而且它的脚本语言是非标准的,因此也较难学习。
  • 过去两年中 OpenSTA 都没有推出过新版本。这个项目已经差不多死掉了。

WebLOAD 专业版的能力规划测试是一项有意思的功能,用户可以指定比如说“测试,直到我达到 80% 的利用率”,Rami 对此作了说明:

WebLOAD 的面向目标的测试,也称为“巡航控制(Cruise Control)”,是基于 Radview 开发的一项专利技术。简而言之,你需要给 WebLOAD 定义一组目标(目标之间可用逻辑与 / 或来结合),WebLOAD 会定期检查这些目标,一但目标达成,用户就会得到通知。用户可以预先决定当目标达成时是停止测试还是继续。

RadView 已经获得了风险投资,在最近的一轮投资中它从以色列机构投资者的手里获得了 350 万美元。Rami 说“这笔资金将被用于推进 WebLOAD 的开源,扩大 Webload.org 社区,以及将更多功能推向市场,诸如对多媒体的支持和对 Oracle Forms 的支持。”未来他们还计划用基于 Eclipse 的模块来替换现在的 WebLOAD 用户界面,让 UI 模块成为 Eclipse 插件。

查看英文原文:WebLOAD: Commercial Load Testing Tool Recently Open Sourced
Java.NETRuby语言 & 开发架构