对你的ASP程序作负载测试

程序

J.D. Meier

September 27, 1999

内容
介绍
剧情
测试需求
介绍测试工具WAS
分析测试结果
影响表现和可测性的因素
模拟多用户
运行需要登录认证的测试
WAS的应用技巧
资源

介绍
当我们从传统的CS结构的应用程序转到当前流行的Web空间的程序时,我们发现我们在尝试跟上不断增长的可测性需求和性能要求。其中一个最大的挑战在于如何确定你的程序能最多支持多少个用户的访问。你如何面对这一挑战?设定清晰的性能目标并使用Web压力测试工具会是一个好的开始。

这篇文章将会介绍如何对你的ASP程序进行压力测试,同时将会介绍微软的压力测试工具- Web Application Stress test Tool (WAS).在接下来的一章,你将会学习到压力测试的基础,同时还会学到一些必要的技巧,通过这些学习,你将可以根据测试的结果更加有效的测试和修改你的程序。

剧情
假设你将要发布一个预期有1000用户使用的ASP程序。你清楚的知道你的程序至少能处理两个并发的用户的访问,因为你和你的伙伴能整天地点击这个ASP程序而不会出现任何的问题。你在怀疑到底两个用户能否精确地反映你的程序的受压能力。当然你可以使用标准的测试方法(发布你的程序,然后期待最好的结果出现),然而你还是决定预先测试你的程序的表现。这是一个好兆头!

测试需求
为了更好的测试你的ASP程序,你首先需要决定你的程序将来需要面对多大的压力。简单的说,压力或负载可以分解成以下数字:

· 最低用户数量。(这个程序的使用者的最低数量是多少?通常这个数值可以是每日或没周或每月的点击量—当然你也可以分解成一个更可控的数值—每小时访问量,)

· 并发用户的总量. (在最高峰时的糟糕状况是什么?作出相应的计划. 希望在有压力的情况下工作正常有效.)

· 请求高峰值. (每秒钟需要产生多少ASP页面? 这也许是在衡量一个ASP程序对用户请求作出反应的能力时的一个最重要的因素.)

为你的程序决定用户量和并发用户数通常是很困难的事情,而且是在你的程序在被实际使用之前。尤其是网络程序。即使是局域网程序也常常要面对用户增加的问题,所以准确的预计用户量将会是困难的。当你不知道怎么开始时,最好从基础的开始:

Internet需要考虑的问题:
· 分析你已有的IIS日志。这个数值会暗示出一些实际的几率

· 你的站点将会有多流行?流行的站点一天会有100万或更多的访问量。不会那么流行?那么假设一些不同的情况?假设你有1000以上的用户群?你能通过增加更多的硬件设备来解决扩展性问题吗?或者,你的程序的架构会成为瓶颈吗?

· 什么是最糟糕的情况?问一下你的朋友这些情况会发生吗?

Intranet需要考虑的问题:
· 同样地,分析你已有的IIS日志。

· 这个ASP程序是可以给每个人用的吗?在公司内部网有多少台机器?你的系统管理员可以告诉你有关网络高峰流量的东西吗?

· 这个程序有特定的用户对象吗?只是HR人力资源部?有多少个人力资源部的员工在使用?

· 最糟糕的情况是怎样的?

如果你不能提前决定适当的负载,那么确定你的程序的最高上限将是你最好的选择。如果被10个用户点击,你能在1秒内产生多少的ASP响应结果?100个呢?1000个呢?10000个呢?记录你的基准。当你从实际使用中得到你的流量日志显示你正在接近你的极限时,你将不仅会为你知道你当前的极限是什么,而且你会有时间准备解决的办法。

介绍测试工具WAS

虽然有很多的压力测试工具可供选择,但是在本文,我会主要集中介绍WAS(就是以前所谓的Homer),WAS是当前微软的标准网页压力测试工具。如果你已经对WebCat很熟悉了,你会激动的发现WAS可以很方便地导入现有的WebCat脚本。如果你以前用过InetMonitor,你会激动的发现WAS也是基于GUI的(对于很多使用命令行的WebCat的用户来说这将会是一个很好的附加特性)。另一个好处是它是免费的,我的一个好朋友常说,“如果是免费的,那么就是我的。”除了它的价格优势外,这个工具还提供了完整的功能,而且还在不断地升级更新中。Microsoft.com经常要使用它,所以他们会明白这个工具的重要性。

但是你不需要过多地理会我的话,只管自己去尝试。我在文章的结尾会提供一个列表,列出一些第三方的压力测试工具,你可以自己决定选什么工具。底线是你需要一个工具,能够把你的ASP程序放到负载下,在发布之前测试它。

