218

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

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

4

9 回答 9

81

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

于 2011-06-11T07:20:47.230 回答
59

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

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

虽然 Selenium 作为一个自动化测试工具会运行得相当快,做一个迷你压力测试。如果您同时在网络上的几台计算机上运行相同的自动化,您将能够看到它的行为方式。

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

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

于 2008-12-04T13:34:11.640 回答
55

JMeter就是这样一种工具。学习和配置可能有点困难,但通常是值得的。

于 2008-12-04T13:33:35.540 回答
38

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

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

稍后您可能需要一个模拟一些具体流量而不是单个页面的工具。我还没有对此类工具的参考。

于 2008-12-04T13:36:45.957 回答
10

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

于 2008-12-04T13:45:00.260 回答
6

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

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

于 2008-12-04T14:08:27.187 回答
4

我已经将WebLOAD用于此类项目。创建脚本很容易,并且它内置了对监视 ASP.NET 统计信息的支持

于 2012-02-05T11:32:22.023 回答
3

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

于 2009-09-16T08:16:48.557 回答
3

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

它主要专注于性能测试,并且是免费的。

2018 年更新:

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

在我看来,Gatling 似乎更好,因为没有限制,他们还提供商业企业解决方案并适合 Jenkins 等持续集成工具。

相反,NeoLoad 有一个免费版本,但仅限于 50 个用户(在某些情况下就足够了)。完整的功能比较在这里

于 2011-05-16T12:24:23.983 回答