2. 测试
这个节点列举了用户创建的所有测试脚本,选择下面节点的一个测试脚本使得它得代码在右边得方框中显示,以便可以修改脚本。每个测试脚本都有多个属性,诸如控制测试脚本运行得持续时间,要知道一个测试的属性,你只需右键点击一个测试并选择属性项,就有一个如图3-4的属性页面出现:
图7-4 测试的属性界面
你可以通过右键点击Tests这个节点并选择下拉菜单里的新测试项来创建一个新的测试脚本,你也可以通过一个测试的下拉菜单来开始和结束一个测试,一个ACT客户只在任何给予的时间内只能运行一个测试。
3. 结果
这个节点将每个测试的每个阶段的情况显示在右边的方框中,点击【Results】节点的结果如图3-5所示。
101
图7-5 显示测试结果
右边的方框被分成3个区域,顶部部分的左边区域列举了先前运行过的测试,在每个测试下,按时间顺序列举的是每次运行后的结果。要看测试的结果,你只需简单地选择一个测试去运行,在报告的下拉列表中选择报告类型,并从列表中选择种类,所有报告的详细资料将被列举在右边的方框的中间区域里。
ACT提供不同种类的报告,有概述,图表和请求,在报告中你可以看到的信息有,每秒请求数(RPS,Requests per Second),字节持续的时间(TTLB,Time to Last Byte)),页面统计表的详细信息和执行计数器,这些信息都用XML文档保存为系统文件,参考ACT帮助文件以获得更多详细信息。
4. 用户
这个节点列举了测试可以访问的用户组,点击一个用户组,在右边的方框中显示在该组中的用户,可以在右边的方框中选择一个空白行来添加输入用户名和相应的密码,这些值也可以通过选择并按删除键来删除。其他ACT支持的有用功能是从文本文件输入用户名/密码,可以选择一个用户组,然后用手工方式添加用户。
ACT开始每个浏览器连接需要一个用户名和密码来登陆Web应用程序,如果Web应用程序正在访问Basic或NTLM认证的请求,这里用户或用户名就可以被创建。
提示: 为了容易管理不同测试的运行,你可以创建一个用户组再在用户组中创建必需的用户数。用户组中的用户数必须大于或等于SBCs的数目。作为选择,如果Web应用程序被设置为匿名登陆,你可以通过属性页面(用户表)让ACT自动产生用户。 102
5. 创建测试脚本
为了证明ACT是一个压力测试工具,我们创建了一些测试脚本例子,演示浏览IBuySpy网站。IBuySpy是一个在线存储应用程序,用来说明.NET平台和技术。本章及后面的章节使用的都是IbuySpy这个.NET应用程序,在http://www.ibuyspystore.com/上有这个应用程序的副本可以看,你也可以从http://www.ibuyspy.com/downloads.htm下载和安装这个应用程序。
为了更好管理测试脚本,我们建议你为每个测试创建一个新的工程。通过给每个工程独立的目录,在测试周期结束后你可以保存整个目录,知道所有测试脚本和数据已经被保存。选择文件菜单里的新工程可以创建一个工程,在新工程对话框中写入工程名,这里我们使用工程名为IBuySpy并把所在目录设置在C:\\Project\\下,使得C:\\Project\\目录下创建一个名字为IBuySpy得空文件夹,当你保存了工程时,将有一个名字为IBuySpy.act得文件和其他一些工程文件保存到这个文件夹中。ACT将为每次运行测试创建一个包含测试属性,工程属性,用户组和客户组的XML格式的报告文件。
6. 记录测试脚本
一个简单创建测试脚本的方法是通过记录用户预编动作,右键点击节点Tests并从下拉菜单中选择新测试项来弹出新测试向导从而开始记录,点击下一步然后从向导中选择记录新测试,继续点击下一步,然后点击【Start Recording】按钮,默认浏览器将运行而你将逐步执行下面查找用户的部分。
1.浏览http://
2.在Web页面顶部右边的搜索文本框中键入搜索内容 3.点击执行搜索
完成这一步之后,点击【Stop Recording】钮,所有在会话期间捕捉到的请求都被列举在列表框中,但是不能被修改。点击下一步并为这个脚本指定一个名称,再点击一次下一步,然后点击完成,这个最新的记录的测试将出现在左边方框的控制树上。
下面引用了一个演示搜索IBuySpy的脚本:
Search.vbs Option Explicit Dim fEnableDelays fEnableDelays = False
Sub SendRequest1()
Dim oConnection, oRequest, oResponse, oHeaders, strStatusCode If fEnableDelays = True then Test.Sleep (0)
Set oConnection = Test.CreateConnection(\ If (oConnection is Nothing) Then
Test.Trace \ Else
Set oRequest = Test.CreateRequest oRequest.Path = \ oRequest.Verb = \
oRequest.HTTPVersion = \
103
set oHeaders = oRequest.Headers oHeaders.RemoveAll
oHeaders.Add \ image/pjpeg, application/vnd.ms-excel,_
application/vnd.ms-powerpoint, application/msword, */*\ oHeaders.Add \
oHeaders.Add \ Windows NT 5.1)\
'oHeaders.Add \ oHeaders.Add \ oHeaders.Add \ 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 SendRequest2()
Dim oConnection, oRequest, oResponse, oHeaders, strStatusCode If fEnableDelays = True then Test.Sleep (130)
Set oConnection = Test.CreateConnection(\ If (oConnection is Nothing) Then
Test.Trace \ Else
Set oRequest = Test.CreateRequest oRequest.Path = \ oRequest.Verb = \
oRequest.HTTPVersion = \ set oHeaders = oRequest.Headers oHeaders.RemoveAll
oHeaders.Add \
oHeaders.Add \ oHeaders.Add \
oHeaders.Add \ Windows NT 5.1)\
'oHeaders.Add \ oHeaders.Add \ oHeaders.Add \ Set oResponse = oConnection.Send(oRequest)
104
If (oResponse is Nothing) Then
Test.Trace \ \ Else
strStatusCode = oResponse.ResultCode End If
oConnection.Close End If End Sub
Sub SendRequest3()
Dim oConnection, oRequest, oResponse, oHeaders, strStatusCode If fEnableDelays = True then Test.Sleep (20)
Set oConnection = Test.CreateConnection(\ If (oConnection is Nothing) Then
Test.Trace \ Else
Set oRequest = Test.CreateRequest
oRequest.Path = \ oRequest.Verb = \
oRequest.HTTPVersion = \ set oHeaders = oRequest.Headers oHeaders.RemoveAll
oHeaders.Add \
oHeaders.Add \ oHeaders.Add \
oHeaders.Add \ Windows NT 5.1)\
'oHeaders.Add \ oHeaders.Add \ oHeaders.Add \ 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 SendRequest17()
Dim oConnection, oRequest, oResponse, oHeaders, strStatusCode
105