loadrunner录制脚本、参数化、设置场景和性能指标分析

loadrunner录制脚本、参数化、场景设置和结果分析

1.环境准备和loadrunnner介绍
(1)下载地址:https://yunpan.360.cn/surl_yFxrchXbfKT (提取码:f10c)

 **安装loadrunner12安装的时候的坑**
  • 安装的时候确定之前的loadrunner已经被卸载完全
  • 安装的时候不要联网(或者退出360)
  • 安装的时候在CA证书选择的时候(没有证书,就不要勾选)

(2)loadrunner介绍

  **loadrunner包含三部分:**
  • Virtual UserGenerator:用于创建脚本
  • Controller:用于设计并运行场景
  • Analysis:用于分析场景

(3)基础概念介绍

  • 事务:是LoadRunner度量系统性能指标的唯一手段;没有事务则没有办法衡量系统的响应时间,我们在操作之前插入一个事务开始标识,在操作完成后插入一个事务结束表示,这样我们就知道了这个操作所花费的时间。
  • 集合点:执行负载测试时,需要模拟系统上有较重的用户负载。要实现此操作,可以同步 Vuser 以便恰好在同一时刻执行任务。如果要求系统能够承受1000 人同时提交数据,可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,从而达到计划中的需求
      注意:只能向 Action 部分(而不是 init 或 end 部分)添加集合。
  • 思考时间:如果要精确模拟 用户的行为,录入填写提交的内容,从列表中下拉搜索选择特定的值等,不会记录用户的客户端操作,而是记录了用户这段时间,成为思考时间(Think-time),因为用户的这些客户端操作不会影响服务端,只是让服务器端在这段时间内没有请求而已。所以加入思考时间就能模拟出熟练的或者生疏的用户操作,接近实际对于服务端的压力。

2.loadrunner测试流程

  录制脚本-->参数化-->设计场景,设置负载-->运行场景 -->分析结果

1. 录制脚本

