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