8款负载测试工具,总有一款适合你
大多数开发人员经常进行性能测试,但容易忽视的一种测试是负载测试。
虽然性能测试与负载测试常常换着使用,但两者不一样。性能测试是一种通用的做法:在真实场景下测试应用程序的响应性和稳定性。
负载测试是性能测试的一个特定子集,旨在确定应用程序在特定数量的用户同时使用时的服务质量。负载测试软件模拟众多用户同时使用一个应用程序的情形,从而让你识别大规模并发造成的瓶颈。
比如说,我注意到博客应用程序的用户在尝试编辑自己的内容时遇到了速度减慢,这是我在常规测试过程中从未注意到的问题。通过使用Apache JMeter这款负载测试软件,我发现了一个Ruby代码库(gem)导致这项功能减速20%。不借助该软件,我自己永远查不出瓶颈的根源。
负载测试似乎是一种明显的做法,但可能被忽略。如果你每天测试自己的应用程序,很容易忘了这一点:你看到的和用户看到的可能大不一样。任何客户端-服务器应用程序需要负载测试,以便确定其局限性,并改善用户体验。
当然,你自己的个人开发环境与应用程序在专业人员使用期间看到的相去甚远。虽然在生产环境中加载测试有一些优点,但复制自己的环境或再现客户的环境更现实更安全。无论你做什么,都要确保你的测试环境未使用PayPal之类的第三方插件。许多模块可模拟应用程序的那些方面,但唯一与测试进行交互的应该是虚拟用户。
最受欢迎的负载测试软件是LoadRunner,但市面上有许多可行的替代方案。下面,我们评估了其中几款负载测试软件套件的优缺点,以便你评估哪款最适合自己的要求。
一、免费解决方案
Apache JMeter
与大多数Apache软件一样,JMeter也是开源的,因而是独立开发人员的理想选择,但对于每天预计有数千用户的应用程序而言,它不是那么出色。
优点:
- 免费使用
- 易于设置,可从任何环境来运行
- 脚本易于使用和复制
- 添加插件,即可高度定制
缺点:
- 数据可视化不方便
- 没有分布式测试;无法同时测试两个不同的用例
- 扩展性不如高级测试套件
链接:https://jmeter.apache.org/
Locust
Locust是一款基于Python的负载测试软件。它完全开源,让用户可以使用纯粹的Python代码创建自己的测试套件。
优点:
- 开源
- 使用Python可高度定制,因而非常人性化
缺点:
- 没有内置的可视化服务
- 创建超过几百个虚拟用户时,性能差
链接:https://locust.io/
Loader.io
Loader.io是一种基于云的负载测试服务,提供强大的免费版。
优点:
- 易于使用和理解的基于Web的界面
- 数据可视化简洁
- 无需安装
缺点:
- 与收费版中无限制的目标主机相比,免费方案只允许一个目标主机
链接:https://loader.io/
Gatling
Gatling是另一款开源负载测试套件。与Locust一样,它允许使用基于文本的脚本,使用自己的特定域语言。还有名为Gatling FrontLine的收费版。
优点:
- 开源
- 易于设计自定义测试脚本
- 一目了然的数据可视化
缺点:
- 界面不如其他开源软件套件直观
- 不支持众多协议
链接:https://gatling.io/
BlazeMeter
BlazeMeter是一种流行平台即服务,旨在与JMeter协同工作。它能弥补JMeter在扩展性和可视化方面的不足,但不是开源的。
优点:
- 出色的可视化和报告
- 可高度扩展
- 与JMeter全面兼容
缺点:
- 客户支持很慢
链接:https://www.blazemeter.com/load-testing
二、收费工具
Radview WebLOAD
WebLOAD是市面上历史最久的负载测试软件套件之一,目前版本是10.3.1。它有一款功能有限的免费版,高级版价格取决于每天预计的虚拟用户数。它的测试基于JavaScript。
优点:
- 易于使用和设置,基于Web的用户界面
- 分析结果显示清晰,并不杂乱
- RadView提供响应迅速的支持
- 虽然没有列出价格,但据称比其他高级负载测试软件更具成本效益
缺点:
- 目前没有录制功能
- RadView在网站上没有显示标价
链接:https://www.radview.com/webload-download/
Micro Focus LoadRunner
LoadRunner是最受欢迎的负载测试工具之一,可以说是最可靠、用途最广泛的负载测试软件套件。与WebLOAD一样,它也有免费版;价格随运行模拟的数量而增加。
优点:
- 易于使用和设置,运行起来很快,不需要服务器太长的停机时间
- 非常适合多种场景,易于创建多种类型的模拟用例
- 一项新的测试版功能让它可与JMeter集成
缺点:
- 价格偏高,免费版只允许50个用例
- 数据可视化不方便
链接:https://software.microfocus.com/en-us/products/loadrunner-load-testing/overview
IBM Rational Performance Tester
Rational Performance Tester是IBM开发的工具,主要用于测试基于Java的应用程序。 IBM为使用软件许可证提供了好几种支付方案。
优点:
- 分布式负载测试易于设置
- 用户界面简单易用
- 与许多软件套件相比,可更高效地完成数据参数化
缺点:
- 购买软件许可证是复杂的过程
- 不支持非HTTP协议
- 月度许可证的费用比许多竞争对手都贵
链接:https://www.ibm.com/developerworks/downloads/r/rpt/index.html
SmartBear LoadUI Pro
这款负载测试工具出自流行的SoapUI API测试软件的开发商之手。它最适合测试基于SOAP的应用程序,是市面上最昂贵的工具之一。
优点:
- 界面很直观,可以实时配置
- 很容易与SoapUI兼容
- 与亚马逊云集成
缺点:
- 设置测试学起来费劲
- 年度软件许可证非常昂贵