在前面的场景信息中介绍了如何观察虚拟用户运行的状态,通过日志文件可以追溯虚拟用户运行失败是由脚本中哪条语句引起的。但是仅仅依靠这些信息还是无法更好地分析性能瓶颈,因为性能测试最重要的是要找到服务器性能瓶颈出现的原因及调优方法,因此,需要通过监视器来获得更多的数据,帮助分析服务器性能瓶颈。所以要了解如何添加监视器和分析监视曲线图。
一、关于联机监控
通过联机监控器,LoadRunner可以查看场景执行期间生成的数据。使用LoadRunner联机图,可以指定场景执行期间Controller要监控的计算机,并可以查看监控器收集的数据。
在监控场景之前,必须安装和配置LoadRunner监控组件。LoadRunner监控的整个过程,如图4-47所示。
图4-47 场景监控过程
在监控场景之前,必须安装和配置LoadRunner监控组件。LoadRunner监控的整个过程,如图4-42所示。
整个监控过程由控制器来执行并在监控过程中收集相关的数据,在场景运行时控制收集的信息主要包括以下几个方面:
1) 负载机执行时的数据
因为在运行结束后,控制器需要分析一些相关的数据,如点击率、吞吐量、事务响应时间等,而每个虚拟用户运行的数据是负载机获得,所以控制器就必须去监控负载机,在监控过程中,负载机会先收集每个虚拟用户运行时的相关数据,再将这些数据发送到控制器,由控制器保存在一个数据库中,最后由分析器来重新整理这些数据,画成不同的曲线图。
2) 服务器运行时的相关数据
关于服务器的监控主要包括这几方面:Web服务器(如Microsoft ⅡS、WebSphere、WebLogic、 Tomcat、Apache等)、数据库服务器(如MySQL、SQL、oracle等)。对于服务器的相关数据数据收集包括两个方面一是服务器资源使用的情况;二是每种服务器其自身的一些特性;但使用LoadRunner性能测试时,LoadRunner更多的是监控每种服务器资源消耗的情况,对于其自身的一些特性需要使用其它的相关工具进行监控。在场景运行时,可以通过相关的监视图或计数器来获得服务器资源消耗的数据,最后由分析器重新整理并分析。
如果需要监控服务器重身的一些特性,往往需要借助于第三方监控工具来实现,如Web服务器,每种Web服务器都有其自带的监控工具,来监控其自身的一些特性(如每秒的连接数、点击率等),对于数据库服务器也一样需要借助第三方工具来监控,因为数据库服务器不仅仅需要监控其资源消耗情况还需要监控每个查询语句执行的响应时间,而这是LoadRunner无法实现的。
所以在整个性能测试过程中仅仅使用LoadRunner来监控还是不够的,还需要借助第三方工具来辅助监控。
LoadRunner主要提供的监视器包括这几类:Runtime Graphs(运行时视图)、Transcation Graphs(事务视图)、Web Resource Graphs(Web资源视图)、System Resource Graphs(系统资源视图)、Network Graphs(网络视图)、Firewalls(防火墙视图)、Web Server Resource Graphs(Web服务器资源视图)、Web Application Server Graphs(Web应用服务器视图)、Database Server Resource Graphs(数据库服务器资源视图)、ERP/CRM Server Resource Graphs(ERP/CRM服务器资源视图)、Application Component Graphs(应用组件视图)、Application Deployment Solutions(应用程序部署解决方案)、Middleware Performance Graphs(中间件性能视图)、Infrastructure Resource Graphs(基本资源视图)。
运行时视图主要包括:虚拟用户运行视图、用户自定义数据点视图、错误统计视图、出错的虚拟用户。
虚拟用户运行视图是指在整个场景过程中虚拟用户加载的过程,虚拟用户运行图与虚拟用户加载的图几乎一致,如图4-48。
图4-48 虚拟用户运行图
用户自定义视图是指通过LoadRunner自带函数lr_user_data_point绘制自己需要的视图,其实LoadRunner中所有视图都是有lr_user_data_point(画图函数来绘制的)。
lr_user_data_point函数格式lr_user_data_point( const char *sample_name, double value)
参数sample_name表示视图名称;
参数double value表示当前绘制视图点的值,数据类型为双精度类型。
int iDLSize=0;
web_url("WebTours",
"URL=http://localhost:1080/WebTours/",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTTP",
LAST);
//获得页面属性,属性为页面的大小
iDLSize = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);
lr_user_data_point("DownLoadSize", iDLSize);
事务视图主要包括事务响应时间和每秒处理的事务数(每秒处理的事务数又包括三种:结果为Passed的事务、失败和停止的事务和总的Passed的事务)。
其中事务响应时间是需要重点分析的视图,如图4-49所示,其它的三种视图分析的相对较少。
图4-49 事务响应时间图
需要注意的是,事务响应时间并不是平均事务响应时间,只是一个即时时间,并且统计出来的时间包含思考时间在内。
Web资源视图主要分析点击率视图和吞吐量视图。
点击率视图主要反应客户端虚拟用户每秒的点击数,如图4-50所示。
图4-50 点击率视图
点击率必须与虚拟用户数成正比,如果点击率与虚拟用户不成正比,说明客户端提交的请求并未发送到服务器端。
图4-51 吞吐量视图
吞吐量视图反应服务器的处理能力,它不但也虚拟用户成正比,同时也与点击率成正比,即吞吐量的视图趋势应该与点击率的视图趋势一致,如图4-51所示,如果点击率正确,而吞吐量趋势图与之不一致,说明服务器没有正确的处理客户用户提交的请求。
系统资源视图主要包括:Windows系统资、UNIX系统资源使用情况和SiteScope工具监控,这两种系统也是平常测试过程中最常见的两种系统,但在实际的测试过程中,很少使用LoadRunner来监控UNIX系统资源使用的情况,可能更多的是用于监控Windows系统资源的使用情况,针对于UNIX或LINUX系统通常会使用另外两种监控方式,一是使用命令监控;二是使用nmon监控工具进行监控,关于NUIX和LINUX系统的监控在后面的章节中会详细介绍。
那么准确的说在对Windows系统进行监控时,其也有两种方式,一是使用LoadRunner直接进行监控,这也是工作中最常用的方式;二是使用Windows操作自带的性能监控工具也可以监控。关于这两种方式在后面的章节中会详细介绍。
SiteScope是LoadRunner提供的一个开源的、无需代理的监控工具,在后面的章节中会详细介绍它的使用方法。
网络视图只包括一个视图网络延迟视图,这主要是观察测试过程中网络延迟的情况,一般情况下,在测试过程中一般不会使用LoadRunner来监控网络延迟的情况,网络工程师会使用专业的网络监控工具进行监控,不仅仅是监控其是否延迟还会监控每个端口接受的请求数。
Web服务器资源视图主要包括Apache和MS IIS两种,在实际测试过程中监控最多的是Apache服务器,主要需要监控的是每秒处理的字节数、Apache服务器资源使用的情况等,但在实际测试过程中可能很少使用LoadRunner来监控,Apache自带了一个监控的模块,只要启动这个模块就可以监控Apache自身的情况了,该部分内容在后面的章节中会详细的介绍。
“Web应用程序服务器资源”监控器:度量场景运行期间应用程序服务器MS Active Server Pages和WebLogic(SNMP)统计信息的情况。
数据库服务器资源视图主要监控一些常用数据库(DB2、Oracle和SQL Server)资源消耗的情况,但是关于数据库的监控包括两个方面的内容:一是数据库消耗系统资源的情况;二是每条查询语句执行的响应时间;对于LoadRunner来说,他只能监控第一种情况,如果想得到每条查询语句执行的时间,使用LoadRunner是做不到的,所以必须使用相应的数据库监控工具,在后面的章节中会详细介绍数据库监控的情况。
“流媒体”监控器:用来度量场景运行期间RealPlayer和Media Player客户端以及Windows Media服务器和RealPlayer音频/视频服务器的统计信息.。
“ERP/CRM服务器资源”监控器:用来度量场景执行期间SAP R/3系统、SAP Portal、Siebel Server Manager、Siebel Web 服务器和 PeopleSoft(Tuxedo)服务器的统计信息。
“应用程序组件”监控器:用来度量场景执行期间 Microsoft COM服务器的统计信息。
“应用程序部署解决方案”监控器:用来度量场景执行期间 Citrix MetaFrame XP 和 1.8 服务器的统计信息。
“中间件性能”监控器:度量场景执行期间 Tuxedo 和 IBM WebSphere MQ 服务器的统计信息。
“基础结构资源”监控器:用于度量场景执行期间网络客户端数据点的统计信息。
二、监控器与度量
在场景执行过程中,可以监视各服务器的运行情况,在监视服务器之前还要做一些工作来确保监视连接成功。
1)修改被监视主机访问模式:进入“管理工具”→“本地安全策略”→“安全选项”→“网络访问:本地账户的共享和安全模式”。将访问方式更改为“经典-本地用户以自己的身份验证”,如图4-52所示。默认情况下选择的访问方式为“仅来宾-本地用户以来宾身份验证”。如果设置为“来宾”模式访问,即以Guest来访问,而Guest账户没有监控的权限,这样在监控的过程中会一直提示无法连接服务器。还有一个需要注意的地方是,一定要设置密码,否则在Monitor Configuration中添加Measurements仍然会提示拒绝登录。
图4-52 被监控主机访问模式设置
2)保证被监视系统开启以下三个服务Remote Procedure Call(RPC)和Remote Registry Service、Remote Registry。其中Remote Procedure Call(RPC)Locator的登录选项中要输入当前主机账户和密码,然后重启该服务,其他服务设置不变。注意:有时只要开启两个服务Remote Procedure Call(RPC)和Remote Registry Service就可以,但是Windows XP必须开启Remote Registry这个服务。
3)确认安装Controller的机器可以连接到被监视的机器。如果监控失败,并且 LoadRunner
找不到指定的服务器,请确认指定的服务器是否可用。在Controller 或优化控制台计算机命令行中键入 ping
4)验证可以正常连接之后,如果仍有其他问题,可以参考表4-3的解决方法。
5)确认并打开共享文件。首先,在被监视的机器上右击“我的电脑”→“选择管理”→“共享文件夹”→“共享”,在这里要有C$这样一个共享文件夹。该文件可能存在,也可能不存在,没有的话,需要手动增加。然后,在安装LoadRunner的机器上使用“运行”,在命令行中输入“\\被监视机器IP\C$ ”,然后输入管理员账号和密码,如果能看到被监视机器的C盘了,就说明LoadRunner所在计算机具有被监视机器的管理员权限,可以使用LoadRunner去连接了。
表4-3 监视器连接问题解决方案
接下来要在Controller控制器中添加要监控的计算机资源。
选择菜单Monitors→Add Measurements或在视图中点击鼠标右键选择Add Measurements,如图4-53所示。
图4-53 添加度量
弹出系统资源对话框,如图4-54所示。
图4-54 系统资源
在该对话框点击Add按钮,可以添加要监控的计算机,如图4-55所示。在该对话框中输入要监控的计算机的机器名或IP地址和选择操作系统平台。
图4-55 添加机器信息
添加好要监控的计算机后,可以在“资源度量位于:<计算机>”中选择要监视的一些指标进行添加,如图4-56所示。
图4-56 添加监控服务器的资源度量指标
三、联机监视器
在场景运行期间,可以在监控视图中查看数据变化的情况。默认情况下显示运行Vuser、事务响应时间、每秒点击次数和Windows资源4个视图,如图4-57所示。
图4-57 默认视图
可以双击某个视图,将其最大化,再次双击又还原为平铺视图。
同时显示视图的个数也可以设置,点击鼠标右键选择View Graphs项,可以设置同时显示1个、2个、4个或8个视图,也可以选择自定义同时显示视图的个数,但自定义显示视图个数最多只能设置16个视图同时显示,如图4-58所示。
图4-58 显示视图数设置
关于监视器选择设置。在菜单Tool→Options中的Monitors选项卡中设置。使用该选项卡可以启用事务监控器,配置事务数据的行为,并设置联机监控器的数据采样速率、错误处理、调试和频率,如图4-59所示。
图4-59 监视器选项设置
事务数据:用来配置“事务”、“数据点”、“Web 资源”联机图的数据行为。要注意的一点是,更改设置后,一定要重新连接负载机后才能生效。
启用事务监视器:使联机的Vuser事务监控器在场景开始时监控事务。
频率:用来设置联机监控器为生成“事务”、“数据点”、“Web资源”联机图采集数据的频率,以秒为单位。默认值为5秒。对于小型场景,建议设置频率为1秒;对于大型场景,建议设置为3~5秒。频率越高,网络流量越低。在这个指定的时间段内,系统将计算数据的平均值,并仅向Controller发送一个值。
数据采样速率:采样速率是连续采样之间的时间间隔,以秒为单位。用来设置 LoadRunner 在场景中采集监控数据的速率。默认情况下,联机监控器采集数据的间隔为3秒。如果增大采样速率,则数据的监控频率就会降低。此设置将应用于所有的视图。
错误处理:用来控制LoadRunner发出错误消息的方式。可以选择发送至“输出”窗口或弹出错误消息框中的一种。
将错误发送至“输出”窗口:将执行场景过程中所有的错误发送至“输出”窗口。
弹出错误消息框:把错误发送至消息框。
调试:用来调试场景。
显示调试信息:把与调试有关的信息发送至输出日志。可以指定一个调试级别,调试级别可选择范围为1~9。其中调试级别仅与网络监控有关。
在场景执行过程中为了更好地监控视图可以对视图的属性进行设置。选择“监控器”→“联机图”→“配置”,或者,右击某个图并选择“配置”,将打开“Graph Configuration(图配置)”对话框,如图4-60所示。
Refresh rate(sec):输入刷新率。
Time:设置X轴显示时间的方式。
Graph Time(sec):设置X轴显示的时间长度。
Display Type:设置视图的类型,包括“线形图”和“条形图”两种。如果选择“条形图”,那么下面的Bar Values Type选项可用,可供选择的值有“平均值”、“最后值”、“最小值”或“最大值”。
Y-Axis Scale:设置Y轴的最大值和最小值,也可以勾选“自动”使用默认的Y轴比例查看图。
设置适用范围:设置当前的视图属性是只适用于当前选择的视图还是适用于所有的视图。
图4-60 设置监视器属性
本章节关于“如何利用LoadRunner进行场景监视”的内容就介绍完了,大家喜欢的话记得每天来这里和小编一起学习涨薪技能。(笔芯)
附:川石信息全国校区最新开班时间,课程资料获取13691729932(微信同号)。