开始使用WAS
我会教你怎样第一次使用这个工具来测试一个ASP页面。我也会介绍怎样使用署名登录的测试和多用户并发访问的测试,因为这些东西会使初学者一头雾水。

首先你需要下载和安装这个工具。你能从下面的链接中得到最新版本

http://www.microsoft.com/technet/treeview/default.asp?url=/TechNet/itsolutions/intranet/downloads/webstres.asp. 在这个网站上还会有关于这个工具的入门指导,你可以随时回去看看。

以下是在安装时需要注意的几点:

· 不要把WAS安装在你的测试目标服务器上,安装在别的机器以确保得到准确的测试结果。

· 在安装WAS的机器上需要有ADO2。1以上的版本。如果oledb32.dll的版本不是2.10.3711或以上,ADO会被WAS自动安装。

· 在安装后你会有一个完整的安装日志,默认会在\Program Files\Microsoft Web Application Stress Tool\INSTALL.LOG.

· 如果你已经安装了旧版本的WAS,更新时会保留数据文件完好。WAS使用Access .mdb文件作为数据存储文件。WAS的初始.mdb包是WAS.mdb,可以在程序安装路径找到。

· WAS在注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WAS存储注册信息。

在运行我们新安装的WAS之前,我们创建一个简单的ASP脚本作为测试页面。创建一个新的叫做MyASPPage.asp 的ASP页面,然后插入以下脚本:

