使用WCAT对ASP.NET/IIS进行压力测试
我正在尝试使用IIS资源中包含的WCAT工具包来设置压力/负载测试。
使用LogParser,我已经使用配置处理了UBR文件。看起来像这样:
[Configuration] NumClientMachines: 1 # number of distinct client machines to use NumClientThreads: 100 # number of threads per machine AsynchronousWait: TRUE # asynchronous wait for think and delay Duration: 5m # length of experiment (m = minutes, s = seconds) MaxRecvBuffer: 8192K # suggested maximum received buffer ThinkTime: 0s # maximum think-time before next request WarmupTime: 5s # time to warm up before taking statistics CooldownTime: 6s # time to cool down at the end of the experiment [Performance] [Script] SET RequestHeader = "Accept: */*\r\n" APP RequestHeader = "Accept-Language: en-us\r\n" APP RequestHeader = "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705)\r\n" APP RequestHeader = "Host: %HOST%\r\n" NEW TRANSACTION classId = 1 NEW REQUEST HTTP ResponseStatusCode = 200 Weight = 45117 verb = "GET" URL = "http://Url1.com" NEW TRANSACTION classId = 3 NEW REQUEST HTTP ResponseStatusCode = 200 Weight = 13662 verb = "GET" URL = "http://Url1.com/test.aspx"
看起来还好吗?
我使用以下命令执行控制器:wcctl -z StressTest.ubr -a localhost
客户端是这样执行的:wcclient localhost
执行客户端时,出现以下错误:主客户端线程Connect Attempt 0失败。错误= 10061
这个世界上有人使用过WCAT吗?
解决方案
我没有答案,但是我们是否考虑过使用其他工具进行测试? WCAT工具似乎非常有限且使用起来很复杂。
OpenSTA和JMeter是用于负载/压力/性能测试的优秀开源工具。
OpenSTA和JMeter看起来非常像Apache。我在Windows Server 2003上运行IIS。
我们是否看过Microsoft Web应用程序压力工具?
我将看一下更新到WCat 6.3的信息,这里适用于x86和x64
他们更改了设置/场景文件的结构,这虽然有些麻烦,但应该可以满足需求。
我刚刚开始评估wcat 6.3,但恐怕我的经验在在线支持/社区方面有点令人失望。
wcat.wsf脚本中还有一个主要错误,请参见:
http://forums.iis.net/t/1153312.aspx
我现在正在努力使性能计数器测量工作正常进行。
尽管我在模拟NTLM连接方面遇到了困难,但我在WCAT方面取得了不错的成绩。
我使用的是6.3,因此我的配置文件看起来与配置文件有很大的不同。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。我一路上注意到的一些陷阱:
+确保已关闭防火墙,或者为WMI打通了漏洞。
+我们在请求标头中设置的所有内容都会对吞吐量产生巨大影响。苹果对苹果必须具有相同的请求标头。
+只有更正了sthorogood识别的错误之后,才能与多个客户端进行远程调用。
一旦克服了这些障碍,我就会从WCAT获得出色的成绩。它可以快速,重复和积极地进行测试。
祝你好运
凯文
对于性能计数器,可以在为控制器运行的同一命令中定义-p .prf,如下所示:
wcctl -c config.txt -d distribution.txt -s script.txt -a localhost p performance.prf