LR-Controller场景设计与场景监控笔记
笔记要点:
概念
场景设计
场景执行
场景监视
一、概念
1.新建场景中包括两种场景方法:手动场景(更灵活,更接近真实用户操作) 和面向目标场景。
二、场景设计
主要包括Schedule 、View Script、Generator参数设置。手动与面向目标场景的后两个参数是一致的。只有Schedule参数不同。
1.手动场景Schedule的配置
Schedule主要设置用户的行为方式 。包括按场景计划和按用户组计划。
(1)场景名称
场景名称要反映场景动作。
(2)按场景计划
1)Initialize设置,设置脚本运行前如何初始化每个Vuser。
方式:
同时初始化所有Vuser
每隔一段时间初始化一定数量的Vuser
在脚本运行前初始化所有Vuser(一般使用该方式 )
2)Start Vusers设置:设置Vuser加载的过程
Start Vuser:指总的Vuser数。
方式:
同时加载所有的Vuser
每隔一段时间加载一定数量的Vuser(一般使用该方式)
3)Duration设置,设置场景执行运行的时间。
方式:
一直运行,直到所有Vuser运行结束后,结束整个场景的执行。
设置场景持续运行时间,一般在进行压测时,只需测试15-30min即可,若要测试系统的稳定性和可靠性时,需持续运行24h或72h.
4)Stop Vusers设置,设置场景执行完成后Vuser如何释放的策略。当Duration为“按指定时间运行”时,才有该项。
Stop Vusers:指释放多少Vuser,默认为所有,也可自定义释放多少Vuser
方式 :
当场景运行结束后,同时释放所有Vuser
每隔一段时间就停止一定量的Vuser,一般Vuser加载和停止方式一致。
(3)按用户组计划(Schedule by Group)
该方式更灵活 ,可创建实际应用中脚本与脚本间的约束关系 。如一组用户执行后产生的数据记录为另一组用户的输入。使用场景组设置场景策略时,LR默认将每个脚本定义为一组。
按用户组计划中的设置有:Start Group\Start Vusers\Duration\Stop Vusers 后三项均与按场景计划一致 。
1)Start Group设置,
方式 :
场景运行时立即开始运行该脚本
场景执行一段时间后才开始运行该脚本。
在某个特定的用户组运行结束后才开始运行该脚本 ,即在某个脚本运行结束后才开始运行。
(4)场景开始时间(Scenario Start Time)
方式:
单击Start Scenario 后,场景立即开始
单击Start Scenario 后,推迟指定时间才开始运行
单击Start Scenario 后,在指定的时间开始运行。
(5)百分比模式
事先设定好Vuser总数,再按百分比对所有Vuser分配,该场景适合业务模型明确的性能测试。
2.面向目标场景Schedule配置
先定义好测试需要达到的目标,再根据目标来创建场景。
面向目标场景*包含5种目标类型。
eg .Hits per Second类型
(1)Scenario Settings选项
包含二个选项,见上图,
Run Time 中设置值后 表示当达到目标时,场景还会持续运行一段时间才结束运行。
目标未达到处理方法。
(2)Load Behavior选项
(3)目标类型
3.配置View Script
用户脚本加载后,需要修改时,右键脚本选择查看脚本 ,进行修改,修改后,需重新加载。
4.配置Load Generator负载发生器
Load Generator负责和其他负载机联系并强制负载机执行。一个Controller可通过Load Generator来控制多台负载机。
可添加一台负载机
添加后,右键连接来检查负载机与控制机的连接情况 。
使用负载机模拟多用户测试系统时, 注意事项 :
1)计算需要多少台负载机
当把每个Vuser按进程的方式运行时,在场景运行时,每添加一个Vuser都会增加一个进程 ,而每个进程都需要消耗内存和CPU资源 。
一般,每盒Vuser消耗资源与OS, 录制时选择的协议,LR版本有关。
若以进程方式运行,每个Vuser添加一个进程 ,测试时需要观察每个进程消耗资源的情况。
如:在Windows7下,每个Vuser消耗的内存为7000k左右,若运行600个Vuser,大概需要4101M的内存,若每台测试机的内存为1G ,则至少需要4台这样的测试机。
2)控制器如何控制负载机运行
原理:控制器通过代理程序控制负载机运行(代理程序的名称为:LR Agent process),所以首先需要在控制器和客户端启动代理程序 。
一般使用手动登录。
启动代理程序后, 当场景在初始化时, 控制器向负载机发送一个二进制文件,该文件中包含所有待运行的脚本信息,初始化后,负载机会产生Vuser来模拟测试。
三、场景执行
场景运行情况包括三个对象:场景 Vuser组 Vuser
1.场景控制
分为:场景组控制信息和数据图
如上图,左边为用户组的运行情况 ,右边为场景的控制操作, 包括开始场景 停止场景 复位场景 Vuser组,运行/停止 Vuser
停止场景有三种方式 :
Vuser组如下:
可对单个Vuser进行如下操作:
2.场景执行时查看场景
1)Vuser运行状态
2)事务详细信息
可点击通过事务数或失败事务数,的显示快照 ,查看事务对话框 。
3)查看“输出”窗口
场景运行时,Vuser和负载发生器会向Controller发送错误 、通知、警告、调试和批处理消息,这些消息可在"输出"窗口中查到。
分析输出信息时,注意事项 :
出错是性能测试原因还是脚本编写原因。
找到出错的日志信息。(错误信息是来自哪个负载机 哪个Vuser,确定后可找到场景运行时的日志信息,否则在运行大量Vuse时,若一低点个查看Vuser的日志信息,影响效率 。这种方法可直接找到日志文件 具体定位更详细信息)
四、场景监视
通过监控获取更多数据,帮助分析服务器性能瓶颈,需了解添加监控器和分析监视曲线图。
1.关联联机监控
整个监控过程由控制器执行并在监控过程中收集相关数据 ,在场景运行时控制收集的信息包括以下:
1)负载机执行时的数据
控制器需要分析一些相关的数据,如点击率,吞吐量,事务响应时间等,而每个Vuser运行的数据是负载机获得,所以控制器需要监控负载机。
原理:Vuser运行时,负载机收集运行时相关数据,再把数据发送给控制器,控制器把数据保存在DB中,最后由分析器来重新整理这些数据,画成曲线图。
2)服务器运行时的相关数据
包括 :Web 服务器 (MIcrosoft IIS、WebSphere、WebLogic、Tomcat、Apache)
DB服务器(Mysql、SQL\Oracle)
对于服务器的相关数据包括:一是服务器资源的使用情况 \‘二是每种服务器自身的一些特性(需使用其他工具)。
LR主要提供的监控器包括:运行图、事务图、Web资源图、系统资源图、网络图、防火墙图、Web服务器资源图、Web应用服务器图、DB服务器资源图、ERP/CRM服务器资源图、应用组件图、应用程序部署解决方案、中间件性能图、基础设施资源图。
------------以下将各种监控内容整理,标*的为主要关注内容。
2.监控器与度量
3.联机监控器
笔记总结:
Controller 主要包括两部分内容:场景设置(手动模式与目标模式)和场景监控(主要监控场景运行过程中服务器的表现情况)。
主要监控内容:
错误输出信息
点击率图
吞吐量图
事务响应时间
添加计数器