我不得不几次加载testingHTTP服务器/networking应用程序,每次我都被我所能find的工具的质量所压倒。
所以,当你加载一个HTTP服务器的时候,你使用了什么工具? 那么下次我必须做的事情,我最有可能做错什么呢?
JMeter是免费的。
水星互动负载转轮超级好,超级昂贵。
我觉得exception合格的回答这个问题,因为我现在的公司需要模拟25,000同时连接到我们的networking服务器(我们提供在线广告)。
对于极高的容量负载testing, Httperf是要走的路。 它是免费的,根据我们的经验,它可以模拟JMeter或STA在同一硬件上的更多同步连接。
以防万一您好奇,我们在一个低功耗,低成本,超小型的Optiplex 330上模拟每秒3500个请求。这些小盒子的价格只有280美元,而且我们有一大堆它们连接起来运行Httperf点播。 相比之下,JMeter只能在这个硬件上推动800-900瑞尔/秒。
如果您只是想在Web服务器上一次加载一个URL,请下载Apache AB。 它带有Apache HTTP服务器。
简单的命令
ab -n 10000 -c 10 http://serverfault.com/questions/2107/tools-for-load-testing-http-servers
将运行10000个请求并发10个用户。
如果你想logging浏览会议,然后去upvote并接受jmeter的答案。 Jmeter是惊人的,它可以扩展到许多testing机器,可以投入巨大的负载。
有一个基于Erlang的工具Tsung 。
http://www.softwareqatest.com/qatweb1.html#LOAD还有一个非常长的工具列表
对于一个快速testing,你可以使用卷发序列和一组URL。 举例来说,我们将对Google运行负载压力testing,我们可以运行…
curl -s "http://google.com?[1-1000]"
这将使1000电话谷歌ie
http://google.com?1 http://google.com?2 http://google.com?3 ... http://google.com?1000
这将在如何使用curl快速压力testingWeb服务器中进行更详细的讨论。
您将需要设置不同的testing:
在每次testing之前/之后,您必须像以前一样恢复平台:恢复数据库,重启以清除内存并caching。
您还将执行热身:在真正的testing之前启动一次场景,以便编译网页,build立与数据库的连接。 否则,第一个电话在你的统计中总是不好的。
您可以添加复杂性,如:
最后一件重要的事情是:你必须保存所有已完成的场景,以便能够以完全相同的方式再次完成它们,因此可以将性能与以前的testing进行比较。
如果你只是想testing它如何处理多个连接,你可以使用像Siege这样的东西。 仍然不确定这是一个伟大的措施,但它至less会告诉你如何处理多个连接
我用过openSTA 。
这使用了一个相对简单的脚本语言。
您可以轻松testingWeb服务/服务器并编写自己的脚本。
它允许您以任何您想要的方式将脚本放在一起进行testing,并configuration迭代次数,每次迭代中的用户数量,引入每个新用户的上升时间以及每次迭代之间的延迟。 testing也可以安排在未来。
它是开源的,免费的。
它产生了一些可以保存到电子表格的报告。 然后,我们使用数据透视表来轻松分析和绘制结果。
之前我使用过LoadRunner,但是这个代价相当昂贵,我还使用了微软的Team Tester版本工具,其中包括一个进行负载testing的系统。 我对这个工具的工作原理感到非常满意,你可以使用.net来扩展testing,这是一个更简单的语法来selectLoadRunner的。
我们使用的load runner的版本也无法处理我们的AJAX站点(这是在2000年,所以我相信这个工具现在已经被增强了)
我们使用WAPT ,它工作得很好。 容易build立,只有几百块钱。 LoadRUnner是可笑的定价过高,完全遥不可及,除了Forutune 500。
这取决于你的情况有多复杂。
要正确地模拟服务器上的真实用户负载,您应该尝试模拟用户实际正在做的事情。 如果你的用户只是通过URL访问服务器,那么任何一个免费/简单的工具都可以。
对于比较复杂的网站,您可能希望使用一个可以帮助您进行dynamic值关联,参数化等的工具。您可以使用Load-Runner之类的,我更喜欢使用WebLOAD 。