MyASPPage.asp
<%@ Language=VBScript %>
<HTML>
<BODY>
<% CONST ForAppending = 8
set oFSO = server.CreateObject("Scripting.FileSystemObject")
'translate our virtual directory into a physical path
strFilePath = Server.MapPath(Request.ServerVariables("PATH_INFO"))
'grab the root of the virtual directory
strFilePath = left(strFilePath, (InstrRev(strFilePath, "\")))
strFilePath = strFilePath & "MyFile.txt"
'write out to the screen the full file path
Response.Write(strFilePath & "<BR>")
set oTS = oFSO.OpenTextFile(strFilePath,ForAppending, true)
oTS.writeline("Session Id: " & Session.SessionId & chr(32) & _
"Time: " & Cstr(now()))
%>
</BODY>
</HTML>
这个ASP脚本将在一个文本文件中插入SessionId及其活动时间,这样我们可以方便地确认我们的ASP页面是否在正确的执行。一旦你熟悉了这个工具,你就可以指向你实际的ASP页面以作真正的测试。

在服务器的恰当的目录放置你的ASP页面以使它可以被匿名访问。我们在后面将会再试署名访问的测试,但是现在我们需要运行一个最基本的测试。用全路径URL浏览你的页面,包括你的服务器名。例如,一个完整的URL看起来像http://MyServer/MyVirtualDirectory/MyASPPage.asp。一旦你能成功地浏览你的ASP页面(务必检查MyFile.txt这个文件,这个文件会被程序写在虚拟目录的物理位置),你就可以运行WAS做实际的测试了。

当你第一次运行WAS时,将会出现下面的对话框:

Figure 1. Create a new script

虽然其他选项也很诱人,现在我们先选Manual 这项。将来你还可以从菜单的Scripts或在工具拦点取New Script图标来创建一个新的脚本。

欢迎来到脚本浏览界面。左手边的窗口以树型结构列

时间: 2024-09-17 18:16:26

对你的ASP程序作负载测试的相关文章

我不能向它施加足够的压力:对你的ASP程序作负载测试

J.D. MeierSeptember 27, 1999内容介绍剧情测试需求介绍测试工具WAS 分析测试结果影响表现和可测性的因素模拟多用户运行需要登录认证的测试WAS的应用技巧资源介绍当我们从传统的CS结构的应用程序转到当前流行的Web空间的程序时,我们发现我们在尝试跟上不断增长的可测性需求和性能要求.其中一个最大的挑战在于如何确定你的程序能最多支持多少个用户的访问.你如何面对这一挑战?设定清晰的性能目标并使用Web压力测试工具会是一个好的开始.这篇文章将会介绍如何对你的ASP程序进行压力测试

清单:负载测试——SQL Server性能调整的魔法棒

没有什么事情比这更糟了,采纳一个新的应用程序,而它的性能是如此的糟糕,导致业务在一片惊叫声中暂停.这并不是新出现的现象:这就是事实,我经常遇到这样的事实.我打赌你也曾经经历过.那么如何防止这些性能问题,有什么解决方案? 在这些应用程序"在惊叫声中暂停"的情况中,应用程序通常都已经在按照功能性分配的短暂的测试时间内进行过适当的测试了.但是充分吗?由于竞争和全球经济的原因,迅速应用于业务意味着只进行了最小化的测试.同样,最小化的测试也成为按时将应用程序发布给用户群体的可接受的风险之一.另一

Sql server负载测试性能调整魔法棒

没有什么事情比这更糟了,采纳一个新的应用程序,而它的性能是如此的糟糕,导致业务在一片惊叫声中暂停.这并不是新出现的现象:这就是事实,我经常遇到这样的事实.我打赌你也曾经经历过.那么如何防止这些性能问题,有什么解决方案? 在这些应用程序"在惊叫声中暂停"的情况中,应用程序通常都已经在按照功能性分配的短暂的测试时间内进行过适当的测试了.但是充分吗?由于竞争和全球经济的原因,迅速应用于业务意味着只进行了最小化的测试.同样,最小化的测试也成为按时将应用程序发布给用户群体的可接受的风险之一.另一

visual studio-VS2012 ASP.NET 负载测试

问题描述 VS2012 ASP.NET 负载测试 Visual Studio 2012 ASP.NET 负载测试提示错误,如何下载.安装仿真驱动 解决方案 VS2012 ASP.NET 母版页的创建与使用VS2012 第一个ASP.NET hello word程序

ASP程序实现图片上传的原理分析及示例

程序|上传|示例   用ASP编写网站应用程序时间长了,难免会遇到各式各样的问题,其中关于如何上传文件到服务器恐怕是遇见最多的问题了,尤其是上传图片,比如你想要在自己的社区里面实现类似网易虚拟社区提供的"每日一星"的功能,就要提供给网友上传照片的功能.上传图片文件到服务器可以使用各种免费的文件上传组件,使用起来功能虽然很强大,但是由于很多情况下,我们只能使用免费的支持ASP的空间或者租用别人的虚拟空间,对于第一种情况,我们根本就没有可能来使用文件上传组件:至于第二种情况,我们也要付出不

技巧:最大限度优化你的Asp程序的性能

程序|技巧|性能|优化 ASP 能快速执行你的动态网页,但你还可以通过紧缩代码和数据库连接以使它们执行更快.这是一篇关于怎样精简代码和Asp 特征以获得最快执行速度的详细文章.对于一个急燥的用户来说,任何在按下用户按钮到结果出现在它们的屏幕之间的延迟可能意味着它们会转到浏览其它的站点?假如你的是商业站点,这有可能意味着失去潜在的销售. 我们没有任何办法控制用户的带宽,但我们的确能通过优化Asp 站点来获得最佳的性能.大部分潜在性能的提升是通过系统改变而不是紧缩代码,一个不合适的想法是,一旦遇到系

关于执行IIS与设计ASP程序的小技巧

iis|程序|技巧|设计|执行     1.平均分配前.后端的程序执行负载 ASP的目的并非要取代前端网页的Script程序,相反,前后端应该相互协调工作:可以由前端执行的工作,就不要增加后端的负担.别忘了,一个WEB服务器可能必须同时回应数十位.数百位.甚至数千位使用者的浏览,如果能将逻辑处理工作平均分布在前.后端,就可以让后端的WEB服务器以更快的时间回应前端的需求,或者是替更多的使用者服务. 举例来说,像检查表单数据正确性或完整性的工作,应该以前端的Script来完成,因为如此一来,既可以

最优化ASP程序性能

 Active Server Pages可以让动态页面很快地执行,但是,在代码中和数据库的连接上加入一些技巧,就能让程序更快地执行.这是一篇关于如何精制脚本程序以及ASP特征来达到最大速度的文章.任何在用户点击按钮到在屏幕上出现结果间延迟都会让用户茫然,对于一个商业站点,这就意味着潜在的用户损失. ASP脚本的尺寸 我们也许不能控制用户的带宽,但是通过优化ASP站点,我们的确能够使应用达到最佳性能.许多潜在的性能收获可以通过系统调整,而不是改变代码. 因素 首先,有哪些因素可能影响ASP程序的性

为你的应用准备最佳负载测试的 9 个技巧

你已经努力开发你的Web应用,也许这没有什么伟大的,但它是众多维持我们每日生活的方法中的一员,并且,或许它会改变世界. 无论怎样,你知道它需要做一些测试,而且不止一次.测试工作应该贯穿于软件开发过程的每一个阶段,乃至软件发布之后.认识到测试者的工作永远不会停止有点让人头疼,令人欣慰的是每一轮测试和矫正都会提高软件质量. 应用故障有两个原因:开发人员没有做负载测试,或者更糟糕的是,他们花了时间来做负载测试,但是没有做好充分的准备.没有充足的预备工作,负载测试不可能发现它应该发现的所有问题. 那么,