LoadRunner性能测试入门教程1

转载:https://blog.csdn.net/tjjingpan/article/details/77368066

第一章:性能测试基础
1-1. 大话性能测试
性能测试
使用自动化测试工具对产品按一定的性能指标进行测试,解决性能瓶颈,给用户最好的体验。
性能测试的时代背景,作用
BAT
网站(baidu),软件(T),游戏......
金融( 银行,证券系统),教育(教务系统),交通(12306)
性能测试基本流程

性能测试需求分析--->性能测试计划--->  性能测试准备

1、性能测试需求分析
  • 项目经理
  • 业务/架构专家
  • 产品经理
  • 高级性能测试工程师
  • 开发经理
2、性能测试计划
高级性能测试工程师
  • 项目经理
  • 架构师
  • 产品经理
3、性能测试准备
  • 性能测试工程师
  • 外部支持(网络工程师,系统管理员)
开发脚本/执行测试<--->测试结果分析<------->系统调优<-----> 编写测试报告


1、开发脚本/执行测试
  • 高级性能测试工程师
  • 性能测试工程师

2、测试结果分析
  • 高级性能测试工程师
  • 外部支持 (系统管理员、DBA)

3、系统调优
  • 架构师
  • 产品经理
  • 高级性能测试工程师
  • 外部支持(DBA)
二、web性能测试常用指标
1、响应时间
相应时间:2-5-8原则
2、吞吐量(Throughput)
3、资源使用率(Resource utilization)
CPU,内存,磁盘I/O,网络I/O
4、每秒点击数(Hits per second)
5、并发用户数(Concurrent users)
三、LoadRunner软件
性能测试利器,LoadRunner.
http://127.0.0.1:1080/WebTours/
用户名:jojo
密码:bean

测试需求:登录webTours订票网站,预定一张机票后退出。
录制脚本
1、启动web服务器
2、打开Virtual User Generator界面
3、选择脚本协议
4、进行页面操作
5、回放脚本(Replay)
回放是验证脚本是否能够正常运行。
验证脚本
回放脚本

设置关联
许多应用程序都使用动态值,每次使用应用程序时这些值都会变化。例如,有些服务器会为每个新会话分配一个唯一的会话ID.回放录制的会话时,应用程序创建的新会话ID与录制的会话ID不同>LoadRunner通过关联解决了这种问题。关联动态值(在本例中为会话ID)保存到参数中。运行模拟场景时,Vuser并不使用录制的值,而是使用服务器分配的新会话ID.
->设置webtours网站,录制脚本使用用户登录时会产生会话ID,从而导致回放失败。
-->找到关联参数,进行手动关联,现次回放。

html模式与url模式
在默认情况下,选择"HTML-based script",说明脚本采用HTML页面的形式来表示,这种方式的脚本容易维护,容易理解,推荐以这种方式录制。
"URL-based script0"  说明
脚本中的表示采用基于URL的方式,所有的HTTP请求都会被录制下来,单独生成函数。
所以URL模式生成的脚本会显得有些杂乱。URL录制的脚本中web_concurrent_start函数是并发组开始的标记,web_comcurrent_end是并发组的结束标记。在并发组中的函数不是立即执行的。在并发组开始时,所有的函数首先被记录下来,当并发组结束时,所有的函数并发执行。
选择HTML还是URL录制,有以下参考原则:
(1)基于浏览器的应用程序推荐使用HTML-based script.
(2)不是基于浏览器的应用程序推荐使用URL-based script.
(3)如果基于浏览器应用程序中包含了JavaScript并且该脚本向服务器器产生了请求,使用URL-based script方式录制。
(4)基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-based script方式录制。

