原文:http://www.cnblogs.com/Chilam007/p/6445165.html

analysis简介

分析器就是对测试结果数据进行分析的组件,它是LR三大组件之一,保存着大量用来分析性能测试结果的数据图,但并不一定要对每个视图进行分析,可以根据实际情况选择相关的数据视图进行分析,分析结果可以生成一些不同格式的测试报告。

一、设置选项

analysis中的数据是怎么得到的呢?其实在场景运行的时候,默认情况下,所有的vuser信息都保存在该vusr的负载机上。只有当场景运行结束后,这些数据才会自动进行整理或合并,这时负载机上所有vuser的信息和数据都将被传输到结果目录中。默认情况下,在controller控制器中,results->auto collate results是被选中的,也就是说默认情况下,当场景运行结束后,这些数据会被自动整理或合并。但当没有选中这项时,场景运行结束后,可以在controller控制器中选择results->collate results 进行手动整理。

在进行数据视图分析前,有必要将分析图中涉及的一些选项加以设置,过滤掉不需要的数据,方便对数据进行分析。

下面介绍一些常用的设置选项:

1、结果目录设置

在controller控制器中选择results->results setting,如图1所示:

a.每执行一次场景都生成一份结果文件,结果文件的命名方式为res后接一个序号(如res0),每执行一次序号依次加1;

b.每执行一次场景,将执行后的结果覆盖以前的结果。(为了防止意外发生,一般会选择第一种结果保存方式)。

图1(结果目录设置)

2、result collection设置

在LR处理这些数据时,可以查看这些数据的摘要,具体怎样查看摘要数据,需要在result collection选项中进行设置,如图2所示:

图2

data source:

a.表示仅查看摘要数据。如果选中该选项,那么analysis还会处理数据以用于筛选和分组等高级用途。且data aggregation项是不可以设置的。

b.表示仅查看经过处理的完整数据,但是不显示摘要数据。

c.表示在处理完整数据时,查看摘要数据。

data aggregation:

a.表示使用内置数据聚合公式聚合数据,以优化性能

b.表示使用内置数据聚合公式仅仅聚合与web相关的数据

c.表示用户自定义来设置聚合数据,如图3所示:

aggregate data (available only for complete data):用于设置聚合数据的类型,这里只适用于完整数据,可以选择需要聚合数据的图的类型,这样可以减小数据库的容量。

select the graph properties to aggregate:指定要聚合的图属性。

web data aggregation only:表示仅聚合web的数据,在这里可以设置聚合的粒度。

图3

3、configure measurements 设置

在分析图时,发现分析图的Y轴幅值过小时,就可以在这里进行设置,对Y轴进行适当的放大或缩小操作,如图4所示:

a.手动设置一个比例值;b.使用优化的自动比例来显示图中每个度量;c.将图中所有度量比例都设置为1;d.查看所有度量的趋势。

默认值 为1,即按原始比例进行显示,有时波形显示的幅值太小,那么就需要适当地调整放大比例。

图4

4、设置筛选条件

如图5所示:在录制测试脚本过程中,如果执行脚本时没有忽略think time时间,那么analysis分析器在统计分析结果时会把think time包含进去,这样当think time存在于用户事务的开始与结束之间时,相关事务统计情况会受到影响。因此,很多时候需要过滤用户的思考时间,在下拉框中删除include think time选项即可,分析结果中就会自动滤掉思考时间。

图5

二、analysis图

analysis分析器中提供了丰富的分析图,如图6所示:

常见的有8类:

1)vuses图:在方案执行过程中,vuser在执行事务时生成数据。使用vusers图可以确定方案执行期间vuser的整体行为。它显示vuser状态和完成脚本的vuser的数量。主要包括正在运行的vuser图和vuser摘要图

2)错误图:主要统计方案执行时的错误信息。主要包括error statistics(by description)、error per second(by description)、error statistics和error per second四种图。

3)事务图:描述了整个脚本执行过程中的事务性能和状态。主要包括平均事务响应时间图、每秒事务数图、每秒事务总数、事务摘要图、事务性能摘要图、事务响应时间(负载下)图、事务响应时间(百分比)图和事务响应时间(分布)图。

