1. 使用SilkPerformer工具测试的一般步骤
使用SilkPerformer进行负载测试的流程如下:
1项目设置(对应SilkPerformer工作流向导上的“Outline Project”)
2创建测试脚本(对应SilkPerformer工作流向导上的“Model Script”)
3测试脚本的试运行(对应SilkPerformer工作流向导上的“Try Script”)
4定制测试(对应SilkPerformer工作流向导上的“Customize Test”)
5建立测试基线(对应SilkPerformer工作流向导上的“Find Baseline”)
6确认测试基线(对应SilkPerformer工作流向导上的“Confirm Baseline”)
7确定负载测试压力模式(对应SilkPerformer工作流向导上的“Adjust Workload”)
8执行负载测试(对应SilkPerformer工作流向导上的“Run Test”)
9测试结果分析(对应SilkPerformer工作流向导上的“Explore Results”)
也可以简化工作流程,省略掉第5步和第6步。下面就按照上述的步骤来简单说明使用SilkPerformer的测试流程。
1.1项目设置
SilkPerformer负载测试的第一步是创建一个项目,并设置项目的基本信息,包括项目名,项目的简要描述,待测系统的应用类型等。
SilkPerformer会自动把完成负载测试所需的所有资源,包括负载压力,一个或多个profiles和测试脚本,脚本访问的所有数据文件,指定数量的代理计算机和服务器的监控信息全部保存在一个项目目录下。这样便于高效地找到相关条目,如脚本及测试结果。
1.2创建测试脚本
SilkPerformer负载测试的第二步是创建测试脚本。脚本描述的是在测试期间运行的虚拟用户的活动。脚本是用SilkPerformer的专有脚本语言Benchmark描述语言(
BDL )写的。
脚本可以通过两种方式创建。最简单的方式就是使用SilkPerformer录制方式来创建脚本。另外,你可以手工创建测试脚本。
1.2.1录制脚本
创建测试脚本的标准且最容易的方法就是通过脚本记录器来创建。使用脚本记录器,用户只需对客户端应用程序执行操作就可以创建测试脚本。
点击SilkPerformer工作流向导上的“Model Script”按钮,选择或配置application profile,对于Web应用,输入要测试的Web站点地址。
完成上述设置后,点击“OK”后,SilkPerformer就会启动脚本记录器就开始录制脚本。
SilkPerformer记录器可以录制HTTP、FTP、POP3、SMTP、LDAP协议的Web、FTP、电邮系统及目录服务器应用系统。还可以捕获OCI、ODBC、TUXEDO、COM、WinSock、Oracle
Forms、.NET、ADO、WAP的API函数调用。
在录制过程中,可以插入事务(transactions)和计时器(timers)。
1.2.2手工创建测试脚本
手工创建测试脚本需要熟悉SilkPerformer的BDL语言,它是类似于Pascal的一种高级语言。手工创建测试脚本能够建立用户要求的原型,并且定义一个负载测试脚本所需的典型组成部分,包括模块,函数,压力定义,事务,Web表格等。
1.3测试脚本的试运行
SilkPerformer负载测试的第三步是对创建好的测试脚本进行试运行。试运行的目的是调试测试脚本,保证其没有错误,并能精确地回放客户端应用和服务器之间的相互通信。
点击SilkPerformer工作流向导上的“Try Script”按钮,确定profile和脚本文件后,点击“Run”按钮,SilkPerformer会启动“Truelog
Explorer”工具对脚本进行回放。
TrueLog Explorer可以帮助进行测试分析、发现回放错误、定制用户数据、添加检查点。
1.4定制测试
SilkPerformer负载测试的第四步是定制测试。点击SilkPerformer工作流向导上的“Customize Test”按钮,可以设置网络速度、浏览器类型等客户端模拟的运行环境,可以参数化数据、编辑测试脚本等脚本定制以及可以修改用户组和设置系统配置。
1.5建立测试基线
SilkPerformer负载测试的第五步是弄清楚基线性能,即被测应用的基本的、理想的性能。现在定制好的测试是运行在每种用户类型都是一个用户数的情况下,这种无压力的性能结果可以帮助计算并发用户数和设置页面、事务响应时间的阀值。
确定测试基线的一个次要原因是作为通过前面步骤建立起来的定制测试的一种试运行。目的是保证定制没有在脚本引入新错误,脚本能精确、充分地反映客户端应用和服务器之间的通信。
1.6确认测试基线
SilkPerformer负载测试的第六步是确认建立的测试基线,真实反映测试下应用的性能。可通过基线报告中的测试检查结果来进行确认。如果结果令人满意,基线就可以被接受,其将作为计算并发虚拟用户数和设置响应时间阀值的基础。基线结果将在后面与负载测试结果比较时使用。
1.7确定负载测试压力模式
在负载测试之前,必须选择负载测试的压力模式。可以在Increasing,Steady,Dynamic,All Day,Queuing,Verification六个不同的压力模式之间选择。
不同的压力测试偏重不同的测试目的,下面分别说明含义和适用条件:
1 Increasing压力模式:
定义:在测试初期,只有一部分虚拟用户参与测试,逐步增加到所有用户参与测试。
适用条件:如果客户希望发现在多少压力下系统崩溃,或响应时间超出可接受值,或错误超出阀值。
2 Steady state压力模式:
定义:固定数目的虚拟用户参与到整个测试过程。每个虚拟用户执行脚本中定义的事务,结束后继续开始,事务间没有延迟,直到simulation
time已经到达。
适用条件:客户希望知道被测系统在指定负载下的行为
3 Dynamic压力模式:
可以在测试过程中手工改变虚拟用户的数目。在预设的最大虚拟用户下,用户数可以随时增减。没有simulation time,手工结束测试。
适用条件:客户希望实验不同的负载水平,并且方便的控制。
4 All day压力模式:
最灵活的方式。客户可以在测试的任何间隔时间指定不同的虚拟用户数目,每个用户类型有不同的负载分布。因此可以按周或天指定复杂的测试场景,可以在测试中调整尚未开始的测试间隔的负载水平。
适用条件:客户希望对复杂的长时间运行的测试场景以最实际的方式建模。
5 Queuing压力模式:
事务按照指定的到达率调度。从simulation time和脚本中事务数目计算得到的平均间隔为基础,得到随机的到达率。当所有的虚拟用户完成了指定的任务时测试结束。
适用条件:客户希望模拟具有队列模型的并发请求,例如servlet引擎或事务服务器,从Web Server而非最终用户得到请求,可以用这种模型测试;这种模拟一般不使用在End-to-End测试
6 Verification压力模式:
在和SilkPerformer的扩展认证功能组合时特别有用。这种组合可以用来进行web应用的回归测试。运行时是在一个指定代理机器的一个指定用户类型运行一个单用户。
适用条件:客户希望自动认证web应用,和希望从命令行接口开始认证测试。
1.8执行负载测试
SilkPerformer负载测试的第八步就是运行负载测试。通过多个虚拟用户运行测试脚本来测试目标服务器。当负载测试运行时,包括代理计算机、虚拟用户以及用户交易的实时信息全面展示给测试人员。此外,可以设置应用服务器、数据库服务器的一些监控信息,目标服务器的实时监控可以以图形形式展示。
1.9测试结果分析
SilkPerformer负载测试的第九步,也就是最后一步,就是显示、分析测试结果,评估被测服务器的性能。可以从客户角度查看和分析响应时间、虚拟用户日志,从服务器角度查看和分析吞吐量数据、服务器性能指标数据。
SilkPerformer可以提供六种测试结果报告:Performance Explore、TrueLog Explore、Baseline
Report、Virtual User Report Files、Virtual User Output Files和Results
Repository。
Performance Explore可以在多种表格中分析选定的计时器及吞吐量数据。用户可以自定义这些表格及图表,并根据需要定义要获取的测试数据。
TrueLog Explore从虚拟用户的角度对前端做了全面的可视化分析。TrueLog On Error提供的信息能够让用户以可视化方式看到导致发生错误的点击路径。
|