'///////////////////////////////////////////////////////// ' Execute the ProductSearch stored procedure
oSQLConn.execute \ trim(sSearchStr) & \
'///////////////////////////////////////////////////////// Loop
'Close the text file oCsvFile.Close
Set oCsvFile = Nothing Set oFso = Nothing
'Close the database connection oSQLConn.Close
Set oSQLConn = Nothing
10.设置脚本播放的测试属性 在运行测试脚本前,有几个测试属性必须被设置为非默认配置。这些属性可以通过属性页面被设置:
(1) 测试加载等级
这个时通过给并发浏览器连接一个值来完成的,一个浏览器连接被看成一个虚拟用户访问应用程序,例如,如果你想要模拟10个到Web应用程序的并发连接,把这个值设为10,ACT将产生10个SBC,每个都将处理这个测试脚本。
(2) 测试时间
这里有2个选择,一个是可以设置任意值,一个是设置指定的重复次数数值,这个数值是所有连接的总和。如果并发浏览器连接被设置为10,而且重复次数设置为100,然后每个连接将执行这个脚本不超过这10个连接重复100次的总和。为了测试,我们特意把持续时间设置为一个允许有充分时间使加载热身达到稳定状态的数值,这个时间值由CPU利用时间或不同测试脚本例子每秒的请求数来决定。ACT允许将这些这些短暂的行为排除在报告外,让用户指定热身时间。
(3) 详细报告
ACT可以给每个页面请求概括出统计表,或者简单的总计所有请求的统计表。要获取更多报告的详细信息,检查框产生的测试结果设置位于高级设置对话框内,点击测试属性对话框上高级按钮来弹出高级设置窗口。
提示: 要减少报告的产生时间和长时间测试产生的“余额不足”的错误,我们推荐关掉这个产生大的请求数的测试设置。 (4) 用户
ACT可以自动产生用户,或者你可以指定一个预先确定了用户的用户组。因为许多应用需要输入用户和口令,可以先设置一个用户组,然后通过属性页面选择该用户组。在组中
111
定义的用户数目必须等于或大于并发浏览器连接的数目。脚本将重复使用同个用户直到测试脚本调用测试对象的GetNextUser方法。关于测试对象的方法的更多详细信息在ACT帮助文件中。
ACT可以通过自动产生用户以加快测试的执行。你可以在第一次创建用户组时调用这个部分,接下来,选择用户组并从动作菜单中选择产生用户,这样将弹出创建用户对话框,用来指定用户数,用户名和密码。最新创建的用户组必须和要使用这个用户组的测试相结合。 (5) 计数器
在执行监控过程中被捕获的相同计数器将在计数器框中列出,你可以给计数间隔指定一个值来设置取样时间。要添加计数器,点击添加按钮,然后从浏览执行计数器对话框中选择目标机器和想要的计数器,被添加的计数器将出现在测试属性页面的执行计数器列表框中。
11.修正脚本避免记录和重放
Web应用程序有基于用户输入的动态内容,这写应用程序经常具有一个像SQL一样的数据库管理系统。由于这个原因,简单的记录和回放一个测试脚本经常不能正确的模拟真是世界的事务。举例说明,在记录阶段记录一个设定的情节将只能捕获一个输入的查找字符串,回放这个脚本来模拟重复事件将不能创建现实的流量,因为查找疑问和查找结果可能被隐藏了,在这种情况下,测试结果将被扭曲,而且测试将不能代表实际用户用唯一的查找字符串的交互作用。
记录在测试脚本产物中是一个快速和简便的起点,而且可以被用来捕获大部分Web请求,类似GET和POST方法。一旦一个被记录的测试脚本被创建,你可能必须修改代码来适应动态改变的用户数据。例如,一个Web应用程序可能需要处理一个在线书店的用户帐号注册。录制这样的测试脚本时可能会同时将像用户名这样的数据记录在内,直到用户帐号将已被创建时才会回放这个测试脚本。这个测试脚本必须给用户帐号使用不同的值,所以以前创建的相同帐号将不能尝试更多次。一个步骤是修改测试脚本来从文本文件读取用户帐号数据并把这个数据作为Web请求的一部分。你将创建足够的数据,所以测试脚本可以运行想要的时间或者完成所想的重复次数。
提示: 为了避免创建大量可以用来连续运行测试的数据,在测试运行前你需要备份你的应用程序的SQL数据库,在后续的测试运行前记录你的数据库先前的状态。这个方法将允许你使用相同的数据文件来重复测试。 可能在其中一步需要产生数据来个后面的步骤使用,例如全局唯一标识符涉及到一个地址。在这种情况下,需要修改测试脚本来解析响应的请求数据,这些数据将赋值给变量以在后续的步骤中使用。幸运的是ACT揭露了一个这种捕获Web响应客户请求的响应对象,一个使用了响应对象的例子,可以在“分析ACT状态“部分看到。
12.调试ACT测试脚本
ACT通过提供一个能捕获在回放过程中产生的消息的日志文件来修改和调试测试脚本,这个ACT日志文件被默认命名为ACTTrace.log,它位于Program Files\\Microsoft ACT。在工程属性页面,你可以修改这个文件的路径,指定这个文件的最大尺寸,以及是否完全记录日志。测试对象也允许被受约束的追踪。追踪等级可以通过TraceLevel属性来设置,用户定义消息可以被通过追踪方法输出。你也可以使用追踪日志文件来发现在测试执行中的运行时错误。下面的示例代码显示了设置追踪等级来记录所有日志消息并把定制消息写入追踪日
112
志文件:
Test.TraceLevel = -1
' The tracelevel property can be set to one of the following values ' -1: log all information ' 0: disable logging
' 1: log internal program information only
' 2: log external information only, from the Test.Trace method. ' This is the default setting.
Test.Trace(\
提示: 除非设置了TraceLevel,否则将没有数据被写入ACTTrace.log,除非你明确调用了Test.Trace。 长期的测试可以最少运行8小时或者可以持续长达一周,可是,准确的时间长度真正依赖于被测试的应用程序,这种测试对于确定应用程序的稳定性检查内存泄漏和监控应用程序在同个负载下长时间的吞吐量很有用。
13.创造一个可控的环境
除了确定足够的浏览器连接数目和最佳的客户机器数目,我们建议你在一个可控的环境中进行测试,可控的意味着在那里应该有机器被指定为客户和其他主应用程序的服务器,这些机器应该尽可能在硬件规格上接近你们产品的环境。所有系统应该被连接到一个有足够带宽个人网络。如果执行过程不能被重复,那么测试结果就没什么价值了。一个可控环境可以通过排除没有测试关系的网络噪音来保证测试的可靠性。
缺少一个可控环境,通过引用依赖于外部查找的DNS的服务器,可能会扭曲测试的结果。依赖于被操作的测试的时间,基于网络连接的网络延迟可以被改变,这些都能影星应用程序的吞吐量。如果这种依赖于外部服务器的情况存在,测试进度可以被一个或多个这种服务器问题影响,延缓了全部测试结果。在可控的环境下,你也可以确定依靠客户在服务器上产生的负载是独立的。
本章小结
ACT是一个强大的工具。它以后在版本的发展中还将用到新的技术。越早学会这个工具,你就能越快好好使用它。我们希望这一章提供了一个使用ACT的开头。
113