4)web资源图:主要提供有关web服务器性能的一些信息。使用web资源图可以分析方案运行期间每秒点击次数、服务器的吞吐量、从服务器返回的HTTP状态代码、每秒HTTP响应数、每秒页面下载数、每秒服务器重试次数、服务器重试摘要、连接数和每秒连接数。

5)网页细分图:主要提供一些信息来评估页面是否影响事务响应时间。包括网页细分、页面组件细分、页面组件细分(随时间变化)、页面下载时间细分、页面下载时间细分(随时间变化)和已下载组件图

6)系统资源图:主要监控场景运行期间系统资源使用率的情况。可以监控windows资源、UNIX资源、SNMP资源、Antara Flame Thrower资源和SiteScope资源

7)web服务器资源图:主要用来捕捉场景运行时web服务器的信息。主要用来分析microsoft IIS服务器、apache服务器、iplanet/netscape服务器和iplanet(SNMP)服务器。

8)数据库服务器资源图:主要显示数据库服务器的统计信息。目前支持DB2、oracle、sql server和sybase数据库。

图6

摘要报告

一、概要部分

二、统计部分

三、事务统计部分

第一行统计场景运行时所有事务通过、失败、停止的数量。而表格里则是显示了所有事务执行时的详细信息:

1)transaction name(事务名);2)minimum(事务运行的最短时间);3)average(事务运行的平均时间);4)maximum(事务运行的最长时间);

5)std.deviation(标准方差):方差描述一组数据偏离其平均值的情况,方差值越大,说明这组数据就越离散,波动性也就越强;反之,则说明这组数据就越聚合,波动性也就越小;

6)90 percent:在controller运行场景时,并不会显示这个值,因为它是对整个一系列数据统计的结果。表示一个事务在执行过程中的90%所花费的时间,比如,一个事务执行了100次,对这100次事务响应时间进行升序排序,第90%即90次事务运行时间;

7)pass(通过的事务个数);8)fail(失败的事务个数);9)stop(停止的事务个数):在执行场景时,若用户手工停止场景的执行,事务没有自己的状态,那么就是停止状态。

注:事务的通过率一定要大于95%,也即失败率应该小于5%,因为如果事务失败率过高,就说明客户在使用系统时很容易出现错误,这样无论事务响应时间多么短也是不符合要求的,因为客户最基本的需求都没有被满足,功能都不能正确的处理,那么更无法谈性能了。

四、SLA

SLA(service level agreement,服务水平协议)可在性能测试过程中,定义性能测试的目标和度量性能,在性能测试过程中LR会收集和保存性能的相关数据,在分析运行结果时,分析器分将收集的数据与SLA中定义的度量数据进行比较,并将分析结果显示在分析器中,SLA三种状态分别是:

a.pass:表示SLA获得该项测试数据,并且该数据达到目标要求;b.fail:表示SLA获得该项测试数据,但是测试结果未达到目标要求;c.no data:表示SLA未获得该项测试数据,所以无法确定是通过还是失败。

SLA配置步骤如下:

1、在摘要视图中单击如图7所示的按钮:

图7

2、单击new,定义SLA目标,如图8所示:

图8

3、设置待度量的目标。这里以事务响应时间为例,如图9所示。

关于事务响应时间的目标有两种方式,一种是按百分比来度量(即设置百分之多少的事务响应时间不能超过目标时间);另一种是按平均事务响应时间来度量。等下依次介绍这2种方式。

图9

4、选择事务。(注:在脚本中一定要插入事务,否则在该步选择事务时,无法选择待度量的事务),如图10所示:

图10

5、设置百分比阈值。如果是以百分比模式来度量事务响应时间时,如图11所示:

图11

该步骤需要设置好百分比和事务响应时间阈值,设置的百分比为90%,事务响应时间为2s,即是只要90%的事务响应时间不超过2s,那么SLA的报告结果即为PASS,否则结果为FAIL。如图12所示。

图12

百分比模式,可以在analyze transaction按钮进入分析事务界面,查看详细的分析信息,如图13所示:

