我们在 VuGen 里编辑并编译好脚本,就可以加载到 Controller 里进行运行场景设计,设计完,就可以执行场景了。两种方式可以启动 Controller:
“开始” -> “所有程序” -> “HP LoadRunner” -> “Applications” -> “Controller”;
VuGen -> Tools -> Create Controller Scenario;
4.1 场景类型介绍
4.1.1 手动测试场景:我们最常用的就是这种,更灵活,更容易接近用户真实的使用场景。其中又包括两种模式:用户组模式与百分比模式,在于计算虚拟用户的方式不同
4.1.2 面向目标测试场景:相当于一个闭环回馈关系。首先定义要达到的目标,接着 LoadRunner 会自动基于该目标创建场景,在运行过程中, LoadRunner 会不断地比较结果和目标,以决定下一步如何执行。
4.2 场景设计
手动和面向目标两种场景设计的区别主要在 Schedule 参数设置。该设置主要用来设置用户的行为方式,包括按场景计划和按用户组计划两种。
4.2.1 手动场景 Schedule 配置
1. 场景名称(Schedule Name);
2. 按场景计划(Schedule by Scenario)
(1)Initialize 设置。
设置脚本运行前如何初始化每个虚拟用户。
默认选项也就是最常用的选项,在脚本运行前初始化所有虚拟用户。
(2)Start Vuser 设置。
设置虚拟用户加载的过程。
默认设置也就是最常用的设置,每隔一定的时间加载一定数目的虚拟用户。
(3)Duration 设置。
设置场景执行的时间。
一般情况下,在进行压力测试时,只需要测试15~30 min即可,但如果需要测可靠性和稳定性时,则需要持续运行 24h或 3*24h。
(4)Stop Vusers 设置。
设置场景执行完后虚拟用户释放的策略,前提是上一步设置了执行时间。
一般我们跟加载用户一样去逐步释放。
3. 按用户组计划(Schedule by Group)
比按场景计划设计场景的设置项中多出了 Start Group 选项卡,以组为单位进行计划,每个组都要设置自己的 Start Vusers、Duration 和 Stop Vusers。这种方式理论上看更加灵活,能够创建更符合实际应用中脚本与脚本之间的约束关系。比如一组用户执行后产生的数据记录为另一组用户的输入。但实际应用中还未使用该模式,后续会深入了解实践。
4. 场景开始时间(Scenario Start Time)
Without delay:场景立即开始,没有延迟时间
With a delay of HH:MM:SS:延迟指定的时间后才开始运行
At HH:MM:SS on:在指定的时间开始运行
5. 百分比模式:
百分比模式是先设定好虚拟用户总数,然后按百分比的形式对所有的虚拟用户进行分配。一般在运行综合业务时常用,所以需要在设计阶段确定业务的百分比模型:
(1)分析历史数据。
(2)参考其他同类产品。
(3)试上线运行。
4.2.2 面向目标场景 Schedule 配置
该配置在我目前的实际应用中,还未被使用过,所以后续实践过了再来阐述。
4.2.3 配置 View Script
这里需要注意的是,如果对脚本修改了,需要在 Controller 中重新加载,才能确保场景执行的是修改后的脚本。
4.2.4 配置 Load Generator
Load Generator 称为负载发生器,负责分发 Controller 发出的执行命令给其他的负载机器,建立起联系并强制执行。所以我们在实际应用中,可以通过 Controller 机器同时控制多个负载机器去模拟多用户场景。
在 Name 里输入目标负载机的 IP 地址,点击 OK。然后在 Load Generators 窗口选中对应的负载机,点击 Connect 按钮,测试是否能连接成功。Status 为 Ready,表示连接成功。
在使用负载机模拟多用户测试时,需要注意几个问题:
(1)计算需要负载机的台数;
(2)在 Controller 和 Load Generator 机器上都要启动 LoadRunner Agent Process;
原理:Controller 通过 LoadRunner Agent Process 去控制负载机运行;
4.3 场景执行
4.3.1 场景控制
主要监控场景、Vuser 组和 Vuser 三个对象。
运行中,你可以点击 Vusers... 按钮打开 Vuser 窗口,针对 Vuser 做一些操作。比如添加、查看日志等。
(1)右键菜单里的 Show Vuser Log, 可以查看指定 Vuser 的运行日志,方便检查出错日志。这里其实有一个建议,就是在脚本目录里有个 \res\log 目录,里面的日志就是对应的 Vuser 运行日志,可以直接用 Notepad++ 或 UltraEdit 打开,较为方便查错。
(2)Add Vuser:我们再场景运行过程中,会经常遇到,事先设定的 Vuser 数不够,需要增加的情况,这时候可以在 Vusers 窗口里点击“Add Vuser(s)...”按钮打开下面的对话框,设置 Quantity to add 和 Select Script,点击 OK button 返回到 Vusers 窗口,默认你新增的 Vuser都是 Down Status,所以你可以在筛选菜单里选择 Down Status 查看,选中适当数量的 Vusers,再点击 Run button,这些 Vusers 就会被启动并加入场景运行。
4.3.2 场景执行期间查看场景
我们在场景运行过程,可以查看 Vuser 执行的情况,主要包括:
Vuser 运行状态:
事务详细信息:
点击 Passed Transactions or Failed Transaction 的数字或后面的“显示快照”按钮,会弹出下面的对话框:
TPS:表示每秒的事务数
Passed:表示运行已通过的事务数
Failed:表示运行已失败的事务数
Stopped:表示运行已停止的事务数
查看“输出”窗口
点击 Errors 的数字或后面的“显示快照”按钮,会弹出下面的窗口,默认显示的是错误信息。
在实际执行过程中,经常会使用到这个功能,用于分析出错原因:
(1)判断是由于脚本编写引起的错误还是性能测试本身引起的错误;
(2)可以根据具体的Error Code去查找为什么会抛出这个错误;
4.4 场景监视
该部分并入第9章的学习中。