似乎有很多压力/负载测试工具支持AJAX 我想知道这些工具的实施情况。
他们只记录http请求并重播吗? 这是测试AJAX应用程序的正确方法吗? 谷歌如何测试他们的ajax应用程序?
答案 0 :(得分:6)
大多数负载测试工具都以相同的方式进行AJAX负载测试:它们执行在“记录”阶段(可以是页面请求,图像请求,甚至是AJAX请求)中看到的原始HTTP流量。它们之间的主要区别在于它们的记录器/ IDE工具有多好以及它如何轻松地帮助您参数化HTTP请求,以便它们根据动态/实时结果反映实际流量。
警告,公然插件:唯一真正的例外是我的公司BrowserMob。它实际上使用真正的Web浏览器来驱动负载,而不是模拟观察到的流量。因此,AJAX的东西由浏览器处理。
有用的链接:与上面的公然插件分开(虽然我希望你看看它 - 我们预先定价并提供免费试用),我最近写了一篇文章Ajaxian关于AJAX load testing。它详细介绍了使用真实浏览器用户(RBU)与虚拟用户(VU)的技术含义。
答案 1 :(得分:2)
看看LoadBooster(https://www.loadbooster.com)。它利用无头可编写脚本的浏览器PhantomJS / CasperJs来测试网站。 Phantomjs将解析并呈现每个页面,执行客户端脚本。无头浏览器方法更容易编写测试场景,以支持复杂的AJAX重型Web 2.0应用程序,浏览器导航,鼠标单击和键入浏览器或等到DOM中存在元素。 LoadBooster也支持selenium HTML脚本。
免责声明:我为LoadBooster工作。
答案 2 :(得分:1)
如果您只担心功能,可以使用Watin,Watir,Selenium或任何功能性工具。只要你在功能测试中放置足够的时间来允许ajax回调,那么就应该这样做。
要添加到我的回复中,
如果您正在谈论单元测试您的javascript,您可以使用类似于同一个LosTechian in this posting所描述的qunit。这是一个非常有创造性的使用nunit addin和qunit来集成js单元测试。
纯粹巧合的是,发布该qunit测试博客文章的同一个人昨天发布了一篇关于this very topic的文章
答案 3 :(得分:1)
Google应用程序是用GWT编写的,它有自己的JUnit扩展。 Article on unit testing ajax applications with GWT
答案 4 :(得分:1)
所有负载测试人员都支持AJAX - 他们只是附加的http连接。
有一些免费的 - Jmeter,BadBoy,Grinder一切都做得很好。
所有这些都对录制/播放有某种支持,但这并不总是你想要的。
我做的最简单的方法是记录一个示例会话,用变量替换几个参数并将其从csv或excel文件中循环。
很好的起点:关于开源测试的Google演示文稿的video。
修改:更新的视频链接。
答案 5 :(得分:1)
如果您不想设置自己的负载测试服务器,可以使用几种免费的在线负载测试服务,这些服务可以直接通过Internet运行负载测试。例如http://loadimpact.com或http://loadstorm.com
答案 6 :(得分:1)
我使用了Virtual User Generator,它是HP的Loadrunner软件的一部分,用于测试AJAX应用程序。该软件具有几种可用于记录网络应用程序的应用程序协议,例如, AJAX,点击和脚本。
对于大多数Web应用程序负载测试,记录和重放http请求就足够了。这将给出服务器如何处理负载的结果。如果您的Web应用程序执行了大量异步加载,并在客户端进行渲染,例如解析xml或json的大型数据集,或许多DOM修改,包含浏览器层以衡量最终用户体验可能是相关的。
答案 7 :(得分:0)
我在以前的工作中使用了SilkPerformer。根据链接,他们有一些AJAX增强功能。不幸的是,丝绸远非自由。
答案 8 :(得分:0)
结帐Jiffy。它是一个端到端的测量套件,随后很复杂。但是,统计数据令人印象深刻。
答案 9 :(得分:0)
Siege?它可以进行HTTP测试并传递你想要的任何内容。
答案 10 :(得分:0)
您还可以查看fwptt它是开源的。如果您是.net开发人员,则可以使用参数自动处理以及使用您自己的.net对象进行测试的可能性。
答案 11 :(得分:0)
我已成功使用JMeter加载测试我们的Ajax(JSF / RichFaces)应用程序。我没有使用JMeter的录音工具 - 我使用Firefox的HttpFox插件来监控浏览器发布到服务器的内容,并在JMeter中重新创建了这个。
它确实有点复杂,但负载测试现在相当强大。 JMeter具有各种有用的“元素”,可以从网页中提取ID,执行条件逻辑,增加计数器等。
答案 12 :(得分:0)
更好地编写用于负载测试ajax应用程序的隔离测试方法或API。有一些原因:
您可以像这样进行测试:对于Ajax应用程序,请使用Selenium或PhantomJS / CasperJS。对于负载测试,使用JMeter,通过API而不是通过Ajax Gatling。
答案 13 :(得分:0)
我的选择是firebug(浏览器插件)。它非常轻巧,易于操作