2009-02-19 89 views
5

我一直在研究一个能够在前端使用AJAX和动态JavaScript的网站,现在该开始进行压力测试了。但是,你如何正确地测试需要点击前端几个链接的东西呢?我能够轻松快速地反复浏览网站的每个页面的一种方式就是将Google Mini指向它。但是,这不会点击链接,然后导航Modal窗口和类似的东西。加载UI测试

编辑 - 我应该指出,该网站是在PHP5中完成的,所用的JavaScript库是jQuery。不知道这是否会有所作为,但觉得它可能是有用的知道。

回答

2

JMeter很棒。你可以记录你的会话并根据你的喜好调整它们。

所谓的'阿贾克斯负载测试'是本网站上反复出现的主题,并且经常令人困惑。所以让我们直截了当:负载测试正常的网页和负载测试与ajax之间真的没有区别。这一切都归结为离散的请求;他们恰好不是整页刷新。

有一点要记住的是没有被更新测试服务器处理请求(负载测试)和UI组件的屏幕性能负载之间的显着差异(你的JavaScript的执行情况。)

简单的负载测试例如:

  1. 初始页面加载
  2. 登录
  3. 导航?
  4. 5-10“AJAX”请求(或任何可能适合你的应用程序使用模式)
  5. 注销
1

你真正想要的是压力测试的是服务器处理Ajax请求的能力。使用加载工具在“记录”测试的同时查看请求,然后适当调整。我只使用了vs测试版,所以我不能指出你是低成本的。

1

我与内森和Freddy不同意在一定程度上。他们说“AJAX测试”在HTTP请求中确实没有什么不同。但并不那么简单。在Why Load Testing Ajax is Hard上查看我在Ajaxian.com上的文章。

JMeter,Pylot和The Grinder都是生成HTTP请求的好工具(我个人推荐Pylot)。但从核心角度来看,它们并不是浏览器和处理JavaScript,这意味着他们所做的只是重放他们在记录时看到的流量。如果这些AJAX请求对于该会话是唯一的,则它们可能不适合于大量重播。

事实上,随着更多的逻辑推入浏览器,使用传统负载测试工具正确模拟流量变得更加困难(如果不是不可能的话)。

在我的文章,我给它变得多么困难,当你想查询的不同搜索条件的1000年(负载测试过程中的一个重要目标)来测试像谷歌的主页上一个简单的例子。要使用JMeter/Pylot/Grinder来完成这个工作,你最终会重新使用工具的本地语言重新编写AJAX代码的一部分(在你的案例中为w/jQuery)。

如果您的目标是衡量用户感受到的响应时间(这可以说是一天结束时最重要的事情),它会变得更加复杂。对于使用Comet /“反向Ajax”(一种长时间保持开放套接字的技术)的非常复杂的应用程序,传统的加载工具根本无法工作。

我公司,BrowserMob,提供了使用Firefox浏览器,搭载Selenium一个load testing service,推动真正的浏览器数百或数千,让您在浏览器中看到的测量和时间视觉元素的性能。我们还支持传统的虚拟用户(盲HTTP流量)和模拟浏览器(通过HtmlUnit)。所有这些都说明了,通常像BrowserMob这样的服务加上传统的负载测试是正确的方法。也就是说,真正的浏览器非常适合全保真负载测试,但它们永远不会像“虚拟用户”那样经济,因为它们需要10-100倍的RAM和CPU。请参阅我最近的博文,了解是否需要simulate or not to simulate virtual users

希望有帮助!

0

您可以使用类似openSTA之类的东西。

这允许与网站会话进行录制,然后通过相对简单的脚本语言播放。

您还可以轻松测试Web服务并编写自己的脚本。

它允许您以任何您想要的方式将脚本放在一起进行测试,并配置迭代次数,每次迭代中的用户数量,引入每个新用户的上升时间以及每次迭代之间的延迟时间。测试也可以安排在未来。

它是开源免费的。

它产生了许多可以保存到电子表格的报告。然后我们使用数据透视表来轻松分析和绘制结果。