码迷,mamicode.com
首页 > 其他好文 > 详细

LoadRunner学习笔记--未经排版

时间:2015-07-18 23:58:30      阅读:341      评论:0      收藏:0      [点我收藏+]

标签:

LoadRunner学习笔记

  1. 并发用户数量:

与服务器进行交互的在线用户数量

  1. 请求响应时间

从客户端发送请求到得到整个响应的时间

一般包括网络响应时间+server的响应时间

  1. 事务相应时间

完成这个事务所用的时间

是性能测试中重点关注的指标

  1. 吞吐率

单位时间在网络上传输的数据量(吞吐量:网络上传输的数据总量)

指从server返回客户端的

是衡量网络性能的主要指标

  1. TPS

每秒钟系统能够处理事务的数量

  1. 点击率

每秒发送的HTTP请求的数量

点击率越大对server的压力也就越大

  1. 资源利用率

对不同资源的使用程度,比如服务器的CPU、内存等

  1. LoadRunner目录分析(部分)

Analysis templates - 分析模板

Bin - 可执行程序,注意里面的CHM帮助文档

Bincerts - 安全证书

Classes - 可能用到的jar包

Dat - 配置,备份等信息

Ejbcomponent - ejb的相关jar包

Help - 帮助中心

Include - 头文件(可以编写自定义函数,保存成.h的头文件形式并放在这个目录,以后就只需要调用这个头文件就可以方便地使用了)

Sample – Java

Tutorial – 快速入门实例

Webtours – 实例网站

 

 

 

 

LoadRunner 界面分析

一、Virtual User Generator

  1. Virtual User Generator:

a)         LaodRunner拥有多种Vuser类型,每一类型均适用于特定的负载测试环境。这样就能够使用Vuser精确模拟真实世界的情形。Vuser在方案中执行的操作是用Vuser脚本描述的

b)         Vuser脚本的结构和内容因Vuser类型的不同而不同

c)         注意:VuGen仅能录制Windows平台上的会话,但录制的Vuser脚本既可以在Windows平台上运行也可以在Unix平台上运行

  1. 新建脚本的方式:

a)         新建单协议脚本:

创建单协议Vuser脚本,这是创建虚拟用户脚本对话框的默认选项,可以查看所有协议或按类别来查看对应的可用协议

b)         新建多协议脚本

创建多协议Vuser脚本,VuGen显示所有的可用协议,指定录制所需要的几组协议即可。

c)         使用最近使用过的协议新建脚本

列出最近用于新建Vuser的脚本协议

  1. 协议类型:

应用程序部署解决方案:Citrix ICA

客户端/服务器:

自定义:

分布式组件:

电子商务:

Enterprise Java Bean:

ERP/CRM:

传统:

邮件服务:

中间件:

流数据:

无线:

  1. Task模式: 给你一步一步的提示,只需按照提示一步一步执行即可
  2. Recording Option选项:

a)         录制方式选择

                         i.              HTML录制方式

                       ii.              URL录制方式:

b)         浏览器选择:

                         i.              一般默认选择IE

c)         代理设置:

d)         Advanced标签页:

e)         Correlation标签页:手动设置关联,通过关联可在测试执行过程中保存动态值。使用这些设置可以配置VuGen在录制过程中执行的自动关联的程度

  1. Run-Time Setting选项:

a)         Run logic:设置Action部分迭代次数,Init、end都是只有1次,Run会有多次

b)         Pacing:设置以怎样的一种方式开始下一次反复,即什么时候开始下一次重复

c)         Log:是否启用日志、标准日志、扩展日志

d)         Think time:关于脚本中Think Time的设置

e)         Miscellaneous:配置其他运行时的设置,如错误处理方式、按进程or线程跑

f)          Speed simulation:带宽,用来模拟网速

g)         Browser emualation:浏览器仿真设置

h)         Proxy:代理设置

二、Controller

  1. Controller:管理和维护方案,使您可以从一个单一的控制点简单有效地控制所有的Vuser
  2. 创建运行场景:

a)         创建手动的:

                         i.              通过创建并指定脚本、负载生成器和每个组中包括的Vusershutdown,可以生成手动方案。也可以通过“百分比模式”定义要在方案中使用的Vuser总数,并为每个脚本分配负载生成器和占总数一定百分比的Vuser

                       ii.              注意:

  1. 持续时间设置将覆盖Vuser迭代设置,也即,如果将持续时间设置为5min,那么Vuser将在5min内运行尽可能多的迭代,几时运行时设置仅指定进行一次迭代
  2. Vuser组设置不适用与百分比模式

b)         创建面向目标的

                         i.              在面向目标的方案中,可以定义希望实现的测试目标,LoadRunner将根据定义的目标自动创建一个方案

                       ii.              在一个面向目标的方案中,可以定义五种类型的目标:虚拟用户数、每秒点击次数(仅Web Vuser)、每秒事务数、每分钟页面数(仅Web Vuser)或方案的事务响应时间

                      iii.              使用“编辑方案目标”对话框可以对方案目标进行定义

                      iv.              注意:要定义每秒事务数或事务响应时间目标类型,脚本中必须包含事务。对于每种目标类型,您可以定义脚本中希望测试的事务

  1. 方案设置:可设置方案在达到目标后继续运行的时间长度,以及方案无法达到目标是是否继续。

