Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Browser 压力/负载测试Ajax重型Web应用程序_Browser_Webserver_Load Testing_Stress Testing - Fatal编程技术网

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

Browser 压力/负载测试Ajax重型Web应用程序,browser,webserver,load-testing,stress-testing,Browser,Webserver,Load Testing,Stress Testing,我希望通过不断地反复访问URL列表来模拟我的web服务器上的重负载 最初,我计划使用wget/curl编写一个简单的脚本,但由于该站点在其繁重的工作中使用了大量ajax请求,因此这不是一个可行的选择。这需要我编写一个复杂的脚本来解析链接中的html,提取ajax请求,并对它们进行卷曲。对于每个请求,我都必须递归地执行此操作 理想情况下,有一种方法可以让broswer(或类似的东西)在每个链接上花费15-30秒循环浏览URL列表,然后再继续!这意味着当访问每个url时,我的所有javascript

我希望通过不断地反复访问URL列表来模拟我的web服务器上的重负载

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

理想情况下,有一种方法可以让broswer(或类似的东西)在每个链接上花费15-30秒循环浏览URL列表,然后再继续!这意味着当访问每个url时,我的所有javascript都将被执行,并且站点负载将具有代表性

有人知道我如何轻松做到这一点吗?

使用apache bench

ab

简单地说:

>ab-k-n100-c100-gMyResults.txt

上述情况意味着,100个并发连接上有100个页面,所有连接都保持活动状态,并将结果保存到文本文件myresults.txt中


还有塞吉

您要找的是“负载测试软件”。有很多解决方案——它们处理AJAX的能力差别很大。如果您的测试场景真的像“访问此URL列表”一样简单,那么驱动真实浏览器的工具(通过Selenium之类的工具)可能是最容易开始使用的工具。至少有一个真正的基于浏览器的网络测试工具可以为您做到这一点(BrowserMob)。我们的产品模拟浏览器,但我们通常能够很好地处理AJAX。顺便说一句,所有免费解决方案的功能都非常有限,特别是在涉及AJAX的情况下。

看看LoadBooster()。它是一个基于云的负载测试服务,利用无头脚本浏览器PhantomJS测试网站。免责声明:我为LoadBooster工作

我曾用于类似类型的测试-它的关联引擎在大量AJAX情况下非常有用。

这会执行页面中的所有javascript吗?因为我确实需要激发页面中的ajax请求,以便真正测试loadNo。据我所知,什么都不存在。您可以将ab的头设置为使用XmlHttpRequest,但它不会为您运行应用程序并单击链接。那是不可能的。它将获取javascript文件,并获取设置应用程序所需的所有内容。Hmmm这很遗憾,它不需要单击链接,基本上只需要执行文档中的javascript即可。加载页面,然后将其余请求加载到服务器