图13

下面讲一下按平均事务响应时间来度量:

1、设置负载标准。如果选择按平均事务响应时间来度量,则如图14所示:

选择负载标准,即通过什么指标来衡量事务响应的变化情况,以运行的虚拟用户数为例,需要设置在不同运行虚拟用户数下事务的响应时间。

图14

2、设置阈值。

选择好负载标准后,需要设置在不同的负载标准情况下,事务响应时间情况,这里即需要设置在不同运行虚拟用户下事务的响应时间情况,如图15所示。

设置为当虚拟用户数少于10个时,事务响应时间应该不超过1s,当虚拟用户数大于10个时,事务响应时间不超过1.5s。

图15

设置到这里就已经全部完成了,可以看出 SLA从本质上来说它是一种目标,是一种度量测试结果是否达到目标的一种手段,与目标场景的设置很相似,原理几乎一致。

完成SLA设置后,在分析器中会显示出每个度量事务在不同时间域中的结果表现,如图16所示:

图16

在此可以选择不同事务、不同时间域进行详细的分析,以查看机票信息为例进行分析,单击analyze transaction按钮分析器会显示出该事务的详细信息,详细分析信息主要包括事务摘要信息、事务相关、错误信息和快照视图。

1)事务摘要信息

2)事务相关联信息(主要包括显示分析事务时可能需要关联的相关信息:脚本运行时的一些错误信息、系统资源消耗情况、web资源消耗情况和数据库资源消耗情况。)

注:我的报告中只显示了web资源消耗情况,其实还有上面所提到的其他几种信息的。

3)错误信息(主要显示整个场景运行过程中出现的错误信息,这在与场景运行过程中产生的错误输出信息类似。详细地记录了错误的类型、错误代码、事务名称、脚本、错误代码行数、运行过程中哪个虚拟用户出错 等一些相关的信息)。

注:因我的脚本运行过程中没有错误,所以在报告中就没有显示错误信息,可自己去操作看一下。

4)快照视图(主要是描述分析的时间域中事务响应时间的情况),如图17所示。

横坐标表示场景执行的时间,纵坐标表示事务响应时间,图中有3条曲线,红色的表示场景运行时的虚拟用户数,绿色为场景运行时事务的响应时间,黑色表示SLA定义的阈值。如果绿色的线超过了黑色线则说明该点的SLA失败,那么SLA的状态将会置为失败。反之则成功,SLA的状态将置为通过。

图17

注:按百分比模式与按平均模式的结果显示会有点不同,具体可自行操作分析。

五、HTTP响应统计

HTTP是一种通信协议,它允许将超文本标记语言(HTML)文档从web服务器传送到web浏览器。HTML是一种用于创建文档的标记语言,这些文档包含到相关信息的链接。可以单击一个链接来访问其他文档、图像或多媒体对象,并获得关于链接项的附加信息。(关于HTTP请求响应机制与HTTP响应状态码的含义,可自行百度,这里就不说了。)

analysis常见图分析

在LR分析器中对资源使用的情况分析得很少,因为通常在性能测试过程中很少使用LR来监控系统资源的使用,特别是UNIX、LINUX和ALX操作系统,几乎不使用LR来监控,更多的是借助第三方工具来监控,当然如果服务器是windows操作系统,那么使用LR进行监控比较简单。

一、vuser图

它显示vuser状态和完成脚本的vuser的数量。将这些图与事务图结合使用可以确定vuser的数量对事务响应时间产生的影响。

X轴表示从方案开始运行以来已用的时间,Y轴表示方案中的vuser数,vuser图显示在测试期间的每一秒内执行vuser脚本的vuser数量及其状态。可以帮助确定任何给定环境中服务器上的vuser负载。默认情况下,此图仅显示为running的vuser。

二、点击率图

显示在方案运行过程中vuser每秒钟向web服务器提交的HTTP请求数。借助此图可以依据点击次数来评估vuser产生和负载量。一般会将此图与平均事务响应时间图放在一起进行查看,观察点击数对事务性能产生的影响。X轴表示方案从开始运行以来所用的时间,Y轴表示服务器上的点击数。

