David Wolever Asked: 2009-05-01 19:40:42 +0800 CST2009-05-01 19:40:42 +0800 CST 2009-05-01 19:40:42 +0800 CST 负载测试 HTTP 服务器的工具?[复制] 772 我不得不加载测试 HTTP 服务器/Web 应用程序几次,每次我都对能够找到的工具的质量感到失望。 那么,当您对 HTTP 服务器进行负载测试时,您使用什么工具呢?下次我必须做的时候,我最有可能做错的事情是什么? http load-testing 11 个回答 Voted Best Answer Chad Grant 2009-05-01T19:48:38+08:002009-05-01T19:48:38+08:00 JMeter是免费的。 Mercury Interactive Load Runner 超级好用而且超级昂贵。 Portman 2009-05-01T19:57:12+08:002009-05-01T19:57:12+08:00 我觉得非常有资格回答这个问题,因为我现在的公司需要模拟 25,000 个同时连接到我们的网络服务器(我们提供在线广告)。 对于极高容量的负载测试,Httperf是要走的路。它是免费的,根据我们的经验,它可以在同一硬件上模拟 JMeter 或 STA 的更多同时连接。 编辑: 万一你好奇,我们在低功耗、廉价、超小型 Optiplex 330 上模拟每秒 3500 个请求。这些小盒子只需 280 美元,我们有一堆连接起来运行Httperf 点播。相比之下,JMeter 在这个硬件上只能推送大约 800-900 req/sec。 Stewart Robinson 2009-05-02T00:26:25+08:002009-05-02T00:26:25+08:00 如果您只想在 Web 服务器上一次加载单个 URL,请下载 Apache AB。它带有 Apache HTTP 服务器。 简单的命令 ab -n 10000 -c 10 http://serverfault.com/questions/2107/tools-for-load-testing-http-servers 将运行 10000 个请求,并发 10 个用户。 如果您想记录浏览会话,请投票并接受 jmeter 答案。Jmeter 非常棒,它可以扩展到许多可以产生巨大负载的测试机器。 Jauder Ho 2009-05-01T22:10:04+08:002009-05-01T22:10:04+08:00 有Tsung,一个基于 Erlang 的工具。 在http://www.softwareqtest.com/qatweb1.html#LOAD上还有很长的工具列表 Ian Purton 2012-02-10T09:01:38+08:002012-02-10T09:01:38+08:00 对于快速测试,您可以使用 curls 序列和 URL 集。例如,我们要针对 Google 运行负载压力测试,我们可以运行... curl -s "http://google.com?[1-1000]" 这将给谷歌打 1000 次电话,即 http://google.com?1 http://google.com?2 http://google.com?3 ... http://google.com?1000 这将在如何使用 curl 快速对 Web 服务器进行压力测试中进行更详细的讨论。 Mathieu Chateau 2009-06-11T08:08:30+08:002009-06-11T08:08:30+08:00 您将需要设置不同的测试: 正常测试,模拟用户的行为。您将实施思考时间(页面之间没有 http fury 1)。一种方法是记录网络会话,这样您将有实际的时间来完成/阅读每一页。负载将逐步到来,直到您达到生产中的平均当前负载 破裂测试:和以前一样,但增加负载直到你得到第一个 http 500 错误。目标是知道你可以管理多少负载直到它崩溃 长时间运行测试。您将第一个场景运行 12 小时,以确保您没有内存泄漏或性能随时间下降。 在每次测试之后/之前,您必须像以前一样放回平台:恢复数据库,重新启动以清理内存和缓存。 您还将实施热身:在实际测试之前启动场景一次,以便编译网页,建立与数据库的连接。否则,第一个电话在您的统计数据中总是很糟糕。 您可以增加复杂性,例如: 使用不同的场景(访客/客人、成员),它们的表现会有所不同。 模拟不同的带宽访问 随机搜索单词和思考时间。 最后一件重要的事情:您必须保存所有已完成的场景才能以完全相同的方式再次制作它们,这样您就可以将性能与之前的测试进行比较。 trent 2009-05-01T19:46:06+08:002009-05-01T19:46:06+08:00 如果您只是想测试它如何处理多个连接,您可以使用Siege之类的东西。仍然不确定这是一个很好的衡量标准,但它至少会告诉您如何处理多个连接 rbrayb 2009-05-01T19:51:07+08:002009-05-01T19:51:07+08:00 我用过openSTA。 这使用了一种相对简单的脚本语言。 您可以轻松测试 Web 服务/服务器并编写自己的脚本。 它允许您以任何您想要的方式将脚本放在测试中,并配置迭代次数、每次迭代中的用户数、引入每个新用户的加速时间以及每次迭代之间的延迟。将来也可以安排测试。 它是开源和免费的。 它会生成许多报告,这些报告可以保存到电子表格中。然后,我们使用数据透视表轻松分析和绘制结果。 JoshBerke 2009-05-01T20:13:13+08:002009-05-01T20:13:13+08:00 我以前使用过 LoadRunner,但它相当昂贵,我还使用了 Microsoft 的 Team Tester 版本工具,其中包括一个执行负载测试的系统。我对该工具的工作方式相当满意,您可以使用 .net 扩展测试,这是一种比 LoadRunner 更容易使用的语法。 我们使用的负载运行器版本也无法处理我们的 AJAX 站点(这是在 2000 年,所以我确信该工具现在已经得到增强) rmalayter 2010-03-23T14:07:47+08:002010-03-23T14:07:47+08:00 我们使用WAPT,效果很好。设置简单,几百块钱。LoadRUNner 的价格高得离谱,除了财富 500 强之外,其他人都无法企及。
JMeter是免费的。
Mercury Interactive Load Runner 超级好用而且超级昂贵。
我觉得非常有资格回答这个问题,因为我现在的公司需要模拟 25,000 个同时连接到我们的网络服务器(我们提供在线广告)。
对于极高容量的负载测试,Httperf是要走的路。它是免费的,根据我们的经验,它可以在同一硬件上模拟 JMeter 或 STA 的更多同时连接。
编辑:
万一你好奇,我们在低功耗、廉价、超小型 Optiplex 330 上模拟每秒 3500 个请求。这些小盒子只需 280 美元,我们有一堆连接起来运行Httperf 点播。相比之下,JMeter 在这个硬件上只能推送大约 800-900 req/sec。
如果您只想在 Web 服务器上一次加载单个 URL,请下载 Apache AB。它带有 Apache HTTP 服务器。
简单的命令
将运行 10000 个请求,并发 10 个用户。
如果您想记录浏览会话,请投票并接受 jmeter 答案。Jmeter 非常棒,它可以扩展到许多可以产生巨大负载的测试机器。
有Tsung,一个基于 Erlang 的工具。
在http://www.softwareqtest.com/qatweb1.html#LOAD上还有很长的工具列表
对于快速测试,您可以使用 curls 序列和 URL 集。例如,我们要针对 Google 运行负载压力测试,我们可以运行...
这将给谷歌打 1000 次电话,即
这将在如何使用 curl 快速对 Web 服务器进行压力测试中进行更详细的讨论。
您将需要设置不同的测试:
在每次测试之后/之前,您必须像以前一样放回平台:恢复数据库,重新启动以清理内存和缓存。
您还将实施热身:在实际测试之前启动场景一次,以便编译网页,建立与数据库的连接。否则,第一个电话在您的统计数据中总是很糟糕。
您可以增加复杂性,例如:
最后一件重要的事情:您必须保存所有已完成的场景才能以完全相同的方式再次制作它们,这样您就可以将性能与之前的测试进行比较。
如果您只是想测试它如何处理多个连接,您可以使用Siege之类的东西。仍然不确定这是一个很好的衡量标准,但它至少会告诉您如何处理多个连接
我用过openSTA。
这使用了一种相对简单的脚本语言。
您可以轻松测试 Web 服务/服务器并编写自己的脚本。
它允许您以任何您想要的方式将脚本放在测试中,并配置迭代次数、每次迭代中的用户数、引入每个新用户的加速时间以及每次迭代之间的延迟。将来也可以安排测试。
它是开源和免费的。
它会生成许多报告,这些报告可以保存到电子表格中。然后,我们使用数据透视表轻松分析和绘制结果。
我以前使用过 LoadRunner,但它相当昂贵,我还使用了 Microsoft 的 Team Tester 版本工具,其中包括一个执行负载测试的系统。我对该工具的工作方式相当满意,您可以使用 .net 扩展测试,这是一种比 LoadRunner 更容易使用的语法。
我们使用的负载运行器版本也无法处理我们的 AJAX 站点(这是在 2000 年,所以我确信该工具现在已经得到增强)
我们使用WAPT,效果很好。设置简单,几百块钱。LoadRUNner 的价格高得离谱,除了财富 500 强之外,其他人都无法企及。