图解用WAS对Web服务器进行压力测试

简介:

你的Web服务器能够支持多少个并发用户的访问呢?你遇到过服务器遭受过DDOS的攻击而瘫痪吗?在这里给大家介绍微软网站测试人员开发的著名网站压力测试软件,MicrosoftWeb Application Stress ToolWASWeb应用负载测试工具),而且还是免费的哦。

其下载地址:
WAS 是一款网站性能测试评估软件。它通过模拟大量并发用户同时访问服务器,以获取服务器的承受能力。像这种软件是把“双刃剑”,就看你用在哪一方面啦。如果没用好就会给你的服务器造成一定的损失,用好了可以及时的发现你的服务器能承受多大压力负载。以便及时的采取相应的措施防范。
要对网站进行负载测试首先需要创建 WAS 脚本来模拟用户访问等活动。
创建脚本的方法:
通过记录浏览器的活动;
通过导入 IIS 日志;
通过把 WAS 指向 Web 网站的内容;
或者手工制作。
这里我用是通过记录浏览器事件生成的脚本的一部分,
 
  一:测试前的准备
1.   在测试前清空 IE 浏览器其它网站的缓存和 Cookies 等临时文件。
二:测试脚本制作
1.   打开 WAS, 点击 Record
 
2. 勾选要记录的活动
3. 点击 Finish
4. 这时自动弹出一个浏览器新窗口,即开始记录你的浏览的内容。这时开始访问你要测试的网页。
5. 在你访问你的服务器时, WAS 都记录了这些活动,访问完成后点击 Stop Recording 结束记录。
6. 这时在脚本页可以看到收集到的脚本,在 Server 栏输入服务器的 IP 地址。
7. 删除延迟小的元素
8. 可以用 Ctrl 键同时选中多个,然后点击工具栏的删除按钮删除
 
9. 点击 Settings ,在这里可以设置例如发起的连接数,热身时间,带宽限制,以及测试要运行多长时间等参数。
 
Stress LevelStress multiplier这二个项决定了访问服务器的并发连接的数量。其中Level是客户端所产生的线程数,一个线程可以产生多个Socket并发请求,因此两者的数值相乘所获得的数值才是客户端同时发起连接并发数微软建议这这个Stress Level值不要超过100。如果要模拟的并发连接数量超过100个,可以调整Stress multiplier的值或使用多个客户机来测试
 
时间设置包括“Test Run Time”(测试运行时间)和“Request Delay”(停止响应)以及“Suspend”(挂起时间)三项。其中测试运行时间是以日、小时、分钟、秒的格式来设定的,建议该项时间不宜太短,如果设置的并发数较多,那么时间应该按比较增长,以便产生足够多的请求;而停止时间是指连接时超出这个时间即作超时处理;
 
warmup(热身)时间,一般可以设置为1~3分钟。在warmup期间WAS开始执行脚本,但不收集统计数据。warmup时间给MTS、数据库以及磁盘缓冲等一个机会来做准备工作。如果在warmup时间内收集统计数据,这些操作的开销将影响性能测试结果。
 
限制带宽(throttle bandwidth)。带宽限制功能能够为测试模拟出Modem14.k K28.8 K56 K)、ISDN64 K128 K)以及T11.54 M)的速度。使用带宽限制功能可以精确地预测出客户通过拨号网络或其他外部连接访问Web服务器所感受的性能。
. 测试压力
1. 点击工具栏的开始运行按钮
2. 点击 Run Test 开始测试
3. 正在测试服务器压力, time left 的时间为剩余时间.如果设置了热身时间则会先出现倒计时为WARMUP的
4. 如果提示 RPC 服务不可用,请查看 PRC 服务是否开启,并设置成自动. 还可能是你的脚本错误,这种情况下删除当前脚本,重新收集就没问题啦
 
5.这时可以用 netstat –an  来查看是否开启了很多连接,其中 state established 的表示已连接上
 