添加事务
1、事务 (Transaction)是这样一个点,我们为了衡量某个操作的性能,需要在操作的开始和结束位置插入这样一个范围,这就定义了一个transaction.
2、原因
从性能测试的角度出发,我们需要知道不同操作所花费的时间,这样我们就可以衡量不同的操作对被测系统所造成的影响,那么我们如何 知道不同的操作所花费的时间,这就用到了事务,我们在操作这前插入一个事务开始标识,在操作完成后插入一个事务结束表示,这样我们就知道了这个操作所花费的时间。
3、事务的作用:LoadRunner运行该事务的开始点时,LoadRunner就会开始计时,直到运行到该事务的结束点,计时结束,这个事务的运行时间在LoadRunner的运行结果中会有反映。通谷的讲LoadRunner中的事务就是一个计时标识,LoadRunner在运行过程中一旦发现事务标识,就开始计时,一旦发现事务的结束表示,则计时结束,这个过程中得到的赶时间即为一个事务时间。通常事务时间所反映的是一个操作过程的响应时间。
4、函数构造
事务开始函数共包括一个参数,就是事务的名称,事务结束函数共包括两个参数,第一个参数是事务的名称,第二个参数是事务的状态。事务的状态可以为LR_PASS:返回"Pass"返回代码:LR_FAIL;返回"Fail", 返回代码:LR_STOP;返回"Stop";返回代码:LR_AUTO,自动返回检测到的状态。
Duration表示事务的完成响应时间,wasted time包括事务中函数自身执行所消耗的时间。

脚本参数化

LoadRunner性能测试入门教程1
LoadRunner性能测试入门教程1


录制日志
在录制和回放的时候,VU会分别把发生的事件记录成日志文件,这些日志文件有利于我们跟踪VU和服务器的交互过程。
1.回放日志(Relay Log)
脚本回放运行时的输出都记在这个Log里。
“输出”窗口的“回放日志”显示的消息用于描述Vuser运行时执行的操作。该信息可说明在方案中执行脚本时,该脚本的运行方式。脚本执行完成后,可以检查“回放日志”中的消息,以查看脚本在运行时是否发生错误。
“回放日志” 中使用了不同颜色的文本
黑色:标准输出消息
红色:标准错误消息
绿色:用引号括起来的文字字符串(例如URL)
蓝色:事务信息(开始、结束、状态和持续时间)
橙色:迭代次数信息
如果双击操作名开始的行,光标将会跳到生成的脚本中的相应的步骤上。

2、录制日志
当录制脚本时,Vugen会捕获Client端(浏览器)与Server端(服务器)之间的对话,
并且通通记录下来,产生脚本。在Vugen的Recording Log中,我们可以找到浏览器与服务器之间所有的对话,
包含通信内容、日期、时间、浏览器的请求、服务器的响应内容等。
3、产生日志
产生日志记录了脚本录制的设置、网络事件到脚本函数的转化过程。

移动APP脚本录制
安装LR_03103_patch_4
Mobile App(HTTP/HTML)
Java Vuser虚拟用户
Java vuser 是自定义虚拟脚本,脚本中可以使用标准的java语言
环境配置
1、安装jdk,注意:lr11最高支持1.6
2、配置环境变量
3、在lr选择java Vuser协议
脚本结构
一般在init中编写初始化脚本,在action中编写业务流程,在end编写释放资源的内容。
适用范围
1、不太适合录制的业务功能性能测试,如视频播放,http文件下载
2、利用java语言开发的应用系统。
错误处理函数
 VuGen提供了错误处理函数lr_continue_on_error,用来在脚本中实时修改Vuser的出错设置.
lr_contine_on_error函数语法结构如下:
void lr_continue_on_error(int value);
value是脚本运行出错设置的取值,具体取值及相应值的含义如表所示。在使用表中的参数时,即可以
使用常量名称作为参数,也可直接使用对应常量值作为参数。
LoadRunner性能测试入门教程1

脚本编写最佳实践
有过开发经验的朋友者知道,程序的开发大多不是一蹴而就的,通常要以过代码评审‘编码和测试等流程后,
才会趋于稳定。而VU脚本本身虽不算复杂,但VU脚本运行往往涉及多个因素,也会经常出问题。提早发现和解决脚本中的问题,不仅从技术上下工夫,在流程上也要做文章。通常验证一个脚本的比较好的过程是这样的:
1、Generate:录制或开发脚本。
2、SUSI(Single User Singel Iteration,单用户单循环):运行录制生成的脚本,解决可能存在的关联问题。
3、SUMI(Single User Multi Iterations,单用户多循环):参数化脚本,在Run-time中设置Iteration,再次运行,验证参数化问题。
4、MUSI(Multi User Single Iteratins,多用单循环):Controller里多用运行脚本,验证脚本中可能的多线程同步问题。
5、MUMI(Multi User Multi Iteration,多用户多循环):即性能测试开始。
其中1~3是在VU中进行的,而4~5是在Controller是进行的。

