这个问题在这里已有答案:
这可能是一个错误的问题,但是,在asp.net Web应用程序上复制大量负载的最佳方法是什么?有没有简单的方法来模拟特定页面上的许多请求?或者最好是使用分析器跟踪单个请求,然后在性能良好的情况下解决这个问题?
了解Web应用程序与服务器规范的协作效果会很好。我希望能够在我的测试服务器上模拟大量流量,这样我就可以确定生产服务器是否足够好(特别是使用iis / asp.net而不是db性能)。
我建议你先做一些自动化测试。使用selenium。
然后部署selenium网格以同时在多台计算机上进行测试。
虽然Selenium作为一种自动化测试工具运行速度非常快,但需要进行小型压力测试。如果您同时在网络上的几台计算机上运行相同的自动化,您将能够看到它的行为方式。
如果你想记录响应时间,他们有一个很酷的api你可以用来编写一些脚本来运行你的自动化。
编辑:Selenium非常易于使用,如果要测试内容,它会对页面内容进行断言。如果您愿意,它还会复制您在页面中的移动(这将是我的建议),只需浏览页面,然后将其保存为自动化。避免放置断言,以便硒可能运行得更快。
我喜欢的另一个工具是Open STA:http://opensta.org/
它主要侧重于性能测试,它是免费的。
2018年更新:
由于答案很老,OpenSTA项目似乎不是很活跃(但该工具仍然可用)但现在我还建议另外两个工具:
在我看来,Gatling似乎更好,因为没有限制,它们还提供商业企业解决方案,并适合像詹金斯这样的持续集成工具。
相反,NeoLoad有一个免费版本,但仅限于50个用户(对某些情况来说已经足够了)。功能的完整比较是here。
尝试http://loadimpact.com到目前为止我找到的最好的,但我找不到它的替代品。
JMeter将是一个这样的工具。可能有点难以学习和配置,但它通常是值得的。
ab(apache bench)工具允许您向单个页面发送许多请求,并指定要使用的客户端数量以及所需的并发连接数量。
这可能是开发网站的第一步。只测试一些特定负载的页面。这种基准测试方式可能存在一些问题,例如缓存过度使用。
稍后您可能需要一个模拟某些具体流量而不是单个页面的工具。我还没有这种工具的便利。
也许grinder会有所帮助?您可以通过线程和轻量级进程模拟并发请求,或者在多台计算机上分发测试。我每次都成功地使用它。
我们尝试了一些应用程序,包括商业产品的试用和免费提供的试验。最终,它是我们尝试过的Team Test Load Agent软件的试用版。它绝对有效并且使用起来相当简单。从长远来看,它支持了我们的论点,即转移到Team Foundation Server并为部门的所有部分配备适当的工具。
然而,明显的缺点是价格。
我使用WebLOAD进行这种项目。创建脚本很容易,并且内置支持监视ASP.NET统计信息
对于Web服务测试,soap rest或WCF(包括WebHttpBinding),请尝试使用SOA Cleaner。可以从:http://xyrow.com下载。有一个免费版本,它不需要任何安装。它还可以执行负载测试。