LR & SiteScope & 本地监控---培训总结


********LR学习培训*********************************************************
***************************************************************************
1.录制:Resording ->http/html level
Html-based script :同一地址下集合多个数据或文档信息
 web_url("survey.jsp",
  "URL=http://108.88.3.247:8806/service/survey.jsp?catid=221|239",
  "TargetFrame=",
  "Resource=0",
  "RecContentType=text/html",
  "Referer=",
  "Snapshot=t5.inf",
  "Mode=HTML",
  EXTRARES,
  "Url=../images/bg_01.jpg", "Referer=http://108.88.3.247:8806/service/survey.jsp?catid=221|239", ENDITEM,
  "Url=../images/main_bg_01.jpg", "Referer=http://108.88.3.247:8806/service/survey.jsp?catid=221|239", ENDITEM,
  "Url=../images/left_search_input.jpg", "Referer=http://108.88.3.247:8806/service/survey.jsp?catid=221|239", ENDITEM,
  LAST);
Url-based script :只录制单一数据或文档信息
 web_url("base.css_7",
  "URL=http://108.88.3.247:8806/styles/base.css",
  "Resource=1",
  "Referer=http://108.88.3.247:8806/flash/menu.swf",
  LAST);

2.录制完成的脚本,必须备份好一份原始数据


3.思考时间与事务处理:在优化脚本过程中,把事务中的思考时间全部删除掉,并且在事务开始之前,添加一个思考时间来代替事务中被删除的思考时间

4.文本检查点:大多数在录制脚本过程,一同设置检查点(这样比较方便,也同时不会把检查点的位址放错地方);当然检查点也可以是后期添加,但要对脚本需要设置检查点的位置要相当清楚

5.运行设置:
大容量测试:设置Global Schedule->Duration
压力测试:预测压力测试的最大值,才可以进行压力测试
负载测试:累加客户数量,进行负载测试

6.参数化设置、关联

int web_reg_save_param(const char *ParamName, <list of Attributes>, LAST);

参数说明:

常用如下:

•ParamName: 存放得到的动态内容的参数名称
◦LB( Left Boundary ) : 返回信息的左边界字串。该属性必须有,并且区分大小写。
◦RB( Right Boundary ): 返回信息的右边界字串。该属性必须有,并且区分大小写。

不常用如下: 

•list of Attributes: 其它属性,包括:Notfound, LB, RB, RelFrameID, Search, ORD, SaveOffset, Convert, SaveLen。属性值不分大小写
◦Notfound: 当在返回信息中找不到要找的内容时应该怎么处理
◦Notfound=error: 当在返回信息中找不到要找的内容时,发出一个错误讯息。这是缺省值。
◦Notfound=warning: 当在返回信息中找不到要找的内容时,只发出警告,脚本也会继续执行下去不会中断。
◦RelFrameID: 相对于URL而言,欲查找的网页的Frame。此属性质可以是All或是数字,该属性可有可无。
◦Search : 返回信息的查找范围。可以是Headers,Body,Noresource,All(缺省)。该属性质可有可无。
◦ORD : 说明第几次出现的左边界子串的匹配项才是需要的内容。该属性可有可无,缺省值是1。如为All,则将所有找到的内容储存起来。
◦SaveOffset : 当找到匹配项后,从第几个字元开始存储到参数中。该属性不能为负数,缺省值为0。
◦SaveLen :当找到匹配项后,偏移量之后的几个字元存储到参数中。缺省值是-1,表示一直到结尾的整个字串都存入参数。
◦Convert : 可取的值有以下两种:
HTML_TO_URL : 将 HTML-encoded 资料转成 URL-encoded 资料格式

HTML_TO_TEXT : 将 HTML-encoded 资料转成纯文字资料格式

 
7.使用编写语言方式实现:Run Logic
//概率30%
Action()
{
int rowNum;
rowNum=rand()%100+1;
if(rowNum<=30)
Vuser_init();
Return 0;
}

8.参数化-Sequential
1)Sequential+Each iteration按迭代次数顺序读取参数化列表数据
2)Sequential+Each occurrence按参数化列表的数据,每个参化都会对应参数化列表唯一的一个数据(参数化值只读取一次)
3)Sequential+Once按迭代或循环都只会读取参数化的一个值

9.参数化-Unique取值
1)Abort Vuser当取数超过参数化列表,脚本停止
2)Continue in a cyclic manner当取数超过参数化,会循环方式读取参数化列表
3)Continue with last value当取数超过数化,会以参数化列表最后一个值来运行脚本