LR常见报错处理方法
Virsual User Generator小结
1、脚本脚本,App脚本,java脚本
2、回放验证
关联设置,日志分析
3、脚本增强
添加事务,参数化,内容检查,错误处理
4、负载准备
SUSI,SUMI,MUSI,MUMI脚本验证流程







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LoadRunner性能测试工具实战视频教程【全套26集】 随机函数 在软件测试工具中如何巧用LoadRunner的随机函数。 LoadRunner有自带的随机函数,如果巧妙的加以采用,能解决一些看似很困难的实际问题。 一个项目的性能测试。与数据库直连,根据外部传入的SQL ID和SQL参数,从指定数据库中读取SQL模版,拼装成真实的SQL语句、执行,并将得到的结果放入缓存中。目的是减少数据库的压力。 该系统将支撑大量的SQL操作,性能自然成为备受关注的焦点之一。 由于它跟SQL语句相关,在真实环境下,同一时间可能执行着不同类型的SQL,即便是同一类型,其参数也各式各样。那么,怎样才能模拟出最符合实际情况的性能测试场景呢? 首先设计场景,即,在LoadRunner中按照比例随机取到某一类型的SQL,再随机传入参数给它,让最终的每条SQL都是随机生成,各不相同。 从场景中,可以看到,此处涉及双重随机。只采用loadruner的参数设置是无法实现的。此时需要想办法先按设定好的比例随机取到SQL,然后在每条SQL上随机取参数列表中的参数。 于是想到了loadrunner的随机函数。先实现随机取SQL ID,之后再在特定的SQL中随机取参数列表中的参数。 LoadRunner中,随机函数是rand(),它用来产生0到rand_max之间的随机整数。函数原型是 int rand (void); 然而调用rand之前,必须给随机数产生一个随机种子。这个种子由srand()函数产生。其原型是 int srand (seedTime); 2 分析占用率 1. 平均事务响应时间 Average Transaction Response Time 优秀:10s 2. 每秒点击率 Hits per Second LoadRunner分析页面 LoadRunner分析页面 当增大系统的压力(或增加并发用户数)时,吞吐率和TPS的变化曲线呈大体一致,则系统基本稳定。若压力增大时,吞吐率的曲线增加到一定程度后出现变化缓慢,甚至平坦,很可能是网络出现带宽瓶颈,同理若点击率/TPS曲线出现变化缓慢或者平坦,很可能是服务器响应时间增加,观察服务器资源使用情况,确定是否是服务器问题。 3. 请求响应时间 Time to Last Byte 4. 每秒系统处理事务数 Transaction per second 5. 吞吐量 Throughout 6. CPU利用率 Processor / %Processor Time 好:70% 坏:85% 很差:90%+ 7. 数据库操作消耗的CPU时间 Processor / %User Time 如果该值较大,可以考虑是否能通过友好算法等方法降低这个值。如果该服务器是数据库服务器, Processor\%User Time 值大的原因很可能是数据库的排序或是函数操作消耗了过多的CPU时间,此时可以考虑对数据库系统进行优化。 8. 核心态CPU平均利用率 Processor /%Privileged Time 如果该参数值和"Physical Disk"参数值一直很高,表明I/O有问题。可考虑更换更快的硬盘系统 9. 处理队列中的线程数 Processor / Processor Queue Length 如果该值保持不变(>=2)个并且%Processor Time 超过90%,那么可能存在处理器瓶颈。如果发现超过2,而处理器的利用率却一直很低,那么或许更应该去解决处理器阻塞问题,这里处理器一般不是瓶颈。 10. 文件系统缓存 Memory / Cache Bytes 50%的可用物理内存 11. 剩余的可用内存 Memory / Avaiable Mbytes 至少要有10% 的物理内存值 12. 每秒下载页数 Memory / pages/sec 好:无页交换 坏:CPU每秒10个页交换 很差:更多的页交换 13. 页面读取操作速率 Memory / page read/sec 如果页面读取操作速率很低,同时 % Disk Time 和 Avg.Disk Queue Length的值很高,则可能有磁盘瓶径。但是,如果队列长度增加的同时页面读取速率并未降低,则内存不足。 14. 物理磁盘利用率 Physical Disk / %Disk Time 好:<30% 坏:<40% 很差:<50%+ 15. 物理磁盘平均磁盘I/O队列长度 Physical Disk / Avg.Disk Queue Length 该值应不超过磁盘数的1.5~2 倍。要提高性能,可增加磁盘 16. 网络吞吐量 Network Interface / Byt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值