快好知 kuaihz

LR & SiteScope & 本地监控

       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.参数化设置、关联

 

   

    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)放到SiteScopejavalibext,之后重启SiteScope才能对Oracle进行监控。

   

    ( classes12.zip 文件可以在oracle安装目录下得到oracle jdbclib classes12.zip)

   

    数据库连接URL: jdbc:oracle:thin:@108.88.3.223:1521:test

   

    数据库驱动程序:oracle.jdbc.driver.OracleDriver

   

    重启SiteScope服务

   

   Web-INFlib 和javalibext

 

 

如出现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:SiteScopejavalibext 目录下(以你的安装目录为准)

   

     

   

    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

 

 

 

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:amp  amp词条  SiteScope  SiteScope词条  监控  监控词条  本地  本地词条  LR  LR词条  
综合

 共享汽车数据印象

汽车共享”最早出现于上个世纪四十年代的瑞士,他们发明了“自驾车合作社”,后来日本、英国等国争相效仿,但都未形成规模。而今,共享经济通过互联网达到了一个新的高度,...(展开)

综合

 台式电脑何去何从?

大家一定会认为台式电脑的黄金发展期或许已经成为历史了,我认为这是错误的,今后台式机的发展会更加智能,更加偏重于专业性较强的公司和企业进行发展!随着软件业和硬件业...(展开)

综合

 图形化编程娱乐于教,Kitten...

跟很多学生聊过,很多学生不是不努力,只是找不到感觉。有一点不可否认,同样在一个教室上课,同样是一个老师讲授,学习效果迥然不同。关键的问题在于,带入感,我能给出的...(展开)