压力/负载测试Ajax重型Web应用程序

时间:2011-08-19 09:35:59

标签: browser webserver load-testing stress-testing

我希望通过不断访问一遍又一遍的网址列表来模拟我的网络服务器上的重负荷!

最初,我计划使用wget / curl编写一个简单的脚本,但由于该网站使用了大量的ajax请求来解决其繁重的问题,因此这不是一个可行的选择。这需要我编写一个复杂的脚本来解析链接中的html,提取ajax请求,卷曲它们。我必须为每个请求递归执行此操作。

理想情况下,有一些方法可以获得一个broswer(或类似的东西)来循环浏览每个链接花费15-30秒的网址列表,然后继续前进!这意味着当访问每个网址并且网站加载具有代表性时,我的所有javascript都将被执行

任何人都知道我怎么能这么做?

4 个答案:

答案 0 :(得分:3)

看看LoadBooster(https://www.loadbooster.com)。它是一种基于云的负载测试服务,它使用无头可编写脚本的浏览器PhantomJS来测试网站。免责声明:我为LoadBooster工作。

答案 1 :(得分:2)

使用apache bench。

ab

像这样简单:

> ab -k -n 100 -c 100 -g myresults.txt http://myajax.com/page

以上意思是,100个并发连接100页,全部保持活动状态,并将结果保存到文本文件myresults.txt。

http://www.google.co.uk/search?sourceid=chrome&ie=UTF-8&q=ab+apache

还有seige。

答案 2 :(得分:2)

您正在寻找的是“负载测试软件”。有很多解决方案 - 它们处理AJAX的程度有很大差异。一个驱动真实浏览器的工具(通过类似Selenium之类的东西)可能是最容易开始使用的工具 - 假设您的测试场景真的像“访问此URL列表”一样简单。至少有一个真实浏览器基于Web的测试工具可以为您完成此操作(BrowserMob)。我们的产品Web Performance Load Tester模拟了浏览器,但我们通常能够很好地处理AJAX。 AFAIK,所有免费的解决方案都非常有限 - 特别是涉及AJAX时。

答案 3 :(得分:0)

我使用WebLOAD进行类似的测试 - 它的关联引擎在重型AJAX情况下非常有用。