2009-02-10 175 views
16

似乎有很多支持AJAX的压力/负载测试工具。
我想知道这些工具实施得如何。用于Ajax负载测试的工具

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

回答

1

如果您只是担心功能,像Watin,WatirSelenium或任何功能工具就可以工作。只要你在你的功能测试中提供足够的时间来允许ajax回调,那么这应该能够做到。

要添加到我的反应,

如果你正在谈论的单元测试你作为一个老乡描述,你可以使用JavaScript类似qunit LosTechian in this posting。这是一个非常有创意的用于集成js单元测试的nunit插件和qunit。

纯属巧合,那张贴qunit测试的博客文章是同一个人只是一个昨天发布了关于this very topic

+5

这不是负载测试。负载测试测试在给定负载下应用程序的性能,例如, “它与100个并发用户的表现有多好”。 – MorganTiley 2012-10-17 16:01:10

0

我在之前的工作中使用过SilkPerformer。根据链接,他们有一些AJAX增强。不幸的是,Silk离自由很远。

1

所有负载测试人员都会支持AJAX-他们只是附加的http连接。

有几个免费的那里 - Jmeter,BadBoy,Grinder这一切都做得很好。

他们都有某种记录/回放的支持,但这并不总是你要找的。

我做过的最简单的方法是记录一个示例会话,用变量替换几个参数并将其从csv或excel文件中循环。

伟大的起点:video谷歌介绍在开源测试。

编辑:更新视频链接。

+0

现在视频链接已损坏 – dg123 2013-08-15 08:33:33

0

检出Jiffy。这是一个端到端的测量套件,因此非常复杂。但是,统计数据相当令人印象深刻。

0

Siege?它可以进行HTTP测试并通过任何你想要的。

1

我已经使用Virtual User Generator(它是HP的Loadrunner软件的一部分)来测试AJAX应用程序。该软件具有多种可用于记录网络应用的应用协议,例如, AJAX,Click和Script。

对于测试来说是足够的记录和重放的http请求多数Web应用程序的负载。这将给出服务器如何处理负载的结果。如果您的Web应用程序执行大量异步加载并在客户端进行渲染,例如解析xml或json的大型数据集或许多DOM修改,可能需要包含浏览器层来衡量最终用户体验。

6

大部分的负载测试工具,在那里做AJAX负载测试相同的方式:他们执行过程中“记录”阶段所看到的原始HTTP流量(可以是页面请求,图像的要求,甚至AJAX请求) 。它们之间的主要区别是它们的记录器/ IDE工具的性能如何,以及它如何帮助您将HTTP请求参数化,以便它们能够根据动态/实时结果反映真实世界的流量。

警告,公然插头:唯一的例外是我的公司,BrowserMob。它不是模拟观察到的流量,而是实际使用真实的Web浏览器来驱动回填。因此,AJAX的东西由浏览器处理。

有用的链接:从上面的公然插头分开的(虽然我也希望你能查出来 - 我们在前面的定价,并提供免费试用),我最近写了一篇文章,关于才算是Ajax AJAX load testing。它详细介绍了使用真实浏览器用户(RBU)与虚拟用户(VU)的技术含义。

0

你也可以看看fwptt它是开源的。如果您是.net开发人员,则可以使用参数自动处理以及使用自己的.net对象进行测试的可能性。

0

我已经成功地使用JMeter的负载测试我们的Ajax(JSF/RichFaces的)应用程序。我并没有打扰JMeter的录音工具 - 而是使用Firefox的HttpFox插件来监视浏览器在服务器上发布的内容,并在JMeter中重新创建了这个插件。

它确实有点复杂,但负载测试现在相当健壮。 JMeter的有各类有用的“元件”的从网页中提取的ID,执行条件逻辑,递增计数器等

0

更好写入分离的测试方法或API负载测试Ajax应用程序。原因如下:

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

您可以像这样设计测试:对于Ajax应用程序,请使用Selenium或PhantomJS/CasperJS。对于负载测试,使用JMeter,通过API的Gatling不通过Ajax。

2

看看LoadBooster(https://www.loadbooster.com)。它利用无头脚本浏览器PhantomJS/CasperJs来测试网站。 Phantomjs将解析并呈现每一页,执行客户端脚本。无头浏览器方法更容易编写测试场景,以支持复杂的AJAX沉重的Web 2.0应用,浏览器导航,鼠标点击和击键到浏览器或等到DOM中存在元素。 LoadBooster也支持硒HTML脚本。

声明:我为LoadBooster工作。

0

我的选择是萤火虫(浏览器插件)。其非常轻巧易于操作