6. 查看 CPU 大部分进程都被 Webtool 所占用
7. 查看 CPU 的使用率
8. 用性能监视器查看当前性能
9. 查看服务器端的性能
四.查看测试报告,分析数据
1. 点击工具栏的报告,查看测试报告
2. 着重查看“Socket Errors”部分和“Result Codes”部分。其中Socket Errors部分共分为ConnectSend RecvTimeouts。其中Connect表示客户端不能与服务器取得连接的次数;Send表示客户端不能正确发送数据到服务器的次数;Recv表示客户端不能正确从服务器连接次的次数;Timeouts表示超时的线程数目。如果这四个数值都比较小,甚至为0则说明这个服务器是经得起考验的;如果数值居高不下,甚至接近设置的并发数,那么则要好好的检查你的服务器了
Result Codes”部分,如果Code列表下的数值都为200,那么表示所有请求都经服务器成功返回,如果数值出现400或大于400,例如404,那么则需要在左侧找到“Page Data”节点,查看具体的错误项目,然后作出相应的修改。
3. 速度
4 连接数,服务器 IP,. 时间参数
5. 测试最好由多台客户机来测试,不要在一台测试机上设置超大的连接数Stress Level,且这些测试机分布在不同的地方。在你测试服务器的内网会出现网页无法显示,访问其他网站的网页也打不开,这时可以让不跟你在同一个局域网内的朋友访问试一下你的服务器。不断的增加或减少连接数,经过多次测试才知道这个服务器能承受多大压力。如果是IIS搭建的服务器还可以修改允许的最大连接数。得到数据后分析数据,服务器资源分布,响应处理速度,大量用户或遭到攻击时该采取哪些相应的措施,以及性能优化。
 
 
(为了大家更好的访问51CTO,请大家不要以51cto为服务器做压力测试。我这里只是为了宣传51cto才用的,并设置的连接数也不大。)


本文转自 idyllic_cyty 51CTO博客,原文链接:http://blog.51cto.com/aizzw/123291
相关文章
|
11天前
|
Shell Python
`pytest-httpserver`是一个pytest插件,它允许你在测试期间启动一个轻量级的HTTP服务器,并模拟HTTP请求和响应。
`pytest-httpserver`是一个pytest插件,它允许你在测试期间启动一个轻量级的HTTP服务器,并模拟HTTP请求和响应。
|
1月前
|
运维 Java 测试技术
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
Spring运维之boo项目表现层测试加载测试的专用配置属性以及在JUnit中启动web服务器发送虚拟请求
24 3
|
1月前
|
NoSQL Redis 数据安全/隐私保护
连接测试服务器redis
连接测试服务器redis
29 1
|
1月前
|
XML Web App开发 Java
【软件测试】关于Web自动化测试
【软件测试】关于Web自动化测试
|
1月前
|
存储 关系型数据库 MySQL
Baidu Comate Web在线出题能力测试——MySQL出题能力
Baidu Comate Web在线出题能力测试——MySQL出题能力
22 0
|
1月前
|
Linux Shell 测试技术
Linux服务器测试脚本集合
LemonBench是iLemonrain创作的Linux服务器性能测试工具,能一键检测系统信息、网络、CPU、内存和硬盘性能。
21 0
|
2月前
|
JavaScript Java 测试技术
《手把手教你》系列技巧篇(四十六)-java+ selenium自动化测试-web页面定位toast-下篇(详解教程)
【5月更文挑战第10天】本文介绍了使用Java和Selenium进行Web自动化测试的实践,以安居客网站为例。最后,提到了在浏览器开发者工具中调试和观察页面元素的方法。
41 2
|
2月前
|
安全 测试技术 持续交付
在Python Web开发中,测试是一个至关重要的环节
【5月更文挑战第12天】在Python Web开发中,测试至关重要,包括单元测试(unittest模块)、集成测试、功能测试、系统测试、验收测试、性能测试、安全测试和端到端测试。常用的测试工具有unittest、pytest、selenium、requests和coverage。遵循“测试先行”和“持续集成”原则,确保代码质量与稳定性。
162 3
|
1月前
|
网络协议 Linux Windows
测试端口是否开放 tcp端口 udp端口 测试服务器端口连通性
测试端口是否开放 tcp端口 udp端口 测试服务器端口连通性
51 0
|
2月前
|
运维 监控 Linux
提升系统稳定性:Linux服务器性能监控与故障排查实践深入理解与实践:持续集成在软件测试中的应用
【5月更文挑战第27天】在互联网服务日益增长的今天,保障Linux服务器的性能和稳定性对于企业运维至关重要。本文将详细探讨Linux服务器性能监控的工具选择、故障排查流程以及优化策略,旨在帮助运维人员快速定位问题并提升系统的整体运行效率。通过实际案例分析,我们将展示如何利用系统资源监控、日志分析和性能调优等手段,有效预防和解决服务器性能瓶颈。