16

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

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

4

14 回答 14

6

大多数负载测试工具都以相同的方式进行 AJAX 负载测试:它们执行在“记录”阶段看到的原始 HTTP 流量(可以是页面请求、图像请求甚至 AJAX 请求)。它们之间的主要区别在于它们的记录器/IDE 工具有多好,以及它如何轻松地帮助您参数化 HTTP 请求,以便它们根据动态/实时结果反映真实世界的流量。

警告,明目张胆的插件:唯一真正的例外是我的公司BrowserMob。它不是模拟观察到的流量,而是实际上使用真实的网络浏览器来驱动回载。因此,AJAX 内容由浏览器处理。

有用的链接:与上面的公然插件分开(尽管我确实希望您检查一下 - 我们提前定价并提供免费试用),我最近为 Ajaxian 写了一篇关于AJAX 负载测试的文章。它更详细地介绍了使用真实浏览器用户 (RBU) 与虚拟用户 (VU) 的技术含义。

于 2009-02-14T18:38:26.700 回答
2

看看 LoadBooster ( https://www.loadbooster.com )。它利用无头脚本浏览器 PhantomJS/CasperJs 来测试网站。Phantomjs 将解析和渲染每个页面,执行客户端脚本。无头浏览器方法更容易编写测试场景以支持复杂的 AJAX 繁重的 Web 2.0 应用程序,浏览器导航、鼠标单击和击键进入浏览器或等到元素存在于 DOM 中。LoadBooster 也支持 selenium HTML 脚本。

免责声明:我为 LoadBooster 工作。

于 2014-02-11T03:00:16.253 回答
1

如果您只担心功能,那么像WatinWatirSelenium或任何功能性工具都可以。只要您在功能测试中放置足够的时间以允许 ajax 回调,那么这应该可以解决问题。

为了补充我的回应,

如果您正在谈论对您的 javascript 进行单元测试,您可以使用类似 qunit 的东西,正如 LosTechian在这篇文章中所描述的那样。这是一个非常有创意的使用 nunit 插件和 qunit 来集成 js 单元测试。

纯属巧合,发布 qunit testing 博客文章的同一个人昨天刚刚发布了一篇关于这个主题的文章

于 2009-02-10T02:34:03.003 回答
1

Google 应用程序是用 GWT 编写的,它带有自己的 JUnit 扩展。关于使用 GWT 对 ajax 应用程序进行单元测试的文章

于 2009-02-10T02:34:07.653 回答
1

所有负载测试器都将支持 AJAX——它们只是额外的 http 连接。

那里有一些免费的——JmeterBadBoyGrinder,它们都做得很好。

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

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

很好的起点:关于开源测试的谷歌演示视频。

编辑:更新的视频链接。

于 2009-02-11T16:36:30.297 回答
1

如果您不想设置自己的负载测试服务器,有几个免费的在线负载测试服务可以直接在 Internet 上运行负载测试。例如http://loadimpact.comhttp://loadstorm.com

于 2009-02-12T18:18:25.423 回答
1

我使用虚拟用户生成器(HP Loadrunner 软件的一部分)来测试 AJAX 应用程序。该软件有多种应用程序协议,可用于记录网络应用程序,例如 AJAX 和 Click and Script。

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

于 2009-02-14T17:36:38.687 回答
0

我在之前的工作中使用过SilkPerformer。根据链接,他们有一些 AJAX 增强功能。不幸的是,Silk 远非免费。

于 2009-02-10T03:18:18.543 回答
0

看看吉菲。这是一个端到端的测量套件,因此有点复杂。然而,统计数据令人印象深刻。

于 2009-02-12T22:50:29.870 回答
0

围攻?它可以进行 HTTP 测试并通过您想要的任何内容。

于 2009-02-14T12:31:26.940 回答
0

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

于 2009-04-21T16:53:38.587 回答
0

我已经成功地使用 JMeter 对我们的 Ajax (JSF/RichFaces) 应用程序进行了负载测试。我没有使用 JMeter 的记录工具——而是使用 Firefox 的 HttpFox 插件来监控浏览器向服务器发布的内容,然后我在 JMeter 中重新创建了它。

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

于 2011-08-16T11:42:27.257 回答
0

更好地为负载测试 ajax 应用程序编写隔离测试方法或 API。有一些原因:

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

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

于 2013-08-20T04:09:03.060 回答
0

我的选择是萤火虫(浏览器插件)。它非常轻巧且易于处理

于 2014-12-18T08:35:38.750 回答