利用Web Application Stress Tool(WAS)做性能测试(1)

类别:Asp 点击:0 评论:0 推荐:
利用Web Application Stress Tool(WAS)做性能测试(1) Duwamish Online

Aaron Ching, Pedro Silva, and Allen Wagner
Microsoft Developer Network

January 2001

摘要:这篇文章讨论了性能测试对于成功发布一个网络应用的重要性,集中讨论了微软的Web Application Stress (WAS)这个用于测试Duwamish Online的性能的工具。

内容

介绍
使用WAS的好处
WAS的缺陷
安装WAS
创建测试脚本
配置测试脚本
运行测试脚本
结论:最好的习惯

介绍

性能测试是成功发布一个网络应用的关键因素。当越来越多的用户访问你的站点时,清楚地知道你的应用程序和你的服务器群是怎样工作的就显得非常重要了。

为了给你的网络应用程序模拟出那种类型的使用,你可以协同几百甚至上千的真实用户在一段设计好的时间段里访问你的站点,你也可以只与一个能复制这么多用户负载的测试工具一起工作,

许多性能测试工具可以帮你的忙。基本上,这些工具都允许你以有限的客户端模拟大量的虚拟用户,并发地访问预先确定的页面或网站的URLs (Uniform Resource Locators)。每一个虚拟用户都能精确地仿效在真实浏览器和网站服务器之间进行通讯协议。

在这篇文章里,我们将专注于其中一个这样的工具:Microsoft® Web Application Stress (WAS)工具。你可以在微软的Microsoft Windows® 2000 Resource Kit CD (WAS version 288)里面找到这个工具。

注意      WAS不能再从Microsoft的网站下载了,Visual Studio .NET 的企业架构 和 企业开发版本都包含一个新的网络压力测试工具,这个工具叫做Application Center Test,是受Microsoft技术支持的工具。这个工具包含在Visual Studio .NET安装时的Enterprise Development Tools部分。在写这篇文章时,Application Center Test还没有正式公开发表。关于如何得到Visual Studio .NET,请访问Visual Studio网站。

使用WAS的好处

首先,我们来讨论一下使用WAS测试你的应用程序的好处。

它简单

WAS允许你以不同的方式创建测试脚本:你可以通过使用浏览器走一遍站点来录制脚本,可以从服务器的日志文件导入URL,或者从一个网络内容文件夹选择一个文件。当然,你也可以手工地输入URL来创建一个新的测试脚本。

不像其它的工具,你可以使用任何数量的客户端运行测试脚本,全部都有一个中央主客户端来控制。在每一个测试开始前,主客户机透明地执行以下任务:

·                     与其他所有的客户机通讯

·                     把测试数据分发给所有的客户端

·                     在所有客户端同时初始化测试

·                     从所有的客户端收集测试结果和报告

这个特性非常重要,尤其对于要测试一个需要使用很多客户端的服务器群的最大吞吐量时非常有用。

它的高可用性

WAS是被设计用于模拟Web浏览器发送请求到任何采用了HTTP1.0或1.1标准的服务器,而不考虑服务器运行的平台。

除了它的易用性外,WAS还有很多其它的有用的特性,包括:

·                     对于需要署名登录的网站,它允许创建用户帐号。

·                     允许为每个用户存储cookies 和Active Server Pages (ASP) 的session信息

·                     支持随机的或顺序的数据集,以用在特定的名字-值对

·                     支持带宽调节和随机延迟(“思考的时间”)以更真实地模拟显示情形。

·                     支持Secure Sockets Layer (SSL)协议

·                     允许URL分组和对每组的点击率的说明

·                     提供一个对象模型,可以通过Microsoft Visual Basic® Scripting Edition (VBScript)处理或者通过定制编程来达到开启,结束和配置测试脚本的效果。

WSA的缺陷

除了优势外,WAS的确有一些缺陷存在。当前知道的bug和有关事项都列在WAS的网站上了。以下是当前WAS不支持的特性:

·                     以前面所发请求返回的结果为基础,修改URL参数的能力。

·                     运行或模仿客户端逻辑的能力

·                     为所分配的测试指定一个确定数量的测试周期的能力。

·                     对拥有不同IP地址或域名的多个服务器的同时测试能力

注意   你可以使用多个主客户端来同时测试多个服务器。然而,如果你想把所有测试结果联系起来成为一个整体,则需要整理从各个WAS数据库得到的数据

·                     支持页面在不同IP地址或域名间的重定向的能力

·                     从Web浏览器直接记录SSL页面的能力

注意    WSA已经支持SSL页面的测试,但是没有记录它们。你需要在脚本录制完后,手工地为每个设计好的URL打开SSL支持

虽然对这些限制有一些相应的解决办法,但是如果你的应用依赖一个或多个这样的功能的话,你也许不能完全享受WAS带来的好处。

安装WAS

WAS要求Microsoft Windows NT® 4.0 Service Pack 4或以上版本,包括Windows 2000平台。还要求Internet Explorer 4.0以上版本,与Internet Explorer 5.0工作更好。

