在过去,我使用微软Web应用程序压力测试工具和Pylot对Web应用程序进行压力测试。我写了一个简单的主页、登录脚本和站点演练(在一个电子商务网站中添加一些商品到购物车和结帐)。

只要让少数开发人员在主页上使劲敲一下,就几乎总能找到一个主要问题。更多的可伸缩性问题将在第二阶段浮出水面,甚至更多——在发布之后。

我使用的工具的URL是Microsoft Homer(又名Microsoft Web Application Stress Tool)和Pylot。

这些工具生成的报告对我来说没有多大意义,我花了很多时间试图弄清楚站点能够支持什么样的并发负载。这总是值得的,因为最愚蠢的错误和瓶颈总是会出现(例如,web服务器配置错误)。

你做了什么,你使用了什么工具,你的方法有什么成功?对我来说,最有趣的部分是提出某种有意义的公式,用于从压力测试应用程序报告的数字中计算应用程序可以支持的并发用户数。


当前回答

看看LoadBooster(https://www.loadbooster.com)。它利用无头脚本浏览器PhantomJS/CasperJs来测试网站。Phantomjs将解析和渲染每个页面,执行客户端脚本。无头浏览器方法更容易编写测试场景,以支持复杂的AJAX重载Web 2.0应用程序、浏览器导航、鼠标单击和对浏览器的击键,或者等待DOM中存在元素。LoadBooster也支持硒HTML脚本。

免责声明:我为LoadBooster工作。

其他回答

我用过openSTA。

这允许与网站的会话被记录,然后通过相对简单的脚本语言回放。

您可以轻松地测试web服务并编写自己的脚本。

它允许您以任何您想要的方式将脚本放在一个测试中,并配置迭代的数量、每次迭代中的用户数量、引入每个新用户的递增时间以及每次迭代之间的延迟。将来还可以安排测试。

它是开源的,免费的。

它生成了许多报告,这些报告可以保存到电子表格中。然后,我们使用数据透视表来方便地分析和绘制结果。

Visual Studio测试版2010(2008年也不错)。这是一个非常简单和强大的工具来创建web/负载测试。

在Windows服务器上使用此工具的好处是,您可以在报告中集成访问所有perfmon服务器统计信息。真的有用。

另一个好处是,在Visual Studio项目中,你可以集成一个“性能会话”来分析你网站的代码执行情况。

如果你在windows服务器上提供网页服务,这是最好的工具。

然而,使用多台机器来加载测试应用程序需要一个单独且昂贵的许可证。

Blaze meter有一个chrome扩展,用于记录会话并将其导出到JMeter(目前需要登录)。你也可以选择付钱让他们在他们的JMeter服务器集群上运行(他们的定价似乎比我刚刚停止使用的LoadImpact要好得多):

BlazeMeter Chrome扩展 关于它的博客条目

我和他们没有任何联系,我只是喜欢他们服务的外观,尽管我还没有用过付费版本。

此外,还有一个很棒的开源纯python分布式和可伸缩的locust框架,它使用了greenlets。它很擅长模拟大量同时使用的用户。

我发现IBM Page Detailer也是一个有趣的工具。