可能重复:
您如何对 Web 应用程序进行压力测试?
目前我已经用 cc.net、watin 和 nunit 配置了一个项目,现在我想对我的 .net 项目进行压力、负载和性能测试。知道我应该使用哪种开源工具,或者可以使用相同的工作工具来实现它,如果是,那么如何?
可能重复:
您如何对 Web 应用程序进行压力测试?
目前我已经用 cc.net、watin 和 nunit 配置了一个项目,现在我想对我的 .net 项目进行压力、负载和性能测试。知道我应该使用哪种开源工具,或者可以使用相同的工作工具来实现它,如果是,那么如何?
过去,我使用 Apache JMeter取得了相当大的成功。该界面非常易于使用,它支持远程代理以帮助对许多主机进行负载测试。
我公司提供的服务不是开源的,但它非常酷,并且建立在开源之上。这是一个负载测试服务,它使用真实的浏览器来回放负载(而不是模拟 HTTP/虚拟用户)。我们使用 Selenium 作为播放引擎,对于 WatiN 用户来说应该有些熟悉。
关于我们的服务(或使用真实浏览器的一般想法)最好的部分是像 ViewState 这样的 .NET 东西是自动处理的。您不必做任何诡计,例如使用正则表达式解析请求以使其工作。相反,浏览器只是做普通浏览器所做的事情。
如果这篇文章看起来过于商业化,我深表歉意,但由于问题是关于开源(我们利用开源并提供免费试用)和 .NET(我们的一大特色是无缝支持 .NET),我想我会给它一提。
祝你好运!
Jmeter放下手。这是我用过的唯一一个反复产生可靠结果的工具。一旦你掌握了它的窍门,使用它绝对是一种乐趣,你可以用相对较少的线程来模拟大负载。
我会投票给 JMeter。完全免费,而且很容易设置和开始。以下是有关如何 使用 Jmeter 对应用程序进行压力测试的一些链接
我们还描述了我们如何测试、不同参数和指标的过程。
前几天我偶然发现了HttpRider,看起来很不错。干净的 UI 并且易于配置,尽管我建议谨慎,因为他们声明它是测试版(在发布时)。
如果它是针对网站/网络应用程序的,您可以在这里获取一些答案:对网站进行压力测试的最佳方式
我使用 Jmeter 和 Selenium 对我的应用程序进行负载测试。我增强了 Jmeter 代码来调用 selenium 引擎来模拟负载测试。
由于您已经熟悉 c#。你可以试试这个工具 fwptt.sourceforge.net。它基本上会在 C# 中生成一个测试类,您可以根据需要对其进行修改,然后使用该类运行测试。
作为 C# 开发人员,您可以轻松理解类结构。所以我推荐你使用csunit进行测试,这个工具是开源的,你可以很容易地找到它。
我们使用Grinder对 Web 服务运行负载/压力和功能测试。我们从未将它用于网页,但它也应该这样做。您可以通过在几台机器上安装 Grinder“代理”来真正击败您的服务器,然后生成一堆进程来访问您的站点以模拟多个连接。
文档还可以,但是您对开源项目有什么期望?
WebLOAD是一个开源负载测试器。我相信它最初是由最初开发 Mercury LoadRunner 的同一个人开发的。
他们也有商业版本:WebLOAD 版本比较
如果您使用的是 Windows 平台并且拥有 Visual Studio 企业版,那么您也可以使用 Application Center 测试工具。
最后但同样重要的是,还有 Homer:Microsoft Web Application Stress工具(又名 WAS,Application Center Test 的前身)
我用过openSTA。
这使用了一种相对简单的脚本语言。
您可以轻松地测试 Web 服务并编写自己的脚本。
它允许您以任何您想要的方式将脚本放在测试中,并配置迭代次数、每次迭代中的用户数、引入每个新用户的加速时间以及每次迭代之间的延迟。将来也可以安排测试。
它是开源和免费的。
它会生成许多报告,这些报告可以保存到电子表格中。然后,我们使用数据透视表轻松分析和绘制结果。
在为 MS Windows 平台开发时,我使用 typeperf。使用 MS Windows 内置的 WMI 计数器(几乎所有你想跟踪的信息都在那里),所以你不需要在目标机器上安装“服务器应用程序”。
它在同时测试客户端/服务器应用程序或多台机器时非常有用。它可以生成 CSV 文件,然后我用它来生成报告和图表。此外,WMI 还为 NET 应用程序提供了特殊的计数器。
如果 typeperf 命令行客户端还不够,您可以使用 MS 提供的 api 编写自己的代码。
对于 Web 服务测试、soap rest 或 WCF(包括 WebHttpBinding),请试用 SOA Cleaner。可以从:http://xyrow.com下载。有一个免费版本,它不需要任何安装。它还可以执行负载测试。
有同样的问题,我正在使用NTime - 早期但它看起来相当不错。可以运行多个线程进行测试,如果有人感兴趣,其他好的功能会在这里报告。
我注意到这里的大多数答案都是针对 Java/Web World 的,它们都不符合我的要求。
哦,如果您正在寻找 100% 开源(尽管我强烈建议您结合使用外部负载测试和内部测试),Pylot也非常棒。我发现它比 JMeter 或 OpenSTA 更容易使用。