If fEnableDelays = True then Test.Sleep (6910)
Set oConnection = Test.CreateConnection(\ If (oConnection is Nothing) Then
Test.Trace \ Else
Set oRequest = Test.CreateRequest
oRequest.Path = \ oRequest.Verb = \
oRequest.HTTPVersion = \ oRequest.EncodeBody = False set oHeaders = oRequest.Headers oHeaders.RemoveAll
oHeaders.Add \ image/jpeg, image/pjpeg, application/vnd.ms-excel,_ application/vnd.ms-powerpoint, application/msword, */*\
oHeaders.Add \ oHeaders.Add \
oHeaders.Add \ oHeaders.Add \
\Windows NT 5.1)\ 'oHeaders.Add \ oHeaders.Add \ oHeaders.Add \ oHeaders.Add \
oHeaders.Add \
oRequest.Body = \ Set oResponse = oConnection.Send(oRequest) If (oResponse is Nothing) Then
Test.Trace \ \ Else
strStatusCode = oResponse.ResultCode End If
oConnection.Close End If End Sub
Sub Main()
call SendRequest1() call SendRequest2() call SendRequest3()
call SendRequest17()
106
End Sub Main
7. 分析已记录的测试脚本
你能看到每个请求都被装到一个标记为SendRequest#()的子程序,其中#是一个有序的队列,所有这些子程序的调用都被装入一个Main()的子程序。测试脚本的开始点是在其顶部变量被声明和定义的地方,在这里,执行跳到最后一行调用Main()的地方,在Main()程序里,每个请求都被调用直到脚本结束。后面的请求重复上面所描叙的步骤。
这些代码利用ACT对象更容易的连接到一个Web服务器并发送请求,这些对象都是有大家知道的测试对象模式,在这些对象模式的根部的是测试对象。这个详细的测试脚本使用测试,标头,和请求对象。ACT也支持能用来运行测试程序的应用模式。关于这2中对象模式的详细信息可以在ACT的帮助文件中找到。
我们已记录的测试脚本说明了如何发送GET(SendRequest1子程序和POST(SendRequest17子程序),而且你也知道如何指定请求标头。例如,要在脚本播放时自动获得ACT的cookies句柄,你可以把下面的代码插入添加到先前已记录的测试脚本中:
oHeaders.Add \
要像POST请求的情形一样发送请求的内容,ACT将使用下面一行插入到以记录的测试脚本中的代码自动确定内容的长度:
oHeaders.Add \
通过检查查找用的测试脚本和ACTSamples工程包含的测试脚本,作为Visual Studio .Net的一部分,你能熟悉你可以有效用来创建和修改测试对象的模式。
8. 手动创建测试脚本
新测试向导的第二步允许创建一个空的测试,向导能预先产生下面所示的一行代码:
Test.SendRequest(\
上面一行中的执行任务可以被修改为连接IBuySpy应用程序的默认页面,下面举例:
Test.SendRequest(\
IBuySp应用程序默认页面的左边包含每种产品的链接,把鼠标移到产品链接的上面将在状态栏显示URL。通过添加更多的行代码到测试脚本中,和一个用户访问默认页面一样,可以创建一个模拟浏览产品种类的测试脚本。可以添加其他逻辑用来在测试脚本间随机选择链接,下面就是一个这种测试脚本的例子。
Browse.vbs Option Explicit
'///////////////////////////////////////////////////////// ' Description: Browse different products in random order. ' Summary:
' Below is a sample ACT test script that simulates ' browsing through different product categories in ' random order.
'/////////////////////////////////////////////////////////
Dim i, sParams, sServerName, oUser
107
'///////////////////////////////////////////////////////// ' TODO: -Enable Integrated security only, via the Security ' -tab in IIS
' -Replace these sample values with your site values ' -Set the username (domain\%username\sServerName = \
'Get a reference to the current ACT generated user Set oUser = Test.GetCurrentUser
oUser.Name = sServerName & \oUser.Password = \
'/////////////////////////////////////////////////////////
'Generate a new seed for random numbers Randomize()
'Generate a random number between 0 and 6 i = Cint(7 * Rnd())
'Output the random number to the trace file Test.Trace \
Select Case i Case 0
sParams = \ Case 1
sParams = \ Case 2
sParams = \ Case 3
sParams = \ Case 4
sParams = \ Case 5
sParams = \ Case 6
108
sParams = \
End Select
'Request the default page
Test.SendRequest(\
'Request a product category
Test.SendRequest(\ \
'This Request has been added to mark the end of a user scenario Test.SendRequest(\ \
这个测试脚本是用来自动产生用户的,把Web应用程序设置成需要综合安全模式。为了允许测试脚本成功的登陆,将获得ACT产生的一个涉及用户的对象,然后把一个用户名和密码列入用户对象属性里。你将创建一个在运行ACT测试脚本时优先的Web服务器本地帐号。
提示: 测试脚本的最后一个请求说明了如何在IIS日志(W3SVC格式)里添加标记。我们在例子里选择“test=count”,因为它在Web应用程序的逻辑里没有说明,你可以使用这个来计算测试运行后已完成设定情节的用户数,这种技术的另一个有用场合就是用来确定在有不同描绘事务的参数时Web应用程序的吞吐量 9. 创建测试SQL等级的脚本
ACT也可以用来处理SQL调用ActiveX Data Objects (ADOs),ACT支持多线程从而模拟多个并发连接到数据库的功能是很有用的,另一个使用这种方法的原因是如果你在Web和数据还没有准备完整时有好的发展周期。
提示: 你必须确保SQL服务器用户选择权,也就是事务独立等级,确保测试脚本创建的SQL连接和这些应用所创建的连接。 通过一个空的测试脚本为开始点,你可以连接到一个SQL服务器,执行存储过程或其
它动态SQL语句。例如,查询功能可以调用下面的存储过程:
ProductSearch @Search = N'search string'
下面的测试脚本将说明使用脚本库和ADO连接到SQL服务器和直接执行由IBuySpy查找功能组成的数据库,这个脚本也将显示如何找回从外部文件输入的数据。
Search_SQL.vbs Option Explicit
109
'///////////////////////////////////////////////////////// ' Description: Directly Stress SQL Tier via ADO calls ' Summary:
' Below is a sample ACT test script that be used to ' make SQL calls via ADO. This script passes ' parameters from a text file to execute a search ' stored procedure.
'/////////////////////////////////////////////////////////
Dim oFso, oCsvFile, oSQLConn, sConnStr, sSearchStr, sServerName Dim sUserName, sPassword, sPath
'///////////////////////////////////////////////////////// ' TODO: - Set the Server Name
' - Create a SQL server account with dbo privileges ' to the Store database
' - Verify path to the input file search.txt sServerName = \sUserName = \sPassword = \
sPath = \ACT_Project\\search.txt\
'/////////////////////////////////////////////////////////
'Create an ADO Connection object
Set oSQLConn = CreateObject(\
sConnStr = \ ;Database=Store;uid=\oSQLConn.Open sConnStr
'///////////////////////////////////////////////////////// ' Open a text file containing search sConnStrings Set oFso = CreateObject(\Set oCsvFile = oFso.OpenTextFile(sPath ,1)
'/////////////////////////////////////////////////////////
'Repeat until end of file is reached Do While oCsvFile.AtEndOfStream <> True
'Read a sSearchString from the text file sSearchStr = oCsvFile.ReadLine
'Output the search sConnString to the ACT log file Test.Trace sSearchStr
110