****备注:为了保证参数化使用Unique取值方式,必需以下公式成立:
Param参数记录条数>=迭代次数*Vuser数目

10.参数化-Same line as(中文:按名称)
设置参数化在参数化列表中的选项列;简单就是说,同一个参数化列表,设置多个参数化,并且单独分配给参数项

11.函数
web_add_cookie :vuser脚本添加一个cookie信息
web_link :摸拟用户单击一个超链接的操作   
web_url :模拟用户请求
web_submit_form :自动检测在当前页面上是否存在form,然后将后面Itemdata数据进行传送
web_submit_data :无须前面的页面支持,直接发送给对应页面相关数据


12.IE需要去掉第三方浏览器扩展   ;不去掉的话,会造成录制时自动关闭IE浏览器


***************************
**************************************************************************
实际应用:
1.替换原有脚本的地址
2.在测试本机,设置资源计数器,并设置为手动监控 &


文件起名:年月日+性能测试名称         20121120-xinge
脚本起名: VU+性能测试名称+年月日     vu-xingye-20111228

********录制脚本:***********
***************************************************************************
1.录制好的脚本,进行备份
2.脚本的思考时间全部注释
3.事务之前都必须思考时间约为5秒   lr_think_time(5);
4.录制脚本过程中,可以加插检查点,一般针对数字或英文进行,主要为了减少运行脚本所出现的错误
5.如果单单想知道哪个页面的事务加载时间,可以单独添加一个事务
6.每个事务的排序,必须在事务名前面加上排序号码,方便分析报告时,防止各个事务随机排序
lr_start_transaction("101_首页");
lr_start_transaction("201_楼盘展示");
7.开始录制前,不要添加测试地址,这是为了更好的不相关联的地址进行测试
8.run-time setting ->Internet Protocol -> Preferences 设置检查点:Enable Image and text check
9.每个性能测试点,都需要单独设立一个Action进行录制,除了子类相同可以同一个Action
10.显示运行页面 Tools ->General Options ->Display -> 勾上Show Browsser during replay & Auto arrange windo


********运行场景:************
***************************************************************************
1.测试出最大用户数
*start vusers :设置较在用户数
*直接运行场景
*Scenario Groups 手动启动用户执行
*打开计算机的任务管理器->性能       //查看CPU是否已经满载
*场景出现失败事务或出错   //也差不多可以确定最大用户数
重第3,4, 5可以快速找到服务器的最大用户数

2.压力测试、负载测试,基于已经找出来的最大用户数,在场景设置中正常设置运行的环境

 


********监控资源----windows********
***************************************************************************
1.开始->运行->输入perfmon,启动性能监控器
2.性能日志和警报->计数器日志->新建日志(新的性能日志)
3.新的性能日志窗体:
->常规-添加计数器、数据采样最好设置为 5 到 10 秒
->日志文件-设置文件名结尾  例:设mmddhhmm  :月日时分
->计划-启动日志(手动&自动,看情况需要)
 -停止日志(日志最好为1至2天的文件大小,如果需要继续监控系统可以设置:当日志文件关闭时,启动一个新的日志文件)
4.查看日志文件:C:\PerfLogs
5.打开性能监控器->系统监视器->查看日志数据->来源->日志文件->选取生成的日志文件->时间范围,设置需要的时间范围->点击确定,就会显示日志文件监控资源情况
6.生成CSV文件提供给LR分析报告->右键数据图表,选择数据另存为->格式:文本文件CSV->点击保存
名称:性能测试名 + 年月日 + 号码排序


********perfmon********************
***************************************************************************
% Processor Time(Processor _Total,应用服务进程,数据库服务进程,如java,sqlservr等)(90%以下)

Process
ID(监控Process
ID是否变化,判断是否进程崩溃重启了)

Process & Processor:User Time
Process:Working Set (Process _Total)

Process:Private Bytes(Process _Total,应用服务进程,数据库服务进程,如java,sqlservr等)

Process:Virtual Bytes(Process _Total,应用服务进程,数据库服务进程,如java,sqlservr等)


Memory: Available Mbytes(memory)(5MB以上)

Memory: Committed Bytes(memory)

Memory: Pages/sec(0~20,不能超过20)


System: Context Switch/sec(system)

System: Processor Queue Length(不能高于CPU数的2倍)


Exception Dispatches/sec(physicalDisk)

File Data Operations/sec(physicalDisk)

Avg. Disk Queue Length (PhysicalDisk _Total)(不能高于磁盘数的2倍)

