系统性能测试附WAS使用.docx
- 文档编号:10567167
- 上传时间:2023-02-21
- 格式:DOCX
- 页数:15
- 大小:23.46KB
系统性能测试附WAS使用.docx
《系统性能测试附WAS使用.docx》由会员分享,可在线阅读,更多相关《系统性能测试附WAS使用.docx(15页珍藏版)》请在冰豆网上搜索。
系统性能测试附WAS使用
系统性能测试方案
1引言
1.1编写目的
编写本方案的目的是用于指导XXXX系统的性能测试,主要从测试环境、测试工具、测试策略、测试具体执行方法、任务与进度表等事先计划和设计。
1.2适用范围
XXXX系统性能测试组
XXXX系统开发组
XXXX系统性能优化组
1.3参考资料
系统性能测试指南
1.4术语和缩写词
缩写、术语
解释
性能测试
(performancetesting)
运行这些测试通常要确定程序运行有多快,以便确定是否需要优化
负载测试
(loadtesting)
通过在面临很多资源要求的系统上运行,攻击被测程序或系统
可靠性测试
(reliabilitytesting)
持续进行的性能测试,目标是发现短序列程序测试遗漏的情况
……
2系统介绍
3测试环境
3.1网络拓扑图
3.2硬件环境
3.3软件环境
4测试范围与主要内容
测试范围:
如:
XXXX系统各项性能指标,反应时间的性能测试、CPU、Memory的性能测试、负载的性能测试(压力测试)、可靠性测试
主要检测内容:
如:
1.典型应用的反应时间
2.客户端、服务器的CPU、Memory使用情况
3.服务器的响应速度
4.系统支持的最优负载数量
5.网络指标
6.系统可靠性测试
5测试工具和测试方法
5.1测试工具
MI(MercuryInteractive)公司的LoadRunner7.5.1创建虚拟用户脚本工具VirtualUserGenerator
MI(MercuryInteractive)公司的LoadRunner7.5.1创建、运行实际场景工具Controller
MI(MercuryInteractive)公司的LoadRunner7.5.1分析测试结果工具Analysis
性能监视器(MicroSoftWin2000自带)
5.2测试方法
5.2.1反应时间的性能测试
处理点或事件
期望的反应时间
实际反映时间平均值(至少3次)
上次或上版本实际反映时间平均值(至少3次)
测试结果分析:
5.2.2CPU、Memory的性能测试
条件:
1.客户端情况
2. 应用服务器情况
3.数据库服务器情况
测试结果分析:
5.2.3负载的性能测试(压力测试
输入/动作
输出/响应
能否正常运行
10个用户操作
20个用户操作
30个用户操作
50个用户操作
100个用户操作
……
测试结果分析:
5.2.4可靠性测试
任务描述
连续运行时间
建议72小时
故障发生的时刻
故障描述
……
统计分析
任务A无故障运行的平均时间间隔
(CPU小时)
任务A无故障运行的最小时间间隔
(CPU小时)
任务A无故障运行的最大时间间隔
(CPU小时)
测试结果分析:
5.2.5网络性能测试
对网络性能的测试,如网络流量、每秒采样数、网络延迟等。
6测试完成准则
系统满足各项性能要求、能满足实际使用情况并提供测试报告
7任务与进度表
8提交的文档和报告
XXXX系统性能测试方案
XXXX系统性能测试报告
XXXX系统性能测试脚本
利用WebApplicationStressTool(WAS)做性能测试
摘要:
这篇文章讨论了性能测试对于成功发布一个网络应用的重要性,集中讨论了微软的WebApplicationStress(WAS)这个用于测试性能的工具。
内容介绍:
使用WAS的好处
WAS的缺陷
安装WAS
创建测试脚本
配置测试脚本
运行测试脚本
结论:
最好的习惯
介绍
性能测试是成功发布一个网络应用的关键因素。
当越来越多的用户访问你的站点时,清楚地知道你的应用程序和你的服务器群是怎样工作的就显得非常重要了。
为了给你的网络应用程序模拟出那种类型的使用,你可以协同几百甚至上千的真实用户在一段设计好的时间段里访问你的站点,你也可以只与一个能复制这么多用户负载的测试工具一起工作。
许多性能测试工具可以帮你的忙。
基本上,这些工具都允许你以有限的客户端模拟大量的虚拟用户,并发地访问预先确定的页面或网站的URLs(UniformResourceLocators)。
每一个虚拟用户都能精确地仿效在真实浏览器和网站服务器之间进行通讯协议。
在这篇文章里,我们将专注于其中一个这样的工具:
Microsoft®WebApplicationStress(WAS)工具。
你可以在微软的MicrosoftWindows®2000ResourceKitCD(WASversion288)里面找到这个工具。
注意WAS不能再从Microsoft的网站下载了,VisualStudio.NET的企业架构和企业开发版本都包含一个新的网络压力测试工具,这个工具叫做ApplicationCenterTest,是受Microsoft技术支持的工具。
这个工具包含在VisualStudio.NET安装时的EnterpriseDevelopmentTools部分。
在写这篇文章时,ApplicationCenterTest还没有正式公开发表。
关于如何得到VisualStudio.NET,
使用WAS的好处
首先,我们来讨论一下使用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
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,那么按照以下的步骤建立你的客户端:
1.从开始菜单,指向设置\控制面板。
双击管理工具图标,然后是服务图标。
2.双击WebTool服务打开属性对话框
3.LogOnAs标签,然后点Thisaccount选择按钮添加你的网络用户名和密码。
使用domain\username的格式
4.停止并重起WebTool服务
5.然后,安装MicrosoftWindowsProxyclient2.0,也叫WinsockProxy客户端,可以在MicrosoftProxyServerCD里找到(更多有关怎样安装和设置这个软件的信息,请参考包含在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时,你会看到一个Createnewscript的对话框(Figure1),询问你以什么样的方式创建一个新的测试脚本。
Figure1.Creatingthescript
2.点Record按钮。
如果之前你选择了Don'tdisplayatstartup,Createnewscript将不会显示出来。
你可以在Script菜单选择Record然后Create.
3.在BrowserRecorder—Step1of2对话框,你会被要求指定一些记录设置。
在这里,清除所有的选择框点Next继续。
4.在BrowserRecorder—Step2of2对话框,点Finish。
一个新的IE窗口会出现以便记录浏览器活动,同时WAS会被置于记录模式。
5.在新出现的IE窗口的地址栏,输入你的目的站点的地址。
在WAS的窗口你将看到HTTP信息在跟随你的浏览活动而实时改变着。
6.当完成了你的站点浏览后,转回WAS窗口—还处于记录状态—点StopRecording按钮。
就会终止记录并产生一个新的测试脚本,如Figure2所示。
Figure2.TheWASprogramwindowafterrecordingisfinished
在右边窗口的底部,你将看到一个列出所有脚本的列表。
对于需要安全连接的站点,WAS支持SSL页面。
然而不允许SSL的记录。
要解决这些限制,你可以在服务器端关掉SSL,记录脚本,然后再重新激活服务器上的SSL。
利用WebApplicationStressTool(WAS)做性能测试(3)
建立各客户端机器
WAS允许你使用多个客户端机器测试你的网站。
当一个测试开始时,WAS会自动地与所有客户机取得联系,向他们传输所有的测试信息(包括测试脚本项,页面组和用户定义信息),启动和停止他们的测试,然后收集测试结果。
使用其中一个客户机器作为你的主客户端。
这个主客户端应该是你用来记录和设置测试脚本的机器。
建立测试客户端
1.在左边窗口展开脚本信息
2.点Clients节点在右边窗口打开相应的视图
3.双击Default客户端打开客户端视图
本地客户端的记录(在你工作的主客户端)已经默认被创建。
4.要想加入新的客户端,在Machinename输入IP地址或域名。
5.点Add按钮,新的客户端会以Connected的状态被加到表单中去。
6.重复步骤5和6,直到全部客户端机器都被加入。
当添加新的客户端时,尽量加那些大致相同处理能力的机器。
我们发现添加一个明显比其他机器速度慢的机器比不添加它还要产生更多的socket错误。
我们也发现如果我们设置一台专注的机器作为主客户端,但是这台机器不参与产生负载。
这样的设置,我们会产生较少的socket错误,而且测试结束得更快。
要这样设置的话,从客户端列表去掉主客户端的名字。
如果你有一台慢的机器而你不打算用做负载产生机器,它可以作为你的主客户端而不会影响测试的输出。
注意,这台主客户端仍然做所有的产生报告和分发测试脚本的工作。
一台慢速度的主客户端意味着你的测试启动和结束的速度会慢些,而且要更多的时间来产生报告。
设置性能计数器
WAS可以与WindowsNT性能监视器结合简化测试数据的收集。
你可以为每个脚本存储你最喜欢的性能监视计数器,WAS会像其它信息一样收集它们的数据。
把性能监视计数器加到你的脚本
1.在左边的窗口展开脚本的信息
2.在右边的窗口点PerfCounters节点打开相应的视图
3.在CollectionInterval,输入收集时间间隔。
这是以秒计算的取样时间。
4.点AddCounter按钮
5.从Addcountertoreport对话框,通过点Add按钮选机器,对象和你感兴趣收集的计数器。
在WAS帮助文件的"Commonperformancemonitorcounters"部分有一系列的通用性能计数器的介绍。
如果你在使用这个特性时遇到什么问题,请参考WAS的基本知识介绍。
运行测试脚本
一旦你设置好了测试脚本,就准备好了在你的客户机运行脚本
启动主客户端的测试
1.点需要测试的脚本
2.从Scripts菜单选Run
也可以点工具栏上的Play按钮运行脚本。
检查测试报告
测试完成后,你应该先检查测试报告看是否有socket或HTTP错误
从报告中检查这些错误
1.从View菜单选Reports打开相应的视图,见Figure7.
Figure7.Reportsviewscreen
2.在左边窗口,双击脚本打开测试报告,如果需要的话
3.点测试报告名(有测试运行时间指定),如果需要的话。
你会看到右边窗口显示报告的概要。
4.在报告概要,检查SocketErrors部分是否有任何的socket有关的错误(值不为0)。
这里列出每种socket错误的解释:
·Connect—客户端不能与服务器取得连接的次数。
如果这个值偏高,检查在客户端与服务器之间产生的任何潜在的错误。
从每个客户端Ping服务器或telnet服务器的端口80验证你得到正确的回应。
·Send—客户端不能正确发送数据到服务器的次数。
如果这个值偏高,检查服务器是否正确地工作着。
在客户端打开一个浏览器然后手工点击站点页面验证站点正确地工作着。
·Recv—客户端不能正确从服务器接收数据的次数。
如果这个值偏高,执行和Send错误相同的操作。
还要检查一下如果你减低负载系数,错误是否跟着减少。
·Timeouts—超时的线程的数目,而且随后就关闭了。
如果这个值偏高,在客户端打开一个浏览器然后手工点击站点页面验证是否即使只有一个用户你的程序也会很慢。
再做一个不同负载系数的压力测试,看看你的程序的潜在特征。
5.如果socket错误很低或为0,拉下报告视图找到ResultCodes部分。
6.检查一下是否所有结果代码都是200,表示所有请求都被服务器成功地返回了。
如果找到大于或等于400的结果,继续下面的步骤以查找哪个脚本项(URL)产生这些HTTP错误的。
7.在左边窗口展开脚本信息
8.双击PageData节点展开所有的脚本项
9.点每个脚本项在右边窗口看页面数据的报告
10.在每项脚本的页面数据报告检查ResultCodes部分,验证是否有那项产生了HTTP错误。
如果要看常见的结果代码列表,请参考WAS帮助文件的"HTTPresultcodes"部分。
运行脚本
在准备好以上介绍的测试脚本后,你现在就可以准备运行测试及收集数据了。
你可以按照前面介绍的步骤手工运行每项测试。
然而,这将会是一项耗时的过程。
WAS有一个对象模型,允许你创建自己的MicrosoftVisualBasicScriptingEdition(VBScript)脚本来控制和配置测试运行。
当测试运行时,你应该监视和记录不同的性能相关的系统计数器,包括跟踪系统吞吐量的计数器,反应时间和资源利用率。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 性能 测试 WAS 使用