用于 Ajax 负载测试的工具

16

似乎有很多压力/负载测试工具支持 AJAX。
我想知道这些工具的实现效果如何。

它们只记录 HTTP 请求并重放吗?
这是测试 AJAX 应用程序的正确方法吗?
谷歌如何测试他们的 AJAX 应用程序?

14个回答

6
大多数负载测试工具在进行AJAX负载测试时都是以相同的方式进行的:它们执行在“录制”阶段(可以是页面请求、图像请求或甚至是AJAX请求)期间看到的原始HTTP流量。它们之间的主要区别在于它们的记录器/IDE工具有多好,以及它们如何轻松地帮助您参数化HTTP请求,使其反映基于动态/实时结果的真实世界流量。 警告,明目张胆的推销:唯一真正的例外是我们公司BrowserMob。它不是模拟观察到的流量,而是使用真实的Web浏览器来驱动负载。因此,AJAX部分由浏览器处理。 有用的链接:与上面的明目张胆的推销无关(尽管我希望您查看一下-我们公开定价并提供免费试用),我最近为Ajaxian撰写了一篇关于 AJAX负载测试的文章。它更详细地介绍了使用真实浏览器用户(RBUs)与虚拟用户(VUs)的技术影响。

2
请看LoadBooster(https://www.loadbooster.com)。它利用无头可编程浏览器PhantomJS/CasperJs测试网站。Phantomjs将解析和渲染每个页面,执行客户端脚本。无头浏览器方法更容易编写测试场景来支持复杂的AJAX重型Web 2.0应用程序,浏览器导航,鼠标点击和按键输入到浏览器或等待直到元素存在于DOM中。LoadBooster也支持Selenium HTML脚本。免责声明:我为LoadBooster工作。

1

如果你只关心功能,像Watin, Watir, Selenium或者其他任何功能工具都可以。只要在功能测试中放置足够的时间来允许ajax回调,那应该就没问题了。

补充我的回答,

如果你想进行javascript单元测试,你可以使用像qunit这样的东西,正如另一个LosTechian在这篇文章中所描述的。这是一个相当有创意的使用nunit插件和qunit来集成js单元测试的方法。

出乎巧合的是,刚才发布qunit测试博客文章的同一个人,昨天刚发布了一篇关于这个话题的文章。


6
这不是负载测试。负载测试是测试在特定负载下应用程序的性能,例如“在100个并发用户下表现如何”。 - Morgan T.

1

1

所有的负载测试工具都支持AJAX-它们只是额外的http连接。

市面上有一些免费的工具,如Jmeter, BadBoy, Grinder,它们都能很好地完成这项任务。

它们都有某种程度的录制/回放支持,但这并不总是你想要的。

我最简单的做法是记录一个样本会话,用变量替换几个参数,并从csv或excel文件中循环执行。

一个很好的起点:视频,介绍开源测试的谷歌演示文稿。

编辑:更新了视频链接。


视频链接现在已经失效。 - DJG

1

1
我曾使用惠普公司的Loadrunner软件中的Virtual User Generator来测试AJAX应用程序。该软件具有多种应用协议,可用于记录Web应用程序,例如AJAX和Click and Script。
对于大多数Web应用程序负载测试,仅需记录和重放HTTP请求即可。这将给出服务器处理负载的结果。如果您的Web应用程序在客户端执行大量异步加载和渲染,例如解析大型XML或JSON数据集或进行许多DOM修改,则包括浏览器层以测量最终用户体验可能是相关的。

0

我的选择是Firebug(浏览器插件)。它非常轻量级且易于操作。


0

最好编写隔离的测试方法或API来测试Ajax应用程序。以下是一些原因:

  • 编写针对Ajax应用程序的功能测试不是那么容易,例如GWT。
  • 您可以使用 Jmeter WebDriver插件,但每次运行它都会启动浏览器,这将使用大部分RAM和CPU。
  • 您将加载后端而不是前端,因此可以避免ajax。

您可以按如下方式划分测试:对于Ajax应用程序,请使用Selenium或PhantomJS/CasperJS。对于负载测试,请使用JMeter、Gatling通过API而不是通过Ajax。


0

你也可以看看fwptt,它是开源的。如果你是 .net 开发者,你可以利用参数自动处理和使用自己的 .net 对象来进行测试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接