定义场景
脚本准备完成后,可以根据场景用例设置场景。Controller控制器提供了手动和面向目标两种测试场景。
手动设计场景(Manual Scenario)最大的优点是能够更灵活地按照需求来设计场景模型,使场景能更好地接近用户的真实使用。一般情况下使用手动场景设计方法来设计场景。
面向目标场景(Goal Oriented Scenario)则是测试性能是否能达到预期的目标,在能力规划和能力验证的测试过程中经常使用。
本次介绍手动设计场景的下述几个步骤:
创建场景
设置schedule
设置集合点
多机联合产生负载
设置负载均衡
设置Windows资源监控器
Controller控制器可以从程序中打开,然后选择保存好的脚本;也可以从VuGen中直接连接到该脚本的控制场景。
实例从VuGen中启动Controller的步骤如下:
创建场景
1.单击VuGen菜单栏的tools=>create controller scenario。
2.在弹出窗口选择虚拟用户数、运行结果保存目录(按照事先约定选择目录,结果文件的命名最好包含用户数/加压方式/场景名)、负载产生的负载机所在地。
实例的结果文件可以命名为:ADDStore_Result_InstantandGradual_10,保存至Test_Scenario_Result目录下。
3.在Create Scenario窗口中点击OK,链接启动LoadRunner Controller。
默认显示用户组模式,可通过菜单Scenario=>Convert Scenario to the Percentage Mode切换为百分比模式。
设置Schedule
在Controller的Scenario Schedule中,可以设置场景的各项计划,如虚拟用户的加载方式、释放策略等。
1.设置场景的基本信息
Schedule Name:设置场景名称。
Schedule by:
scenario按场景计划(各个脚本同时执行)
Group按用户组计划(脚本按设置的先后顺序执行)
Run Mode:
real-world schedule 是真实场景模式,可以通过增加Action来增加多个用户。
basic schedule 是我们以前用的‘经典模式’,只能设置一次负载的上升和下降。
2.设置场景的各类参数
双击Global Schedule中的对应行,可以设置schedule的各类参数。
Initialize:
初始化是指运行脚本中的Vuser_init操作,为测试准备Vuser和Load Generator。
Start Vusers:
设置场景Vuser加载方式。
Duration:
设置场景持续运行的时间。
Stop Vusers:
设置场景执行完成后虚拟用户释放的策略。
Start Time:
设置场景启动时间。
根据前述Scenario Schedule的设置方法,可以将实例中10个用户登录的场景设计如下:
1)瞬时加压
Schedule Name:Instant_10
Schedule by:Scenario
Run Mode:basic schedule
Start Vuser:Simultaneously
2)逐步加压
Schedule Name:Gradual_10
Schedule by:Scenario
Run Mode:basic schedule
Start Vuser:2 Vusers every 00:00:30(HH:MM:SS)
设置集合点
LR在运行场景的时候,允许测试人员根据项目需要自己设定集合点的并发策略。单击Controller菜单栏的Scenario=>Rendezvous,可以查看场景中所有的集合点名称、所属脚本、当前状态和相关的虚拟用户列表信息等,根据系统需求,还可以针对集合点的执行进行设定。
- 1.集合点设置
单击Disable/Enable Rendezvous按钮可以选定集合点是否启用。
单击Disable/Enable VUser按钮可以设定一个用户是否参与到集合点中。
单击Policy按钮可以设定集合点执行策略。
- 2.集合点策略设置
第一项:当前所有用户数的X%到达集合点时,开始释放等待的用户并继续执行场景。
第二项:当前正在运行用户数的X%到达集合点时,开始释放等待的用户并继续执行场景。
第三项:当X个用户到达集合点时,开始释放等待的用户并继续执行场景。
Timeout betweenVusers:设定一个超时时间,当第一个用户到达集合点时,系统开始计时,如果在这个设定的时间内没有达到指定的用户数,系统就不再等待,释放用户让场景继续执行。 - 3.手动释放Vuser
在场景运行过程中,点击Status Information列表的Release按钮,可以手动释放等待中的虚拟用户。
多机联合产生负载
为了避免一台测试机器模拟的虚拟用户数过多,他本身性能的下降直接影响测试效果,LR允许使用多台机器运行场景来均衡测试机器的负荷。只要一台机器安装了Load Generator并启动了LoadRunner Agent Process进程,就可以被Controller统一调度来运行场景,Controller负载收集统一的测试信息和执行结果。
单击菜单ScenarioLoad Generator,可以查看到所有已经加载的Load Generator信息。
Name:Load Generator所在的机器名称。
Status:标识了Generator目前的状态。
Platform:显示了系统的平台名称。
单击Add按钮,可以添加新的Load Generator;单击Connect按钮,LR的Controller就会尝试去连接选中的Load Generator,如果连接成功就在Status字段中显示Ready,如果失败就会显示Failed。
设置负载均衡
这里的负载均衡是用来解决测试过程中,负载机分配不均的问题。方法为:先选择Scenario=>Convert Scenario to the Percentage Mode,将场景模式由用户组切换为百分比,然后在已经添加好的Load Generators机器列表中选择需要的机器。这样就可以保证负载机均匀地对服务器施压。
场景创建完成后,以有意义的名字命名场景并保存。如实例命名为AddStore_InstantandGradual_10,保存在Test_Scenario目录下。
设置Windows资源监控器
通过添加Windows资源监控器,可以监控负载对服务器的CPU、内存、磁盘等资源的影响。在监视服务器之前要做一些工作来确保监视连接成功。
被监视主机的访问模式改为:经典-本地用户以自己的身份验证;且必须设置密码。
被监视系统开启以下3个服务:Remote ProcedureCall(RPC)和Remote Procedure Call(RPC)Locator、Remote Registry。
确认安装Controller的机器可以连接到被监视的机器。
确认并打开共享文件C$。
上述工作的详细方法不再过多描述,如有疑问和其他问题,可参阅相关资料。接下来在Controller中添加被监控的计算机资源。
添加Windows资源监控器的步骤如下:
1.点击Controller界面下方的Run选项卡,打开Run视图。
2.选择菜单Monitors=>Add Measurements,或在Windows Resources图中点击鼠标右键选择Add Measurements,打开Windows Resources窗口。
3.点击Monitored Server Machines下的Add按钮,在Add Machine对话框中填写计算机名称或IP,并选择计算机平台,点击OK。
4.默认的Windows Resources度量将列出在Resource Measurement on文本框中,点击OK激活监控器。
运行场景
场景设计完成后,单击Controller界面下方的Run选项卡,可以进入场景的执行界面。这个界面用于控制场景的执行,包括启动停止执行场景,观察执行时是否出错及出错信息、执行时用户情况、相关性能数据。
单击StartScenario按钮,场景开始运行。一些即时的数据(比如用户数,等待数,成功事务数,失败事务数等)以及性能数据的折线图,会在Run的过程中显示。
执行完成后,执行结果以事先的命名默认保存在建立场景时设置的保存目录。如果涉及到调优,需要多次执行同一个场景,建议每次运行前先调整菜单的ResultsResults Settings,场景结果保存的名字建议包含重要调优参数值。调优参数比较多样,可以在具体的项目用附件约定。
测试期间,可以使用LoadRunner的联机监控器观察Web服务器在负载下的运行情况。特别是可以看到,负载的增加如何影响服务器对用户操作的响应时间(事务响应时间),以及如何引起错误的产生。