注意:点击率并不能衡量服务器的真实处理能力,也不能仅仅通过点击率来衡量服务器的处理能力,因为服务器即使出现 了瓶颈也还会影响到这个值的变化,因为LR其实也是一个代理录制的工具,将录制过程中提交的请求录制成脚本,在回放时模拟用户重新提交这些请求,那么在提交的时间LR可以对HTTP请求进行统计,进而生成点击率视图。但是这并不代表LR画出来的点击率视图一定正确,假如客户端实际提交的HTTP请求为2000个/s,但点击率视图画出来的值为1000个/s,这说明客户端提交的请求根本就没有完全发送到服务器,那么这种情况最有可能是在网关处请求出现超时,因为每个网关端口都有一个允许其访问的最大值,当这个值过大时,网关也会出现排队现象,如果队列过长就会导致一些请求出现超时现象,最后导致统计出来的点击率的值不正确。

三、平均事务响应时间图

显示方案在运行期间执行事务所用的平均时间。X轴表示从方案开始运行以来已用的时间,Y轴表示执行每个事务所用的平均时间(s)。平均事务响应时间最直接地反映了事务的性能情况,一般会将平均事务响应时间图与vuser图对照着看,来观察vuser运行对事务性能的影响。可以右键选择show transaction breakdown tree查看子事务或者所有的事务每个页面所花费的时间。

平均事务响应时间图直接反映系统的性能情况,这也是客户眼中的性能,在需要时必须明确地定义好业务的响应时间,在分析时一般先分析的响应时间,当平均事务响应时间符合定义时,也仅仅说明响应时间能达到要求,但是此时并不代表系统达到客户要求,因为LR统计出来的事务响应时间不一定正确,所以当事务响应时间达到要求后,也一定要分析一些其他的数据,需要确定的是业务是否都做成功了,如果业务都做成功了,并且事务响应时间达到要求,这样才能说明事务响应时间达到客户的要求;如果平均事务响应时间达不到要求,就需要进一步分析,是哪些原因导致事务响应时间过长,这样才能进一步优化系统的性能。

四、吞吐量图

显示方案运行过程中服务器上每秒的吞吐量。吞吐量的单位为字节,表示 vuser在一秒时间内从服务器获得的数据量。借助此图可以依据服务器吞吐量来评估vuser产生的负载量,可以和平均事务各应时间图对照观察,以查看吞吐量对事务性能产生的影响。

X轴表示 方案从开始运行以来已用的时间,Y轴表示服务器的吞吐量(以字节为单位)。吞吐量直接反映了服务器的处理能力,如果服务器处理的吞吐量的值越大,说明服务器处理业务的能力越强,但是在测试过程中不可能一次就测试出服务器吞吐量的值,必须经过多次测试才能找到吞吐量的值,即测试过程中一定要找到吞吐量的拐点,这样才能找到服务器处理业务时的最大吞吐量,亦即服务器处理的最大能力。

analysis报告

一、HTML报告

二、SLA报告

三、自定义报告

四、使用报告模板定义报告

