LoadRunner学习笔记--未经排版

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存放

时间: 2024-10-11 17:11:03

LoadRunner学习笔记--未经排版的相关文章

Python学习笔记--未经排版

Python 学习笔记 Python中如何做到Print() 不换行 答:Print("输出内容",end='不换行的分隔内容'),其中end=后面为2个单引号 注:在Python 2.x中,Print "输出内容", 即在输出内容后加一逗号 Python中 is 和 == 的区别 答:Python中的对象包含三要素:id.type.value 其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值 is判断的是a对象是否就是b对象,是通过id来

软件测试之loadrunner学习笔记-02集合点

loadrunner学习笔记-02集合点 集合点函数可以帮助我们生成有效可控的并发操作.虽然在Controller中多用户负载的Vuser是一起开始运行脚本的,但是由于计算机的串行处理机制,脚本的运行随着时间的推移,并不能完全达到同步.这个时候需要手工的方式让用户在同一时间点上进行操作来测试系统并发处理的能力,而集合点函数就能实现这个功能. 可通过将集合点插入到 Vuser 脚本来指定会合位置.在 Vuser 执行脚本并遇到集合点时,脚本将暂停执行,Vuser 将等待 Controller 或控

Bootstrap 学习笔记 之排版 (2 day)

Bootstrap 里面已经预先写好了很多排版样式,需要使用到相关样式的时候,只需要添加相关的类名即可,无需自己重写 这里涉及到一个Normalize.css (规范)的样式表,是github上面的一个开源项目,// 其实就是一个很好用的重置样式表; Normalize.css是一个很小的 CSS 文件,在 HTML 元素的默认样式中提供了更好的跨浏览器一致性 // 兼容各厂商浏览器; (拓展思考:可以根据自己的实际项目来删减这个样式表,避免不必要的冗余,等于是一个可定制化基础) 一.标题: h

LoadRunner 学习笔记(3)基础

LoadRunner包含的组件: Virtual User Generator 录制最终用户业务流程并创建自动化性能测试脚本,即 Vuser 脚本 Controller 组织.驱动.管理并监控负载测试 Load Generator 通过运行 Vuser 产生负载 Analysis 用于查看.剖析和比较性能结果 Launcher 使你可以从单个访问点访问所有LoadRunner组件 LoadRunner 术语 场景:场景文件根据性能要求定义每次测试期间发生的事 Vuser:在场景中,LoadRun

LoadRunner 学习笔记(2)VuGen运行时设置Run-Time Setting

定义:在Vugen中Run-Time Setting是用来设置脚本运行时所需要的相关选项 注:一般情况下,我们会接触到 Run Logic.Log.Think Time,其他的设置项基本上保持默认设置,特殊项目特殊对待. General  1.Run Logic 运行逻辑,用来设置Action部分重复运行几次 脚本如何运行的,每个action和action之间运行的先后顺序就是在这里设置的 Number of Iterations   只为Run上设置迭代次数(运行的次数),不为Init,End

bootstrap学习笔记--bootstrap排版类的使用

标题 Bootstrap 中定义了所有的 HTML 标题(h1 到 h6)的样式,这个和一般的html没啥区别.请看下面的实例: 1 2 3 4 5 6 <h1>测试1 h1</h1> <h2>测试2 h2</h2> <h3>测试3 h3</h3> <h4>测试4 h4</h4> <h5>测试5 h5</h5> <h6>测试6 h6</h6> 内联子标题 如果需要

loadrunner学习笔记四

LoadRunner中HTML模式与URL模式的区别 在Web(HTTP/HTML)录制中,有2种重要的录制模式. 用户该选择那种录制模式呢? 一)HTML-mode录制是缺省也是推荐的录制模式.它录制当前网页中的HTML动作. 在录制会话过程中不会录制所有的资源.在回放时,HTML-mode脚本积极地解析返回的信息来获得要下载的资源. HTML-mode是亦称上下文敏感方式因为它只能在先前请求的结果的上下文之内执行.由于许多的HTTP 请求数据都是从内存中取出来的,所以语句必须在正确的前个请求

loadrunner 学习笔记--AJAX(转)

用loadrunner测试WEB程序的时候总是会碰到AJAX或者ActiveX实现的功能,而通常这些功能会包含很多客户端函数(一般为JavaScript).我们该如何处理?如果从功能实现的角度去考虑这个问题,就会走入一个死胡同,因为loadrunner对于JavaScript是无能为力的.如果从loadrunner的本质出发,那么该问题就迎刃而解.因为loadrunner是基于协议来测试的,不管AJAX或者ActiveX在客户端做了多少事情,只要它最后是通过HTTP协议来发送请求的,我们模拟这个

loadrunner 学习笔记--AJAX

用loadrunner测试WEB程序的时候总是会碰到AJAX或者ActiveX实现的功能,而通常这些功能会包含很多客户端函数(一般为JavaScript).我们该如何处理?如果从功能实现的角度去考虑这个问题,就会走入一个死胡同,因为loadrunner对于JavaScript是无能为力的.如果从loadrunner的本质出发,那么该问题就迎刃而解.因为loadrunner是基于协议来测试的,不管AJAX或者ActiveX在客户端做了多少事情,只要它最后是通过HTTP协议来发送请求的,我们模拟这个