a)         达到目标后再运行:设置方案在达到目标后继续运行的时间

b)         如果无法达到目标,下面2个选项选择一个:

                         i.              停止方案并保存结果:若无法达到您定义的目标,指示Controller停止方案并保存方案结果

                       ii.              继续运行方案,无需达到目标:指示Controller继续运行方案,及时无法达到设定的目标

  1. 运行方案:

a)         运行方案时,会为Vuser组分配负载生成器并执行他们的Vuser脚本。在方案执行期间,LoadRunner将:

                         i.              记录在Vuser脚本中定义的事务的持续时间

                       ii.              执行包括在Vuser脚本中的集合

                      iii.              收集Vuser生成的错误、警告和通知信息

b)         在方案运行时,您可以监视每个Vuser,查看有Vuser生成的错误、警告和通知信息以及停止Vuser组和各个Vuser。可以指示LoadRunner允许单个Vuser或组中的Vuser在停止前完成他们正在运行的迭代、在停止前完成他们正在运行的操作或立即停止运行

  1. Result setting:Result setting设置

a)         建议Result name命名方式:场景运行时间_脚本名称_虚拟用户数_场景持续时间

  1. 监视方案:

a)         可以使用LoadRunner联机运行时,事务、web资源、系统资源、网络延迟、防火墙服务器资源、web服务器资源、web应用程序服务器资源、数据库服务器资源、流媒体资源、ERP/CRM服务器资源、Java性能、应用程序部署和中间件性能监视器来监视方案执行

b)         LoadRunner提供下列联机监视器:“运行时”监视器显示参与方案的Vuser的数目和状态,以及Vuser所生成的错误数量和类型。此外还提供用户定义的数据点图,其中显示Vuser脚本中的用户定义点的实时值

  1. 关于系统资源管理器:

a)         影响事务响应时间的一个主要因素是系统资源使用率

b)         使用LoadRunner资源监视器,可以在方案运行期间监视计算机上Windows、unix、snmp、antaraFlame Thrower和SiteScope资源,并可以确定特定计算机上为何出现瓶颈

三、Analysis

  1. Analysis基础知识

a)         创建会话:在运行方案时,数据将存储在结果文件中,扩展名为.lrr,Analysis将活动图的显示信息和布局设置存储在扩展名为.lra的文件中

b)         启动Analysis

LoadRunner选择“Analysis”程序,也可从Controller打开

c)         整理结果

方案执行后,这些结果会自动进行整理或合并,即将所有主机的结果传输到结果目录中,通过在Controller窗口中选择ResultsàAuto collate Results

  1. 了解Analysis报告

a)         运行方案后,您可以查看对系统性能进行汇总的报告。Analysis提供以下报告工具:

                         i.              摘要报告

                       ii.              HTML报告

                      iii.              事务报告

b)         摘要报告提供有关方案运行的一般信息,您可以随时从Analysis窗口中查看摘要报告

c)         您可以指示Analysis创建HTML报告,Analysis将为每个打开的图创建HTML报告

d)         事务报告提供有关Vuser脚本中定义的事务的性能信息,这些报告为您提供 结果的统计信息细分,并允许你打印和导出数据

  1. Analysis分析基础(个人总结,非标准)

a)         查看Summary,主要是虚拟用户数和事务

b)         查看负载生成器和服务器的系统资源情况,如CPU、内存等,往往内存的泄露表现在CPU利用率过高

c)         查看虚拟用户和事务

d)         查看错误发生情况

e)         查看WEB资源和细分网页

  1. IP欺骗

a)         设置方法:

                         i.              LoadRunner – tools – IP wizard

                       ii.              在Controller的scenario中启用IP欺骗(必须在连接到Load Generator前启用IP欺骗)

                         i.              Tools – expert mode

                       ii.              Tools – option – general

                      iii.              测试结束后要释放IP也是在LoadRunner – tools – IP wizard中操作

                         i.              Tips:

  1. 必须是固定IP,不支持动态IP
  2. 重启计算机后可用ipconfig –all查看IP信息
  3. LoadRunner常用术语

a)         场景

在LR中主要表现为Controller中设计与执行测试用例中的用户场景,主要工作有,在Controller中选择虚拟用户脚本、设置虚拟用户数量、配置虚拟用户运行时的行为、选择负载发生器、设置执行时间等

b)         负载发生器

用来产生压力的真实机器,受Controller控制,可以使用户脚本在不同的主机上执行。在性能测试工作中,通常由一个Controller控制多个Load Generator以对被测系统进行加压

c)         虚拟用户

对应于现实中的真实用户,使用LR模拟的用户称为虚拟用户。其本质是通过虚拟用户脚本来模拟真实用户的行为

