LR-Controller场景设计与场景监控笔记
笔记要点:
概念
场景设计
场景执行
场景监视
一、概念
1.新建场景中包括两种场景方法:手动场景(更灵活,更接近真实用户操作) 和面向目标场景。
二、场景设计
主要包括Schedule 、ViewScript、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.配置ViewScript
用户脚本加载后,需要修改时,右键脚本选择查看脚本 ,进行修改,修改后,需重新加载。
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 主要包括两部分内容:场景设置(手动模式与目标模式)和场景监控(主要监控场景运行过程中服务器的表现情况)。
主要监控内容:
错误输出信息
点击率图
吞吐量图
事务响应时间
添加计数器