【读书笔记】《深入性能测试-LoadRunner性能测试》【第4
我们在 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 三个对象。
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 就会被启动并加入场景运行。
Add Vusers4.3.2 场景执行期间查看场景
我们在场景运行过程,可以查看 Vuser 执行的情况,主要包括:
Vuser 运行状态:
事务详细信息:
Scenario Status 场景状态含义表点击 Passed Transactions or Failed Transaction 的数字或后面的“显示快照”按钮,会弹出下面的对话框:
TPS:表示每秒的事务数
Passed:表示运行已通过的事务数
Failed:表示运行已失败的事务数
Stopped:表示运行已停止的事务数
查看“输出”窗口
点击 Errors 的数字或后面的“显示快照”按钮,会弹出下面的窗口,默认显示的是错误信息。
Output在实际执行过程中,经常会使用到这个功能,用于分析出错原因:
(1)判断是由于脚本编写引起的错误还是性能测试本身引起的错误;
(2)可以根据具体的Error Code去查找为什么会抛出这个错误;
4.4 场景监视
该部分并入第9章的学习中。