“Cookies“的HTTP标题,ACT将再Web服务器作出准确的响应,当一个测试被记录时,它将被加上默认注释。脚本的下一行代码将引导值为(Automatic)的相同请求,再更多细节上ACT利用语法读取文件并修改cookies信息。
6. 标题
标题是自动加载的,但是它们也可以通过改变你的测试脚本来修改信息成为提交者,用户代理,主机,HTTP版本和其他标题允许的信息。
提示: 如果你创建一个只包含下面语句的测试脚本: “Test.SendRequest(“http://localhost/samples/browser.asp”)” ACT将添加一个默认标题\Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)\给用户代理。 例如,如果应用程序包含依赖区别于Web浏览器的用户代理,你可以修改一个请求的HTTP标题,从而动态改变通过一个混合的用户代理。
Dim sUserAgent, sArray(3), sSeed
sArray(1) = \Windows NT 5.1)\sArray(2) = \
sArray(3) = \Windows; U; Win98; en-US; m18) Gecko/20001108 Netscape6/6.0\Randomize()
sSeed = Int((3 * Rnd ) + 1) sUserAgent = sArray(mySeed)
7. 认证和加密
在测试执行中ACT可以支持应用程序使用很多通用的认证模式和加密方法,包括Windows NT LAN Manager (NTLM)认证,Windows 综合认证,Basic认证,匿名存取,分类认证和护照认证。然而,ACT记录器并不记录所有的认证信息认证技术,有专门用于整合和口令验证的工作区这些在它们的介绍部分有说明,下面的表格列出了ACT记录器和ACT执行时提供的认证方法:
表7-1 支持的认证方法
Authentication Method
Test Recorder Test Execution
YES YES YES YES YES
Anonymous Authentication YES Basic
Integrated Windows Passport Digest
YES NO NO YES
8. Windows 综合认证
ACT支持回放Windows综合认证,尽管不能记录包含有IIS配置的综合认证选项的应用程序,但一些Web应用程序可能仍然有IIS功能去接受匿名认证或Basic认证,对于这些引用程序,你可以用下面的工作区去记录ACT的测试脚本:
96
1.授权Basic认证和Windows综合认证,当其他用户自动使用Windows综合认证浏览Web应用程序时ACT能够记录起来。
2.记录ACT测试脚本,你将被要求给你的Web应用填写适当的领域\\用户名和密码。 3.改变Web应用的配置支持Windows综合认证。 4.用下面一行注释每个请求来修改ACT测试脚本:
oHeaders.Add \
5.用适当的领域\\用户名和密码建立你想要模拟的ACT用户。 6.执行ACT测试脚本。
9.Basic和分类认证
ACT能够记录和执行使用Basic和分类认证的应用程序创建的测试脚本,ACT能够自动包含下面的代码到你的脚本中来使用Basic和分类认证:
Basic and Digest Authentication.cs 'Basic Authentication Code
oHeaders.Add \'Digest Authentication Code
oHeaders.Add \ chr(34)+\ chr(34)+\ \ nc=00000001, cnonce=\ +chr(34)+\
10.匿名认证
匿名认证是Web应用程序最常见的认证方法,ACT完全自动的支持匿名认证去记录和执行测试脚本。
11.护照认证
Microsoft.Net Passport是一套基于Web的服务,它通过提供用户单一的标记和快速的购物能力使得使用因特网网上购物更加容易和快捷。单一得用户名或标记服务原来是计划提供一套集中的安全快捷的服务,使终端用户能够全部办理。由于Web应用程序使用SSL护照,当使用这种认证配置时ACT记录器不能记录。你必须手动建立ACT测试脚本的注册部分或者在测试阶段移除护照。还有应用程序可能有多种方式执行,所以测试脚本根据应用程序的不同而不同。当一个新的护照结构被办理,你可能因此需要修改你的测试脚本。在随书的CD里我们提供一个用ACT写的护照认证测试脚本的例子。
12.Secure Sockets Layer (SSL)
ACT完全支持执行使用了40位或128位SSL加密的测试脚本,尽管如此,还是不能支持记录一个为使用了SSL的Web应用程序写的测试脚本,因为ACT通过代理记录,数据到达代理时已经加密了。在记录阶段,工作区是不支持SSL的。修改测试脚本中Test.CreateConnection方法,用443端口代理80端口就能够使Web服务器支持SSL。下面的代码是Test.CreateConnection方法使用80端口和443端口的语句的例子。
97
Syntax oConnect = Test.CreateConnection(strServer, lPort, bUseSSL)
Without SSL oConnect = Test.CreateConnection(\With SSL
oConnect = Test.CreateConnection(\
如果还不可能使你的Web应用程序消除SSL,你可以用上面的语句手动把证书提交到加密页面地址。
13.ACT中使用SOAP协议
SOAP是用来在分布式体系结构中分享信息的基于XML的协议,要获取更多关于SOAP的信息可以访问http://msdn.microsoft.com/vstudio/。ACT本身不支持SQAP请求,但包含了封装的SOAP的工作区是可用的。下面的代码是这个方法的一个例子:
SOAP Workaround Code Sample
set con = Test.CreateConnection(YourServerName, 80, false) set req = Test.CreateRequest set headers = req.Headers req.Path = \req.Verb = \
req.HTTPVersion = \headers.RemoveAll
headers.Add \headers.Add \Action\
\headers.Add \headers.Add \
body = \ & chr(QUOTE) & \
body = body & \
\
xmlns:xsd=\ xmlns:soap=\ &chr(QUOTE)&\
body = body & \
body = body & \ &chr(QUOTE)&\
body = body & \body = body & \body = body & \body = body & \
body = body & \ chr(QUOTE)&\
body = body & \body = body & \act\
body = body & \act123\98
body = body & \body = body & \body = body & \req.Body = body
set res = con.Send(req)
14.分解ACT中的视图
视图是ASP.Net中通过在页面中使用隐藏窗口的原理用来维持状态的一部分,ACT本身并不支持ASP.NET视图,尽管如此,下面的例子是一个通过分解和手动编码视图的工作区:
Do Viewstate.cs 'Do VIEWSTATE parsing
If InStr(oResponse.Body, \
Pos1 = InStr(InStr(oResponse.Body, \ oResponse.Body, \
Pos2 = InStr(Pos1, oResponse.Body, \
res = Mid(oResponse.Body, Pos1 + 7, Pos2 - Pos1 - 8) viewst = res End If
' Manually encode viewstates:
' Replace all occurrences of \ viewst = Replace(viewst, \' Replace all occurrences of \ viewst = Replace(viewst, \
通过设置下面的属性能够消除手工编码视图(或者常规的邮件数据):
oRequest.EncodeBody = True
15.从疏忽的压力测试中保护你的网站
ACT支持机器人执行开发者使用自动代理(\的标准方法,网站管理者可以决定特定的用户代理以及Web应用程序达到的区域。为防止ACT发送请求到Web服务器,你能够在服务器根目录下创建或编辑一个名字为\的文件,并把下面的代码添加到文件中:
# Stress Agent is the user-agent string ACT sends when identifying itself
User-agent: Stress-Agent
# / excludes ACT from all parts of the Web site Disallow: /
当一个有robots.txt文件保护的网站在执行测试时,ACT可能出现在运行但不产生请求的状况。可是,状态提示框将提示\拒绝访问Web服务器。\
提示: 有检测这个执行协议的阶段能防止测试的运行,就像测试护照。所以,ACT允许在方案属性对话框中禁止检测(右键点击方案名并选择属性)。
99
7.3 运行ACT
本节开始熟悉ACT的压力测试工具,简要介绍如何在用户界面上创建一个测试脚本。本节提供了许多用于记录测试脚本的例子,包括使用ACT的准备和创建直接对SQL等级荷载的测试。最后,这部分还包含用ACT运行测试脚本的指导方针,还有其他目标就是讨论创建理想的脚本数,使用适当的客户数目,还有能产生的最理想压力总量(用SBC衡量)
1. 用户接口的概述
ACT的用户接口是很直观的,在打开ACT后,你将看到如图7-3的界面。
图7-3 ACT的开始界面
窗口被分成左右2部分,左边的方框是导航目录,右边显示的是详细资料。在左边的方框中,树目录显示一个名字为ACTSamples的根节点表示一个ACT工程。同时只能打开一个ACT工程,在默认情况下,工程时被存储在C:\\Documents and Settings\\
提示: 如果你使用共享部分去保存文档,ACT用户帐号必须能够读写该部分,否则,ACT将步允许运行测试,状态框将提示“ACT用户不能使用该目录”。 在下来的等级里,有3个节点在下面被叙述,分别是测试,结果和用户。
100