点击这里给我发消息

我的ITblog我作主  关注→ 『伊波拉』→ 测试 SzDlinXie- ITblog     

·√· 本ITblog站点记录相关的软件技术文档、网络技术杂志、测试技术杂谈等技术文档的管理站点.联系方式:MSN:dowling@sunlike.cn QQ:94595885

统计

积分与排名

测试技术网站链接

最新评论

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

摘要:这篇文章讨论了性能测试对于成功发布一个网络应用的重要性,集中讨论了微软的 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 startup Create 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

 

 

 

 

 

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



 



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

 

建立各客户端机器

WAS 允许你使用多个客户端机器测试你的网站。当一个测试开始时, WAS 会自动地与所有客户机取得联系,向他们传输所有的测试信息(包括测试脚本项,页面组和用户定义信息),启动和停止他们的测试,然后收集测试结果。

使用其中一个客户机器作为你的主客户端。这个主客户端应该是你用来记录和设置测试脚本的机器。

建立测试客户端

1.                   在左边窗口展开脚本信息

2.                   Clients 节点在右边窗口打开相应的视图

3.                   双击 Default 客户端打开客户端视图

本地客户端的记录(在你工作的主客户端)已经默认被创建。

4.                   要想加入新的客户端,在 Machine name 输入 IP 地址或域名。

5.                   Add 按钮,新的客户端会以 Connected 的状态被加到表单中去。

6.                   重复步骤 5 6 ,直到全部客户端机器都被加入。

当添加新的客户端时,尽量加那些大致相同处理能力的机器。我们发现添加一个明显比其他机器速度慢的机器比不添加它还要产生更多的 socket 错误。

我们也发现如果我们设置一台专注的机器作为主客户端,但是这台机器不参与产生负载。这样的设置,我们会产生较少的 socket 错误,而且测试结束得更快。

要这样设置的话,从客户端列表去掉主客户端的名字。如果你有一台慢的机器而你不打算用做负载产生机器,它可以作为你的主客户端而不会影响测试的输出。注意,这台主客户端仍然做所有的产生报告和分发测试脚本的工作。一台慢速度的主客户端意味着你的测试启动和结束的速度会慢些,而且要更多的时间来产生报告。

设置性能计数器

WAS 可以与 Windows NT 性能监视器结合简化测试数据的收集。你可以为每个脚本存储你最喜欢的性能监视计数器, WAS  会像其它信息一样收集它们的数据。

把性能监视计数器加到你的脚本

1.                   在左边的窗口展开脚本的信息

2.                   在右边的窗口点 Perf Counters 节点打开相应的视图

3.                   Collection Interval ,输入收集时间间隔。这是以秒计算的取样时间。

4.                   Add Counter 按钮

5.                   Add counter to report 对话框,通过点 Add 按钮选机器,对象和你感兴趣收集的计数器。

WAS 帮助文件的 "Common performance monitor counters" 部分有一系列的通用性能计数器的介绍。

如果你在使用这个特性时遇到什么问题,请参考 WAS 的基本知识介绍。

运行测试脚本

一旦你设置好了测试脚本,就准备好了在你的客户机运行脚本

  启动主客户端的测试

1.                   点需要测试的脚本

2.                   Scripts 菜单选 Run

也可以点工具栏上的 Play 按钮运行脚本。

检查测试报告

测试完成后,你应该先检查测试报告看是否有 socket HTTP 错误

从报告中检查这些错误

1.                   View 菜单选 Reports 打开相应的视图,见 Figure 7.

 

Figure 7. Reports view screen

2.                   在左边窗口,双击脚本打开测试报告,如果需要的话

3.                   点测试报告名(有测试运行时间指定),如果需要的话。你会看到右边窗口显示报告的概要。

4.                   在报告概要,检查 Socket Errors 部分是否有任何的 socket 有关的错误(值不为 0 )。这里列出每种 socket 错误的解释:

·                                 Connect 客户端不能与服务器取得连接的次数。如果这个值偏高,检查在客户端与服务器之间产生的任何潜在的错误。从每个客户端 Ping 服务器或 telnet 服务器的端口 80 验证你得到正确的回应。

·                                 Send 客户端不能正确发送数据到服务器的次数。如果这个值偏高,检查服务器是否正确地工作着。在客户端打开一个浏览器然后手工点击站点页面验证站点正确地工作着。

·                                 Recv 客户端不能正确从服务器接收数据的次数。如果这个值偏高,执行和 Send 错误相同的操作。还要检查一下如果你减低负载系数,错误是否跟着减少。

·                                 Timeouts 超时的线程的数目,而且随后就关闭了。如果这个值偏高,在客户端打开一个浏览器然后手工点击站点页面验证是否即使只有一个用户你的程序也会很慢。再做一个不同负载系数的压力测试,看看你的程序的潜在特征。

5.                   如果 socket 错误很低或为 0 ,拉下报告视图找到 Result Codes 部分。

6.                   检查一下是否所有结果代码都是 200 ,表示所有请求都被服务器成功地返回了。如果找到大于或等于 400 的结果,继续下面的步骤以查找哪个脚本项( URL )产生这些 HTTP 错误的。

7.                   在左边窗口展开脚本信息

8.                   双击 Page Data 节点展开所有的脚本项

9.                   点每个脚本项在右边窗口看页面数据的报告

10.                在每项脚本的页面数据报告检查 Result Codes 部分,验证是否有那项产生了 HTTP 错误。如果要看常见的结果代码列表,请参考 WAS 帮助文件的 "HTTP result codes" 部分。

运行脚本

在准备好以上介绍的测试脚本后,你现在就可以准备运行测试及收集数据了。

你可以按照前面介绍的步骤手工运行每项测试。然而,这将会是一项耗时的过程。

WAS 有一个对象模型,允许你创建自己的 Microsoft Visual Basic Scripting Edition (VBScript) 脚本来控制和配置测试运行。

当测试运行时,你应该监视和记录不同的性能相关的系统计数器,包括跟踪系统吞吐量的计数器,反应时间和资源利用率。

posted on 2006-12-17 01:04 szdlinxie 阅读(714) 评论(0)  编辑 收藏 引用 所属分类: 性能测试技术资料WEB测试技术测试工具技术

只有注册用户登录后才能发表评论。
点击这里给我发消息