LoadRunner 11 中Analysis分析的更多相关文章

  1. LoadRunner 11中Record无法自动生成脚本——解决办法

    [问题描述] 安装loadRunner 11, 使用IE为默认浏览器,打开一个页面进行脚本录制:录制完成后,无法生成脚本. [问题现象] 控制台输出如下: ****** Start Log Messa ...

  2. Loadrunner 11 中Run-Time Setting详细参数说明

    .General/Run Logic :用来设置运行脚本迭代的次数,迭代次数只对run部分的脚本迭代次数有影响,对init和End部分无印象.一般设置未1~3次,只会影响在单位时间内客户端想服务器提交 ...

  3. Loadrunner 11 中的Java Vuser

    Java vuser是自定义的java虚拟用户脚本,脚本中可以使用标准的java语言. 1.安装jdk 注意,lr11最高支持jdk1.6 2.配置环境变量 3.在lr中选择java vuser协议 ...

  4. C++11中的mutex, lock,condition variable实现分析

    本文分析的是llvm libc++的实现:http://libcxx.llvm.org/ C++11中的各种mutex, lock对象,实际上都是对posix的mutex,condition的封装.不 ...

  5. loadrunner脚本中写入脚本输出log到外部文件,分析参数取值方式

    loadrunner脚本中写入脚本输出log到外部文件,分析参数取值方式 分类: 心得 loadrunner 我的测试 2012-04-01 12:52 2340人阅读 评论(0) 收藏 举报 脚本l ...

  6. LoadRunner 11简单使用

    LoadRunner 11简单使用 开始菜单-->HP LoadRunner-->applications--->virtual user Generator 1>新建--&g ...

  7. LoadRunner性能测试中Controller场景创建需注意的几点

    在LR工具做性能测试中,最关键的一步是Controller场景的设计,因为场景的设计与测试用例的设计相关联,而测试用例的执行,直接影响最终的测试结果是怎么的,因此,我们每设计一种场景,就有可能是一个测 ...

  8. Loadrunner 11 遇到的问题

    环境 OS:windows 8.1 64bit LoadRunner版本:11 问题 1.  VuGen:开始录制后,火狐浏览器没有反应,不会弹出打开 可能原因一:浏览器版本太高. 解决方案: 1)卸 ...

  9. LoadRunner性能测试样例分析

    LR性能测试结果样例分析 测试结果分析 LoadRunner性能测试结果分析是个复杂的过程,通常可以从结果摘要.并发数.平均事务响应时间.每秒点击数.业务成功率.系统资源.网页细分图.Web服务器资源 ...

随机推荐

  1. CentOS 7下编译安装Boost_1_57_0

    之前对库的理解太肤浅(现在也仍很肤浅),导致走了挺多的弯路,现记录以备后查. 现在可以从Boost官网下载到最新的Boost源代码boost_1_57_0.tar.gz. 现将步骤记录如下: 1. 解 ...

  2. android 高仿京东

    android 高仿京东源码,两年前的作品,最近发现一些老代码,发布出来给初学者学习,下面附上几张展示的效果,有需要的请到下面地址下载,记得stare哦 https://github.com/xian ...

  3. 结合FireBreath在Chrome/FireFox的多进程模式下崩溃一例

    FireBreath是跨浏览器跨操作系统的插件方案,它封装了ActiveX和NPAPI的插件接口,使用统一的API来暴露JSAPI.Chrome和FireFox使用NPAPI,IE使用ActiveX. ...

  4. Android实训案例(二)——Android下的CMD命令之关机重启以及重启recovery

    Android实训案例(二)--Android下的CMD命令之关机重启以及重启recovery Android刚兴起的时候,着实让一些小众软件火了一把,切水果,Tom猫,吹裙子就是其中的代表,当然还有 ...

  5. mybatis ---- 级联查询 一对多 (集合映射)

    关联有嵌套查询和嵌套结果两种方式,本文是按照嵌套结果这种方式来说明的 上一章介绍了多对一的关系,用到了<association></association>,这是一个复杂类型的 ...

  6. nasm中的表达式

    nasm表达式支持2个特殊的记号 $和$$;前者标识其所在源码行的开始处地址,所以你可以这样写死循环: jmp $ 而后者标识当前段开始处的地址,你可以通过: $-$$ 找出当前代码在段内的偏移. n ...

  7. Course3-Python文件I/O

    1. 读取键盘输入 Python提供了两个内置函数从标准输入读入一行文本,默认的标准输入是键盘.如下: 1). raw_input. raw_input([prompt]) 函数从标准输入读取一个行, ...

  8. Angular使用总结 --- 模版驱动表单

    表单的重要性就不多说了,Angular支持表单的双向数据绑定,校验,状态管理等,总结下. 获取用户输入 <div class="container-fluid login-page&q ...

  9. JavaScript脚本放在哪里

    在HTML body部分中的JavaScripts会在页面加载的时候被执行. 在HTML head部分中的JavaScripts会在被调用的时候才执行. ----------------------- ...

  10. Centos 7 卸载自带的openjdk

    [root@localhost ~]# rpm -qa|grep jdk java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64 java-1.7.0- ...