Disk reads/sec(physicalDisk)
Disk writes/sec(physicalDisk)

% Disk Time (PhysicalDisk _Total)(55%以下)

Threads (Objects)

%disk time超过100%的解析


现象:
在LR上我们可以看到%disk time超过100%的现象.
如果机器处在很忙的状态,这个值有可能会超过100%,
比如,复制大量的文件.


原因:
出现这种现象的原因是处理器允许操作系统使用重叠的I/O,
磁盘性能计数器使用一个100纳秒精度的计数器来度量磁盘时间,
再按照采样频率显示出来.采样后的时间可能会超过100%,
比如:在2毫秒内有10个请求,采样时间为10毫秒.如果是raid磁盘,
因为操作系统可以读写到多到磁盘上,从而产生重叠 I/O,
这会使%disk time大于100%.

其实:
要度量磁盘时间及磁盘延迟的问题,

可以用以下几个计数器来看,
通常情况下,如果以下几个计数器之一的值有大于20毫秒的话,磁盘就是超负荷了.
?
Avg.Disk sec/Readavg.Disk sec / WriteAvg.Disk sec/Transfer
% Disk Time (PhysicalDisk _Total)(55%以下)


55%是指平均到单个磁盘,但是很多时候我们不知道他有多少个磁盘做阵列,
所以就可以用Avg.Disk sec/Readavg.Disk sec / WriteAvg.Disk sec/Transfer


监控数据库的相关计数器:

Login/sec

Full scans/sec(全表扫描/秒)

Buffer Manager(缓冲器管理器)

Buffer cache hit ratio()

cache hit ratio(高速缓存命中率)

Latches Waits/sec(闩等待/秒)

Locks(锁)

Lock blocks(服务器上锁定块的数量)

Number of Deadlocks/sec(死锁的数量/秒)

Average Wait time(ms)(平均等待时间(毫秒))

Lock Requests/sec(锁请求/秒)

Memory Manager

SQL Server General: User Connections(要比"Maximum Worker Threads" 的配置值(缺省值255)低)

 

********LR使用监控数据的文件********
***************************************************************************
1.启动LR Analysis->Tools->Ecternal Monitors ->Import Data->添加生成的CSV文件->File Format(选取性能服务器系统)->点击确定->Select Monitor Type->选择外部性能服务器系统,点击确定,OK了

 

********LR报告分析*********
***************************************************************************
1.LR报告的平均事务响应时间: 每秒执行事务的平均时间

2.吞吐量(网络方面): 场景运行过程中服务器的每秒的吞吐量
环境网络为10MB   但实际网络环境为10MB / 8 =1.25MB左右
如果用户数增加,吞吐量不变(范围值:1.25MB),说明吞吐量为瓶颈

2-1.吞吐量图与每秒事务数图
如果用户数增加,点击率不变。看是否为吞吐量为瓶颈,如果不是,可能是系统资源问题;

如果点击的次数增加而吞吐量持续不变或减少,就说明服务器无法执行增加的请求(每秒点击率),结果就是事务反应时间的增加;

3.windows资源(CPU\队列:核数*2): 
%Processor Time:CPU使用率超过90%表时CPU为瓶颈
Processor Queue Length:队列长度持续大于2(核心数),利用率Processor Time一直很低,表示可能出现处理器拥塞
%User Time:表示耗费CPU进行数据库操作;  可考虑增加索引,尽用使用简单的表连接
%DPC Time:越低越好;在多处理器系统中,加入一个网卡可能会提高性能,如果值大于50%并且%Processor Time非常高,说明网络已经不饱和

4.windows资源(硬盘\队列:盘数*2): 
%Disk Time :如果%Disk Time数值较大,表明硬盘可能会是瓶颈;如果数值持续超过80%,可能是内存漏泄

Avg.Disk Queue Length:较高的值表时磁盘控制器由于失败而不断重试磁盘;值应不超过磁盘数的1.5倍,要提高性能,可增加磁盘;  备注:一个Raid Disk实际有多个磁盘

Average Disk Read/Write Queue Length:指读取/写入请求列队的平均数

Average Disk sec/Transfer:写入数据所需的平均时间;值控制在小于15ms为最佳,介于15~30ms之间为良好,30~60ms之间为可以接受,超过60ms需要考虑更换硬盘或硬盘的RAID方式

%Disk Time和Avg.Disk Queue Length的值很高,而page Reads.sec页面读取操作速率很低,可能存在磁盘瓶颈

