• 【转载】LoadRunner性能测试入门教程详解


    第一章:性能测试基础
    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包括事务中函数自身执行所消耗的时间。

    脚本参数化

    录制日志
    在录制和回放的时候,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是脚本运行出错设置的取值,具体取值及相应值的含义如表所示。在使用表中的参数时,即可以
    使用常量名称作为参数,也可直接使用对应常量值作为参数。


    脚本编写最佳实践
    有过开发经验的朋友者知道,程序的开发大多不是一蹴而就的,通常要以过代码评审‘编码和测试等流程后,
    才会趋于稳定。而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脚本验证流程
    ---------------------
    出自作者:tjjingpan
    来源:CSDN
    原文:https://blog.csdn.net/tjjingpan/article/details/77368066

  • 相关阅读:
    【TouchGFX】使用CubeMX创建touchgfx项目 -- 初始篇
    opencv haarcascades 下载
    更换 Anaconda 源(贼快)
    yii2 允许跨域
    sublime text 3 安装 pyv8 失败的解决办法
    win10 anaconda cuda11.1 安装 tensorlfow-gpu 环境
    nginx 403转404
    python requests 全部异常
    win10 anaconda 安装 tensorflow-gpu 及 jupyter notebook
    【PHP】自有图片服务器,图片动态裁剪缩放
  • 原文地址:https://www.cnblogs.com/kongso/p/10153191.html
Copyright © 2020-2023  润新知