录制过程如果打不开浏览器,或者获取不到事务(录制的时候关掉360 ,打开Fiddler

(1) 选择脚本类型,给脚本命名
loadrunner录制脚本、参数化、设置场景和性能指标分析
(2)设置录制的网址、选择自己安装的chrome的位置
loadrunner录制脚本、参数化、设置场景和性能指标分析
(3)录制过程–选择将操作录入添加事务
loadrunner录制脚本、参数化、设置场景和性能指标分析

(4)回放脚本loadrunner录制脚本、参数化、设置场景和性能指标分析

2. 参数化–可以一个文件中一个参数,也可以一个文件中多个参数

(1)创建参数—选择要参数化的内容右键创建

loadrunner录制脚本、参数化、设置场景和性能指标分析
(2)编辑参数–右键选择

loadrunner录制脚本、参数化、设置场景和性能指标分析
或者按照图上选择
loadrunner录制脚本、参数化、设置场景和性能指标分析
(3)编辑参数—参数设置
loadrunner录制脚本、参数化、设置场景和性能指标分析
loadrunner录制脚本、参数化、设置场景和性能指标分析

(4)通过notepad编辑参数
loadrunner录制脚本、参数化、设置场景和性能指标分析
(5)也可以提前准备文件,直接选择
loadrunner录制脚本、参数化、设置场景和性能指标分析

(6)设置运行迭代次数、思考时间等

  • Think Time:这个选为Ignore think time,否则结果中的事务响应时间很大,包含了这个思考时间。对一个系统用同一策略进行两次测试时,忽略思考时间将使测试结果更准确。
  • 打开验证点检查功能:在Preferences选项中,给Enable Image and text check打勾,否则脚本执行时不会去检查验证点的。
  • 设置Action的迭代次数:在Run Logic中,单独设置脚本中每个动作的执行次数。例如在查询日记录详情脚本中,需要模拟一次登录,查询10次详情的情况,就需要设置Action动作迭代10次。
    loadrunner录制脚本、参数化、设置场景和性能指标分析
    在VuGen中也有Run-Time Setting,但是在那里设置好的参数不会被带到Controller中,需要重新设置。对每一个脚本都需要设置。

4.设置运行场景–打开controller

(1)手动压力测试
loadrunner录制脚本、参数化、设置场景和性能指标分析
初始Vuser的策略:可选项有“在运行前初始化每个Vuser”、“同时初始化所有的Vusers”、“间隔xxx时长初始化xxx个Vusers”。
loadrunner录制脚本、参数化、设置场景和性能指标分析
启动Vusers的策略:可设置项有“启动xxx个Vusers”、“每间隔xxx时长启动xxx个Vusers”。
loadrunner录制脚本、参数化、设置场景和性能指标分析
场景运行持续时长:可设置项有“场景运行结束后停止”、“场景运行xxx时长” Global
loadrunner录制脚本、参数化、设置场景和性能指标分析
停止Vusers的策略:可设置项有“同时停止所有Vusers”、“每间隔xxx时长停止xxx个Vusers”。
loadrunner录制脚本、参数化、设置场景和性能指标分析
(2)基于目标的压力测试

loadrunner录制脚本、参数化、设置场景和性能指标分析
按照每秒点击点数去测试其他的值
loadrunner录制脚本、参数化、设置场景和性能指标分析
loadrunner录制脚本、参数化、设置场景和性能指标分析

  1. 运行场景

loadrunner录制脚本、参数化、设置场景和性能指标分析

  1. 结果分析报告

loadrunner录制脚本、参数化、设置场景和性能指标分析
loadrunner录制脚本、参数化、设置场景和性能指标分析

补充知识–性能参数介绍

通常需要监控的性能指标有:

  1. 正在运行Vuser:查看虚拟用户的运行情况,是否与计划设置的一致。
  2. 事务响应时间:用以监控各事务的响应时间运行情况。
  3. 每秒点击次数:属于网络资源图,每秒点击次数图显示了场景运行当中每一秒内,虚拟用户向Web服务器提交的HTTP请求数。
  4. 吞吐量:属于网络资源图,吞吐量显示了场景运行当中每一秒内服务器上的吞吐量,单位为字节数。
  5. Windows资源:一般需要监控数据服务器和应用服务器上的各项性能计数器随着压力测试的执行情况如何变化,为性能瓶颈分析提供数据依据。一般需要添加的计数器有:

(1)监控内存的计数器有:

  • Process(进程)性能对象下有几个计数器可以帮助判断内存泄露问题:Handle Count(句柄数量)、Thread Count(线程数量)、Virtual Bytes(虚拟内存字节数)、Working Set(工作集,即和当前进展有关的那一部分物理内存)、Private Bytes(进程分配的私有数据字节数量),一般情况下,虚拟内存字节数应该远大于工作集字节数,如果两者变化规律相反,比如说工作集增长较快,虚拟内存增长较少,则可能说明出现了内存泄露的情况,对于所有性能计数器,如果在测试期间内数值持续增长,而且测试停止后,维持在高水平,则也说明存在内存泄露。

  • Memory和Process两个性能对象下的几个计数器对分析内存瓶颈有很大帮助:Available Mbytes(显示了当前系统可用的内存数值,如果经常性的可用内存小于总物理内存的一半,说明系统负担有点重,可以考虑增加内存)、Pages/sec(是每秒Pages Input和Pages Output的和)、 Pages Input/sec(程序在硬页面错误发生时从虚拟内存中每秒获得所需数据页面的数目)、Page Reads/sec(程序通过线路B读取虚拟内存。平均数值长时间超过5,表明内存存在瓶颈)、 Page Faults/sec(程序每秒钟在工作集中找不到所需要数据的次数,等于硬页面错误次数和软页面错误次数相加之和)。
    如果Page Reads/sec数值经常性的超过5,或者Pages Input/sec比较大,比如平均值达到10或者更多,或者Pages Input/sec和Page Faults/sec之间的比率超过50%,都说明内存给系统带来了问题
    如果Page Reads/sec数值上比Pages Input/sec要大,说明系统1秒钟读取了多个页面,也说明内存会给系统性能带来问题。

(2)监控CPU的计数器有

  • Process性能对象下的处理器时间百分比%Processor Time(_total),一般平均不要超过70%,最大不要超过90%

    注意事项:
    应确保度量比例为1,否则测试结果的百分比会出现异常显示。
    System系统对象下的每秒上下文切换Context Switches/sec不要大于10000到20000。
    System系统对象下的处理器队列长度Processor Queue Length不要大于处理器数目+1。

(3)监控磁盘的计数器

  • LogicalDisk性能对象下的%Free Space(空余空间)计数器。它表示当前没有占用的磁盘占总逻辑磁盘总容量的百分比。如果小于15,则说明磁盘空间不足。

  • PhysicalDisk性能对象下的%Idle Time(空闲时间)计数器。它表示在当前观察时间间隔内,磁盘空闲的时间。如果数值小于20,则说明磁盘工作状态较重,需要考虑替换成读写速度较快的磁盘。

  • PhysicalDisk性能对象下的Avg.Disk Sec/Read(平均读取时间)计数器。它表示每次从磁盘读取数据所花费的秒数。如果这个数值大于25毫秒(1秒=1000毫秒),则说明磁盘读取有所延迟。

  • PhysicalDisk性能对象下的Avg.Disk Sec/Write(平均写入时间)计数器。它代表了每次向磁盘写入数据所花费的秒数。与读取时间的判断标准一致。

  • PhysicalDisk性能对象下的Avg.Disk Queue Length(平均磁盘队列长度)计数器。它指出当前有多少I/O操作在等待磁盘进行处理。如果数值大于物理磁盘盘片数量+2,则会产生不同程度的延迟。

  • PhysicalDisk性能对象下的Avg.Disk Byte/Transfer计数器。它代表了在写入或读取操作时从磁盘上传送或传出字节的平均数。如果Avg.Disk Byte/Transfer数值较低,但%Idle Time数值却很低,Avg.Disk Queue Length的值又很高,则很大程度上说明磁盘性能存在瓶颈:磁盘空闲时间很少,忙于处理读写操作,但等待的工作却很多。但如果Avg.Disk Queue Length较高,Avg.Disk Byte/Transfer也比较高,则不能说明磁盘的问题,很可能是内存不足造成的数据排队等待进入磁盘的现象。