5.windows资源(内存): 
Available Mbytes:可用物理内存数;如果值小于100MB,说明计算机总的内存不足,或程序没有释放内存

Committed Bytes:是指有多少虚拟内存正在被使用,虚拟内存是占用硬盘空间的内存,不占用物理内存

Page/sec:如果值很大,表明内存有问题,或运行使用内存映射文件的程序所致

Cache Bytes:文件系统缓存,默认情况下为可用物理内存的50%;

内存漏泄:监控Memory-Available Byter &  Committed Bytes

内存漏泄的进程:监控Process-Private Bytes & Working set & Handle Count

内核模式进程导致漏泄:监控Memory-Pool Nonpaged Byter & Pool Nonpaged Allocs & Process-process_name & Pool Nonpaged Bytes

6.windows资源(数据库\事务总数)


******************************
***************************************************************************
Mercury Virtual User

第一步:录制需要进行性能测试的业务流程
Init:包含登录过程
Action:包含实际业务流程(BP)
End:包含注销和清理程序
Vusers只重复Action中的步骤

第二步:回放脚本

第三步:编辑脚本
添加事务:度量一个或多个步骤
参数化值:为更真实模似环境,参数化用户或其他数据
添加内容检查:插入->新建步骤:web_reg_find,输入检查的内容;例如:需要检查用户名:root ,直接在搜索特定文本:root,确定后生成:
web_reg_find("Text=root",
 LAST);

第四步:准备回载
常规其他:需要按线程运行Vuser;
迭代次数:循环次数
迭代的时间间隔:循环一次后,多久才继续模拟业务
并发用户:同一物理时间运行的用户数量
 关注: 业务并发用户、服务端承受最大并发
思考时间:每个请求之间的间隔时间   
 关注:如何模拟正式环境?
网络:速度模拟
 关注:如何模拟真实的网络环境?

-----------------------------------------------------------------------------------
-----------------------------------------------------------------------------------

********sitescope培训********
***************************************************************************
1.了解sitescope :为专门监控Unix & Linux的软件;以前的如果要监控Linux就必须在Linux服务器里面安装软件才能监控,监控的效果也不如理想;

1-1监控Oracle
LoadRunner除了可以用本地监控器来收集Oracle的性能数据外,还可以整合SiteScope对Oracle进行监控。
根据SiteScope帮助文档,需要把Oracle JDBC database driver 文件 (classes12.zip)放到<SiteScope install path> SiteScope\java\lib\ext,之后重启SiteScope才能对Oracle进行监控。
( classes12.zip 文件可以在oracle安装目录下得到<oracle install path> \oracle \jdbc\lib \classes12.zip)
数据库连接URL: jdbc:oracle:thin:@108.88.3.223:1521:test
数据库驱动程序:oracle.jdbc.driver.OracleDriver
重启SiteScope服务
<SiteScope root directory>\Web-INF\lib 和 <SiteScope root directory>\java\lib\ext

如出现Error Code: 31008.  Error Description: Error getting counters : unable to retrieve the counters:请设置监控的计算机 远程桌面设置为允许使用 & 禁用防火墙

另外需注意的是:连接Oracle的数据库用户必须是DBA权限的用户。


1-2监控Mysql
1.下载java版的mysql驱动程序(JDBC驱动程序,最后是5版本以上的)
   下载后进行解压缩,将解压缩的mysql-connector-java-5.1.14-bin.jar文件复制
     C:\SiteScope\java\lib\ext 目录下(以你的安装目录为准)
 
2.添加mysql计数器
  进入“监控器”界面,选中"sitescope"点击右键,选择新建组,输入组的信息,如组名称为mysql。
  右击组“mysql”,选择新建“监控器”,在新建监控器界面选择“数据库计数器”
 
 数据库连接:输入jdbc:mysql://mysql服务器IP:端口号/数据库名称 (端口默认是3306可以不写出来)
 查询:show status(表示把所有参数显示出来,然后进行选择)或是show status where variable_name like ‘其中的参数’(表示直接选择要监控的参数)
 数据库驱动程序:org.gjt.mm.mysql.Driver
 数据库的用户名和密码:root 密码
上述信息填写完毕后,点击“获取计数器”,在显示出来的计数器中勾选要监控的计数器,点击“确定”,添加计数器结束。

查询:show status
数据库驱动程序:org.gjt.mm.mysql.Driver
数据库的用户名和密码:root 密码
数据库连接:jdbc:mysql://108.88.3.223:tf

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值