对网站进行压力测试的最佳方式[重复]

问题描述 投票:201回答:10

这个问题在这里已有答案:

这可能是一个错误的问题,但是,在asp.net Web应用程序上复制大量负载的最佳方法是什么?有没有简单的方法来模拟特定页面上的许多请求?或者最好是使用分析器跟踪单个请求,然后在性能良好的情况下解决这个问题?

了解Web应用程序与服务器规范的协作效果会很好。我希望能够在我的测试服务器上模拟大量流量,这样我就可以确定生产服务器是否足够好(特别是使用iis / asp.net而不是db性能)。

performance stress-testing qa
10个回答
57
投票

我建议你先做一些自动化测试。使用selenium

然后部署selenium网格以同时在多台计算机上进行测试。

虽然Selenium作为一种自动化测试工具运行速度非常快,但需要进行小型压力测试。如果您同时在网络上的几台计算机上运行相同的自动化,您将能够看到它的行为方式。

如果你想记录响应时间,他们有一个很酷的api你可以用来编写一些脚本来运行你的自动化。

编辑:Selenium非常易于使用,如果要测试内容,它会对页面内容进行断言。如果您愿意,它还会复制您在页面中的移动(这将是我的建议),只需浏览页面,然后将其保存为自动化。避免放置断言,以便硒可能运行得更快。


3
投票

我喜欢的另一个工具是Open STA:http://opensta.org/

它主要侧重于性能测试,它是免费的。

2018年更新:

由于答案很老,OpenSTA项目似乎不是很活跃(但该工具仍然可用)但现在我还建议另外两个工具:

在我看来,Gatling似乎更好,因为没有限制,它们还提供商业企业解决方案,并适合像詹金斯这样的持续集成工具。

相反,NeoLoad有一个免费版本,但仅限于50个用户(对某些情况来说已经足够了)。功能的完整比较是here


76
投票

尝试http://loadimpact.com到目前为止我找到的最好的,但我找不到它的替代品。


52
投票

JMeter将是一个这样的工具。可能有点难以学习和配置,但它通常是值得的。


35
投票

ab(apache bench)工具允许您向单个页面发送许多请求,并指定要使用的客户端数量以及所需的并发连接数量。

这可能是开发网站的第一步。只测试一些特定负载的页面。这种基准测试方式可能存在一些问题,例如缓存过度使用。

稍后您可能需要一个模拟某些具体流量而不是单个页面的工具。我还没有这种工具的便利。


10
投票

也许grinder会有所帮助?您可以通过线程和轻量级进程模拟并发请求,或者在多台计算机上分发测试。我每次都成功地使用它。


6
投票

我们尝试了一些应用程序,包括商业产品的试用和免费提供的试验。最终,它是我们尝试过的Team Test Load Agent软件的试用版。它绝对有效并且使用起来相当简单。从长远来看,它支持了我们的论点,即转移到Team Foundation Server并为部门的所有部分配备适当的工具。

然而,明显的缺点是价格。


4
投票

我使用WebLOAD进行这种项目。创建脚本很容易,并且内置支持监视ASP.NET统计信息


3
投票

3
投票

对于Web服务测试,soap rest或WCF(包括WebHttpBinding),请尝试使用SOA Cleaner。可以从:http://xyrow.com下载。有一个免费版本,它不需要任何安装。它还可以执行负载测试。

© www.soinside.com 2019 - 2024. All rights reserved.