d)         虚拟用户脚本

通过Vuser Generator录制或开发的脚本,这些脚本用来模拟用户的行为

e)         事务

LR用事务来衡量服务器的性能,在业务上,事务通常是用户的一个或一系列操作,代表一定的功能,而在程序上则表现为一段代码区块,测试人员可以将一个或多个操作步骤定义为一个事务,以便衡量这部分的用户并发响应时间

f)          思考时间

为了在模拟是更加接近用户的真实行为而引进的概念,在实际中,用户进行一系列操作后往往会进行处理,如浏览网页内容,而处理过程对服务器是没有压力的,因此在虚拟用户脚本中用函数lr_think_time(double thinkTime)来模拟用户处理过程,执行该函数时用户线程会按照相应的time值进行等待

g)         集合点

对应于真实用户中的并发点,lr通过集合点实现了真实意义的并发,集合点在虚拟用户脚本中对应函数lr_rendezvous(constchar* rendezvous_name),当执行到该函数时会按照场景的并发策略来执行

h)         事务响应时间

事务响应时间是一个统计量,是评价系统性能的重要参数,定义好事务后,在场景执行过程中和测试结果分析中即可看到对应事务的响应时间。通过对关键或核心事务的执行情况进行分析,可以快速定位性能问题

  1. HP web tours分析
  2. 脚本录制原则

a)         重复考虑脚本的执行效率

b)         录制重要的用户业务

c)         选择你所需要的进行录制

d)         卢志强对参数进行正确的配置

  1. HTML和URL录制方式比较

a)         HTML录制方式:可以为每个用户请求生成单独的函数

b)         URL录制方式:可以捕获所有作为用户操作的结果发送到服务器的HTTP请求,然后一条条记录下来,他甚至可以捕获非HTML应用程序,比如小程序和非浏览器应用程序

c)         HTML这种录制方式录制出来的脚本直观,易于理解和维护;而URL生成的脚本看起啦较长、较多

  1. 选择录制方式的原则

a)         给予浏览器的应用程序推荐使用HTML-based Script

b)         不是基于浏览器的应用程序推荐使用URL-Based Script

c)         如果基于浏览器的应用程序中包含了JavaScript并且该脚本向服务器产生了请求,比如DataGrid的分页按钮等,也要使用URL-Based Script方式录制

d)         基于浏览器的应用程序中使用了HTTPS安全协议,使用RUL-Based方式录制

e)         对于初学者来说,如果HTML方式录制不成功可换成URL方式录制

  1. HTML Based Script设置介绍

a)         用来描述用户行为的脚本,直接创建的URL(web_url)、表单提交(web_submit_from)、链接(web_link)和图像(web_image)等函数

b)         进包含明确的URL脚本。这种脚本中,所有的链接、图像请求和URL操作都被录制为web_url函数,而表单提交则被录制为web_submit_data函数

  1. 自动关联

a)         LR录制的脚本指示记录了所有从客户端发送到服务器端的数据,并在脚本回放时按照录制的顺序将录制下来的数据重新发送出去

b)         但是,实际上许多的系统都是采用SessionID或SeqID等方式来标识不同的任务和数据报,应用在每次运行时发送的数据并不完全相同

c)         所以,为了让脚本能够支持测试的需求,就必然要用某种机制对脚本录制的数据进行处理

d)         通过关联可以在测试中保持动态值

  1. 自动关联的目的

a)         简化或优化代码

如:若依次执行一系列相关查询,代码可能会变得很长;若为了减小代码的大小,可以嵌套查询,但这样会失去准确性,而且代码会变得复杂而难以理解。通过关联语句,不需要嵌套即可链接查询

b)         用于多态数据

许多应用程序和网站按当前日期和时间标识会话,若尝试重播脚本,该操作将会失败,因为当前时间与录制时间不同。通过关联数据可以保存动态数据,并且在整个方案运行过程中使用这些数据

c)         容纳唯一数据记录

某些应用程序(如数据库)要求使用唯一的值,在录制期间唯一的值在脚本重播时将不再唯一。例如,假设录制了一个打开一个新的银行账户的过程,每个新账户都分配了用户未知的唯一编号,录制期间,此账号将插入聚友唯一关键字约束的表中,如果尝试按所录制的那样运行脚本,该操作将尝试按所录制的那样运行,该操作将尝试用录制的编号而不是新的唯一编号创建账户。结果将产生错误,因为该账户已经存在,如果在运行脚本时遇到了错误,请在发生错误的位置检查该脚本。大多数情况下,通过关联查询功能可以解决该问题,关联查询将一个语句的结果用作另一个语句的输入

  1. 一般的关联步骤

a)         从服务器返回的数据中选取需要进行关联的数据

b)         将该数据存入脚本的一个参数中

c)         将脚本中需要使用该数据的地方用参数替换

d)         Tips:对于web来说,一般会用一个hidden的field存放

 

LoadRunner学习笔记--未经排版

标签:

原文地址:http://www.cnblogs.com/wumingshun/p/4657814.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!