要安装WAS,首先下载最新版本的setup.exe程序,按照安装向导的指示。拷贝并在你的测试机器上安装。

注意   在本文介绍的所有步骤均以WAS version 293为蓝本。

创建测试脚本

虽然你可以手动地创建测试脚本,WAS可以通过记录浏览器活动,导入服务器日志文件或评估Web文件夹的内容来帮助你创建测试脚本。在本文,我们将主要通过记录览器活动的方式来创建测试脚本。采用这个方法而不用其它的方法有几个原因,包括:

·                     记录览器活动的方式以精确的方式捕捉所有用户的交互活动。任何从浏览器发往服务器的URL指向,应用程序参数和HTTP头部信息都会被自动地记录在新的测试脚本里。

·                     导入服务器日志文件的方法在站点已经进入投入使用阶段,有了真实的用户流量的情况下使用最好。但是,一个新的站点未必有这么多的真实用户使用数据,进一步说,可能还需要合并大量的日志文件来达到较好地体现用户活动的目的,这将需要创建大量的测试脚本,将需要客户端更多的系统资源。

·                     选取Web内容文件夹的方法最好用在测试多数是静态HTML文件的站点。这种方法允许在已有服务器的Web页面的基础上快速创建测试脚本。然而,这种方法并不捕捉任何由大多数应用程序文件产生的参数,像Common Gateway Interface (CGI)程序或Active Server Pages (ASP).

你只需要在主客户机器创建和存储你的测试脚本,当测试由主客户端初始化时,测试脚本会自动地分发到其他的测试客户端。

准备测试客户端机器

如果你正在你的内部网通过代理服务器使用WAS ,并且从内部网外的客户端发送请求页面,而且你的公司使用Microsoft Proxy Server,那么按照以下的步骤建立你的客户端:

1.                  从开始菜单,指向设置\控制面板。双击管理工具图标,然后是服务图标。

2.                  双击WebTool服务打开属性对话框

3.                  点Log On As标签,然后点This account选择按钮添加你的网络用户名和密码。使用domain\user name的格式

4.                  停止并重起WebTool服务

5.                  然后,安装Microsoft Windows Proxy client 2.0,也叫Winsock Proxy 客户端,可以在Microsoft Proxy Server CD里找到(更多有关怎样安装和设置这个软件的信息,请参考包含在CD里面的文档)

6.                  对于希望使用代理服务器的每个测试客户端,重复步骤1-5。

如果你的公司使用其他的代理服务器,就要安装该代理服务器的代理客户端。

准备浏览器

在开始录制一个脚本前,你需要准备好你的浏览器,清除你的浏览器的缓冲cache。否则,WAS也许不能记录所需的浏览器活动,因为浏览器可能从缓冲区而不是从所请求的服务器取得请求页面。

关掉IE的缓冲区

1.                  在工具菜单,点Internet选项

2.                  点常规标签,然后点删除文件。。。按钮。

如果使用IE5。0或以上版本则不需要修改代理设置,因为5。0以上版本的IE允许WAS改变这些设置。然而,对于IE4。0或早期版本,WAS使用一个内置的代理服务器来记录浏览器活动。 

按WAS的需要指定代理设置

1.                  在工具菜单,点Internet选项

2.                  在连接标签里,修改代理设置以使代理服务器指向Localhost并且使用端口8000

3.                  不选对于本地地址不使用代理服务器

记录脚本

在你的浏览器和客户端已经准备好记录后,做下面的操作:

1.                  当你第一次运行WAS时,你会看到一个Create new script的对话框(Figure 1),询问你以什么样的方式创建一个新的测试脚本。

Figure 1. Creating the script

2.                  点Record 按钮 。如果之前你选择了Don't display at startupCreate new script将不会显示出来。你可以在Script菜单选择Record 然后 Create.

3.                  在Browser Recorder Step 1 of 2对话框,你会被要求指定一些记录设置。在这里,清除所有的选择框点Next继续。

4.                  在Browser Recorder Step 2 of 2对话框,点Finish。一个新的IE窗口会出现以便记录浏览器活动,同时WAS会被置于记录模式。

5.                  在新出现的IE窗口的地址栏,输入你的目的站点的地址。在WAS的窗口你将看到HTTP 信息在跟随你的浏览活动而实时改变着。

6.                  当完成了你的站点浏览后,转回WAS窗口—还处于记录状态—点Stop Recording按钮。就会终止记录并产生一个新的测试脚本,如Figure 2所示。

Figure 2. The WAS program window after recording is finished

在右边窗口的底部,你将看到一个列出所有脚本的列表。

对于需要安全连接的站点,WAS支持SSL页面。然而不允许SSL的记录。要解决这些限制,你可以在服务器端关掉SSL,记录脚本,然后再重新激活服务器上的SSL。

本文地址:http://com.8s8s.com/it/it9110.htm