微软Web Application Stress 的使用体验文档格式.docx
- 文档编号:16663582
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:21
- 大小:41.76KB
微软Web Application Stress 的使用体验文档格式.docx
《微软Web Application Stress 的使用体验文档格式.docx》由会员分享,可在线阅读,更多相关《微软Web Application Stress 的使用体验文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
运行完脚本后,你就可以查看报告了,在View|Report中,图6就是报告。
图6
利用WebApplicationStressTool(WAS)做性能测试
(1)
DuwamishOnline
AaronChing,PedroSilva,andAllenWagner
MicrosoftDeveloperNetwork
January2001
摘要:
这篇文章讨论了性能测试对于成功发布一个网络应用的重要性,集中讨论了微软的WebApplicationStress(WAS)这个用于测试DuwamishOnline的性能的工具。
内容
介绍
使用WAS的好处
WAS的缺陷
安装WAS
创建测试脚本
配置测试脚本
运行测试脚本
结论:
最好的习惯
性能测试是成功发布一个网络应用的关键因素。
当越来越多的用户访问你的站点时,清楚地知道你的应用程序和你的服务器群是怎样工作的就显得非常重要了。
为了给你的网络应用程序模拟出那种类型的使用,你可以协同几百甚至上千的真实用户在一段设计好的时间段里访问你的站点,你也可以只与一个能复制这么多用户负载的测试工具一起工作,
许多性能测试工具可以帮你的忙。
基本上,这些工具都允许你以有限的客户端模拟大量的虚拟用户,并发地访问预先确定的页面或网站的URLs(UniformResourceLocators)。
每一个虚拟用户都能精确地仿效在真实浏览器和网站服务器之间进行通讯协议。
在这篇文章里,我们将专注于其中一个这样的工具:
Microsoft®
WebApplicationStress(WAS)工具。
你可以在微软的MicrosoftWindows®
2000ResourceKitCD(WASversion288)里面找到这个工具。
注意WAS不能再从Microsoft的网站下载了,VisualStudio.NET的企业架构和企业开发版本都包含一个新的网络压力测试工具,这个工具叫做ApplicationCenterTest,是受Microsoft技术支持的工具。
这个工具包含在VisualStudio.NET安装时的EnterpriseDevelopmentTools部分。
在写这篇文章时,ApplicationCenterTest还没有正式公开发表。
关于如何得到VisualStudio.NET,请访问VisualStudio网站。
首先,我们来讨论一下使用WAS测试你的应用程序的好处。
它简单
WAS允许你以不同的方式创建测试脚本:
你可以通过使用浏览器走一遍站点来录制脚本,可以从服务器的日志文件导入URL,或者从一个网络内容文件夹选择一个文件。
当然,你也可以手工地输入URL来创建一个新的测试脚本。
不像其它的工具,你可以使用任何数量的客户端运行测试脚本,全部都有一个中央主客户端来控制。
在每一个测试开始前,主客户机透明地执行以下任务:
∙
与其他所有的客户机通讯
把测试数据分发给所有的客户端
在所有客户端同时初始化测试
从所有的客户端收集测试结果和报告
这个特性非常重要,尤其对于要测试一个需要使用很多客户端的服务器群的最大吞吐量时非常有用。
它的高可用性
WAS是被设计用于模拟Web浏览器发送请求到任何采用了HTTP1.0或1.1标准的服务器,而不考虑服务器运行的平台。
除了它的易用性外,WAS还有很多其它的有用的特性,包括:
对于需要署名登录的网站,它允许创建用户帐号。
允许为每个用户存储cookies和ActiveServerPages(ASP)的session信息
支持随机的或顺序的数据集,以用在特定的名字-值对
支持带宽调节和随机延迟(“思考的时间”)以更真实地模拟显示情形。
支持SecureSocketsLayer(SSL)协议
允许URL分组和对每组的点击率的说明
提供一个对象模型,可以通过MicrosoftVisualBasic®
ScriptingEdition(VBScript)处理或者通过定制编程来达到开启,结束和配置测试脚本的效果。
WSA的缺陷
除了优势外,WAS的确有一些缺陷存在。
当前知道的bug和有关事项都列在WAS的网站上了。
以下是当前WAS不支持的特性:
以前面所发请求返回的结果为基础,修改URL参数的能力。
运行或模仿客户端逻辑的能力
为所分配的测试指定一个确定数量的测试周期的能力。
对拥有不同IP地址或域名的多个服务器的同时测试能力
注意你可以使用多个主客户端来同时测试多个服务器。
然而,如果你想把所有测试结果联系起来成为一个整体,则需要整理从各个WAS数据库得到的数据
支持页面在不同IP地址或域名间的重定向的能力
从Web浏览器直接记录SSL页面的能力
注意WSA已经支持SSL页面的测试,但是没有记录它们。
你需要在脚本录制完后,手工地为每个设计好的URL打开SSL支持
虽然对这些限制有一些相应的解决办法,但是如果你的应用依赖一个或多个这样的功能的话,你也许不能完全享受WAS带来的好处。
WAS要求MicrosoftWindowsNT®
4.0ServicePack4或以上版本,包括Windows2000平台。
还要求InternetExplorer4.0以上版本,与InternetExplorer5.0工作更好。
要安装WAS,首先下载最新版本的setup.exe程序,按照安装向导的指示。
拷贝并在你的测试机器上安装。
注意在本文介绍的所有步骤均以WASversion293为蓝本。
虽然你可以手动地创建测试脚本,WAS可以通过记录浏览器活动,导入服务器日志文件或评估Web文件夹的内容来帮助你创建测试脚本。
在本文,我们将主要通过记录览器活动的方式来创建测试脚本。
采用这个方法而不用其它的方法有几个原因,包括:
记录览器活动的方式以精确的方式捕捉所有用户的交互活动。
任何从浏览器发往服务器的URL指向,应用程序参数和HTTP头部信息都会被自动地记录在新的测试脚本里。
导入服务器日志文件的方法在站点已经进入投入使用阶段,有了真实的用户流量的情况下使用最好。
但是,一个新的站点未必有这么多的真实用户使用数据,进一步说,可能还需要合并大量的日志文件来达到较好地体现用户活动的目的,这将需要创建大量的测试脚本,将需要客户端更多的系统资源。
选取Web内容文件夹的方法最好用在测试多数是静态HTML文件的站点。
这种方法允许在已有服务器的Web页面的基础上快速创建测试脚本。
然而,这种方法并不捕捉任何由大多数应用程序文件产生的参数,像CommonGatewayInterface(CGI)程序或ActiveServerPages(ASP).
你只需要在主客户机器创建和存储你的测试脚本,当测试由主客户端初始化时,测试脚本会自动地分发到其他的测试客户端。
准备测试客户端机器
如果你正在你的内部网通过代理服务器使用WAS,并且从内部网外的客户端发送请求页面,而且你的公司使用MicrosoftProxyServer,那么按照以下的步骤建立你的客户端:
从开始菜单,指向设置\控制面板。
双击管理工具图标,然后是服务图标。
双击WebTool服务打开属性对话框
点LogOnAs标签,然后点Thisaccount选择按钮添加你的网络用户名和密码。
使用domain\username的格式
停止并重起WebTool服务
然后,安装MicrosoftWindowsProxyclient2.0,也叫WinsockProxy客户端,可以在MicrosoftProxyServerCD里找到(更多有关怎样安装和设置这个软件的信息,请参考包含在CD里面的文档)
6.
对于希望使用代理服务器的每个测试客户端,重复步骤1-5。
如果你的公司使用其他的代理服务器,就要安装该代理服务器的代理客户端。
准备浏览器
在开始录制一个脚本前,你需要准备好你的浏览器,清除你的浏览器的缓冲cache。
否则,WAS也许不能记录所需的浏览器活动,因为浏览器可能从缓冲区而不是从所请求的服务器取得请求页面。
关掉IE的缓冲区
在工具菜单,点Internet选项
点常规标签,然后点删除文件。
。
按钮。
如果使用IE5。
0或以上版本则不需要修改代理设置,因为5。
0以上版本的IE允许WAS改变这些设置。
然而,对于IE4。
0或早期版本,WAS使用一个内置的代理服务器来记录浏览器活动。
按WAS的需要指定代理设置
在连接标签里,修改代理设置以使代理服务器指向Localhost并且使用端口8000
不选对于本地地址不使用代理服务器
记录脚本
在你的浏览器和客户端已经准备好记录后,做下面的操作:
当你第一次运行WAS时,你会看到一个Createnewscript的对话框(Figure1),询问你以什么样的方式创建一个新的测试脚本。
Figure1.Creatingthescript
点Record按钮。
如果之前你选择了Don'
tdisplayatstartup,Createnewscript将不会显示出来。
你可以在Script菜单选择Record然后Create.
在BrowserRecorder—Step1of2对话框,你会被要求指定一些记录设置。
在这里,清除所有的选择框点Next继续。
在BrowserRecorder—Step2of2对话框,点Finish。
一个新的IE窗口会出现以便记录浏览器活动,同时WAS会被置于记录模式。
在新出现的IE窗口的地址栏,输入你的目的站点的地址。
在WAS的窗口你将看到HTTP信息在跟随你的浏览活动而实时改变着。
当完成了你的站点浏览后,转回WAS窗口—还处于记录状态—点StopRecording按钮。
就会终止记录并产生一个新的测试脚本,如Figure2所示。
Figure2.TheWASprogramwindowafterrecordingisfinished
在右边窗口的底部,你将看到一个列出所有脚本的列表。
对于需要安全连接的站点,WAS支持SSL页面。
然而不允许SSL的记录。
要解决这些限制,你可以在服务器端关掉SSL,记录脚本,然后再重新激活服务器上的SSL。
利用WebApplicationStressTool(WAS)做性能测试
(2)
设置测试脚本
新录制的脚本还不能立即用来测试。
还必须完成以下设置:
调节脚本项和他们的属性
调节测试脚本的测试
建立页面组和点击百份比
建立用户帐号
建立客户端
建立性能计数器
调节脚本项
在修改一个测试脚本的脚本项时需要考虑几点,我们将在下面介绍。
去掉不需要的脚本项
去掉冗余项以减少在测试中的噪声因素,或者去掉那些无效的URL。
当要调整一项特殊的功能时,去掉所有指向图象,样式表单和其他辅助静态文件的脚本项。
为脚本项指定思考时间
脚本项表单的最后一项叫做“延迟”。
这项允许你在执行脚本项之前指定特定的延迟时间(也叫思考时间)。
对于性能测试来说,如何定义思考时间并没有一个单独的标准。
有些人使用零思考时间,有些人考虑使用30秒为思考时间。
主要取决于站点的内容和测试的目的。
例如,有长页面内容的站点需要比简单页面的站点使用长一点的时间,因为用户需要使用多点的时间来读页面内容。
另外,如果你的目的是快速地决定一个只有少量客户端的Web服务器的吞吐量,你可以考虑零思考时间。
没有思考时间的话,WAS的每个线程以最快速度对Web服务器施加压力。
为脚本项设置一系列的值
WAS允许你为一个脚本项的一对名字-值赋值,而不是对每一个请求都使用相同的值。
这个特性对于模拟真实情形很重要,没有用户会不停的以相同的数据值请求同一页面吧?
例如,其中一项测试脚本是请求一个ASP页面展示一个产品的详细信息。
我们可以设置WAS随机地从一列预先定义的产品ID选取不同的值,而不是每次都用相同的产品ID请求ASP页面。
为脚本项建立一列值
在WAS窗口的脚本项,双击脚本项最前面的方型按钮(在表单的第一列)打开这项的详细菜单。
在Querystring标签里(也叫QuerystringEditor,如Figure3所示),选定FormatdatatoCGIstandard。
相应的名字-值对会出现在checkbox下的表单里。
Figure3.QuerystringEditorscreen
点选定的名字-值对的值,一个新的按钮会出现
点这个按钮打开FieldValues对话框
在Fieldvalues对话框输入一串值,每一行一个值。
你也可以通过剪切,粘贴一个电子表格的数据文件来输入。
在QuerystringEditor里,在表单中点有相同名字-值对的Distribution一列。
在下拉菜单选择Random。
为脚本项设置SSL
为特定的脚本项激活SSL,需要作以下操作:
在
SSL标签里,选UseSSL.(注意在你激活SSL时确保端口值应该在80到443之间)。
调整脚本设置
为了您能满意地运行你的性能测试,你需要修改你的测试脚本的设置。
通过双击左边的脚本名展开脚本的信息,你会找到一个Settings标签,在这里你可以为你的测试脚本指定很多设置。
点击它将在右边窗口打开Settings视图,如Figure4所示。
Figure4.Settingsviewscreen
指定目标Web服务器
默认地,目标服务器是“localhost”,应该替换为IP地址或目标服务器的域名。
改变设置
在左边的窗口点测试脚本的名字
在右边窗口顶部的Server输入目标服务器的IP地址或域名
注意如果你想对有NetworkLoadBalancing(网络负载均衡)的服务器群组进行测试,就像DuwamishOnline一样,则需要输入IP地址群。
设置并发连接数
在设置里的ConcurrentConnections部分,你可以指定Stresslevel(threads)的值和Stressmultiplier(socketsperthread)来控制对目标服务器的压力/负载程度。
Stresslevel是全部客户端所产生的WindowsNT线程的总数。
每个线程能产生多个socket而每个socket就是一个并发的请求。
以下公式解释了他们之间的关系:
TotalConcurrentRequests=Stresslevel(threads)xStressmultiplier
(socketsperthread)=TotalNumberSockets
在我们的实验室,我们使用不同的Stress层次来性能测试。
例如,我们使用过100,200,300,400,500,750,1000,1500,和2000的值来连续测试以研究我们的服务器群组是如何对连续增长的负载作出反应的。
你应该在初步测试的结果基础上调整这些数值。
通常来说,你需要在低负载度时收集更多的数据点,因为这时候系统的吞吐量会随线程的增长而线性增长。
另一方面,你可以在高负载度时运行较少的测试以节省时间和精力,尤其是系统吞吐量已经高于峰值时。
注意我们的第一次测试将设定在1000个线程。
目的是运行足够的请求以建立我们程序的数据缓冲。
因为程序的性能会因为有没有缓冲而表现大不相同,这将帮助我们为负载测试保持一个一致的环境。
设定测试运行时间
在设置视图的TestRunTime部分,你可以以日,小时,分钟,秒来设定总的运行时间。
取决于你的脚本项的预期反应时间,建议你运行测试脚本至少若干分钟以便产生足够的请求,避免变形的测试结果。
你的程序的反应时间越高,测试进行的时间就应该越长,以便产生大量的数据。
你可以运行短而密集的测试以便监测你的站点的任何问题。
另外,你需要运行更长的测试时间(例如,30天),看看你的站点的性能是否随时间而退化,尤其是在中级或高级的负载压力下。
在DuwamishOnline这个站点,大多数的性能测试都运行7到10分钟,以便有足够时间来稳定测试结果。
设置随机延迟时间
在设置视图的RequestDelay部分,你可以在执行测试前为每个脚本项选择加入随机延迟时间(或思考时间)。
如果Userandomdelay选项框被选中,每个WAS线程会空转一段随机的时间(在最大值和最小值之间)加上为每个脚本项指定的固定的思考时间。
下面的公式解释了延迟时间的计算方法:
每项的延迟时间=随机延迟时间+每项的固定延迟时间
随机延迟时间的特性在固定延迟时间被指定给脚本项时尤为重要。
如果没有使用随机延迟时间,所有的线程会在几乎相同的时间发送请求到Web服务器,然后等待几乎相同的固定延迟时间然后发送下一个请求。
随机延迟时间在向Web服务器施加负载时有助于压平峰值和谷值,因此为所需的负载水平呈现一个更为精确的环境。
设定挂起时间
在设置视图的Suspend部分,你可以以日,小时,分钟,秒来设定warmup和cooldown时间。
Warmup时间就是初始化测试运行时间,在这段时间里不会收集和计算性能数据。
类似地,cooldown时间就是指定结束阶段的测试时间,也不收集数据。
Warmup和cooldown被用于最小化测试结果的失真。
通常,在一个新测试运行的初始化阶段,很多系统资源是被特定的活动所消耗,像组件或应用程序的缓冲初始化。
Warmup时间有助于在任何测试数据被收集之前稳定系统的环境。
另一方面,cooldown时间有助于在测试运行的结束阶段避免数据的变形,这时额外的系统资源被用于停止测试和开始从客户端收集数据。
另外,socket连接可能会过早地停止,造成大量的socket错误。
在DuwamishOnline,我们使用30到60秒作为大多数性能测试的warmup和cooldown时间
指定带宽瓶颈
在设置视图里的Bandwidth部分,WAS允许你模拟从14.4Kbps的modem连接到T1(1.5Mbps)的LocalAreaNetwork(LAN)连接的网络带宽。
这个特性的最大好处是可以支撑大量的并发连接到目标服务器。
这是大多数Web站点(用户使用低速modem连接)所体验的情形。
激活带宽瓶颈
在设置视图里的Bandwidth部分,选择Throttlebandwidth选项框。
在下拉菜单,选择一个代表大多数用户的连接吞吐量的带宽。
在DuwamishOnline里,我们试过不同的带宽瓶颈的设置。
初始化时。
我们把用户连接设在56Kbps,想明白我们的程序在大多数Web站点的情况下是如何表现
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微软Web Application Stress 的使用体验 微软 Web 使用 体验