zoukankan      html  css  js  c++  java
  • loadrunner总结

    loadrunner总结

    1.性能测试包含了哪些测试(至少举出3种)

      负载测试,压力测试,疲劳强度测试,大数据量测试,并发测试。

    2.负载测试和压力测试的区别

    性能测试: 是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

    负载测试:是一种性能测试,指数据在超负荷环境中运行,程序是否能够承担。

    压力测试:是在一定的负荷条件下,对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等

    3.简述性能测试的步骤

    1.分析产品结构,明确性能测试的需求,包括并发、极限、配置和指标等方面的性能要求,必要时基于LOAD测试的相同测略需同时考虑稳定性测试的需求。

    2.根据需求分析应用场景和用户数据,细分用户行为和相关的数据流,确定测试点或测试接口,列示系统接口的可能瓶颈,一般是先主干接口再支线接口,并完成初步的测试用例设计。

    (3.依据性能测试需求和确定的测试点进行测试组网设计,并明确不同组网方案的重要程度或优先级作为取舍评估的依据,必要时在前期产品设计中提出支持性能测试的可测试性设计方案和对测试工具的需求。)

    4.完成性能测试用例设计、分类选择和依据用户行为分析设计测试规程,并准备好测试用例将用到的测试数据

    5.确定采用的测试工具

    6.录制和调试脚本,进行初验测试,以主干接口的可用性为主,根据测试结果分析性能瓶颈,通过迭代保证基本的指标等测试的环境。

    7.执行脚本,迭代进行全面的性能测试,完成计划中的性能测试用例的执行。

    8.分析测试结果,完成性能测试评估报告。

    4.负载测试的流程

     制定性能测试计划—>开发测试脚本—>设计测试场景—>执行测试场景—>监控测试场景—>分析测试结果

    5. 什么时候可以开始执行性能测试?

     功能测试通过;一般需要进行性能测试的系统,都是用户量比较大、业务使用比较频繁、比较重要的功能模块。

    6. LoadRunner由哪三个部件组成?

    Virtual User Generator录制测试脚本,Controller生成负载测试,Analysis测试结果分析

    7. LoadRunner的哪个部件可以模拟多用户并发下回放脚本?

      LoadRunner的Controller组件。

    8.什么是集合点?设置集合点有什么意义?Loadrunner中设置集合点的函数是哪个?

       在性能测试过程中,需要模拟大量用户在同一时刻,访问系统并同时操作某一任务,可以通过配置集合点来实现,多个用户同时进行某操作;

       可以在服务器上创建密集的用户负载,使LoadRunner能够测试服务器在负载状态下的性能.(程序所能承载的最大用户数,以及超负荷下的性能)

       设置集合点函数:lr_rendezvous("Meeting");  // Meeting是集合点名称

    9. 什么是场景?场景有哪些?如何设置场景?

       场景:执行脚本的环境配置,用于模拟用户实际业务操作;

         LoadRunner中场景有手工场景和面向目标的场景。

        设置场景:选择场景类型、设置运行时设置、模拟用户数、加减压方式、持续时间,配置负载生成

         1.选择场景中需要的脚本
         2.选择为目标场景,还是指定的手工场景
         3.设置用户数、设置产生负载的设备
         4.设置执行策略

    10. 为什么要创建参数?如何创建参数?

      参数:在环境变化时必须时脚本具有环境变化的能力,就需要参数化(客户端发送到服务器端)比如登录界面
      1.确定要参数话的数据
      2.设定规则形式来取值

    11. 什么是关联?请解释一下自动关联和手动关联的不同。

    关联:很多构架用sessionid等方法标识不同任务和数据,应用脚本在每次运行时方式发送数据不完全相同,需要利用的机制对

    录制的脚本进行处理,这种机制叫做关联(服务端发送到客户端)

    12.哪个函数是用来截取虚拟用户脚本中的动态值?(手工关联)

    web_reg_save_param()函数主要根据需要做关联的动态数据前面和后面的固定字符串来识别、提取动态数据,所以在做关联时,

    需要找出动态数据的左、右边界字符串。

    13.你如何调试LoadRunner脚本?
    VuGen有两个选项帮助调试Vuser脚本。Run Step by Step命令和断点(breakpoints)。Option对话框中的调试设置(Debug setting)项,

    可以确定在场景执行过程中执行轨迹范围。调试信息写在output窗口。可以用 lr_set_debug_messag函数在脚本中手工设置信息类型。

    14.什么是逐步递增?你如何来设置?
    Ramp up这个选项用于逐渐增加服务器的虚拟用户数或负载量。设置一个初始值而且可以在两个迭代之间设置一个值等待。设置Ramp up,

    请到‘Scenario Scheduling Options’。

    15. 以线程方式运行的虚拟用户有哪些优点?

    VuGen提供了用多线程的便利。这使得在每个生成器上可以跑更多的虚拟用户。如果是以进程的方式跑虚拟用户,为每个用户加载相同的驱动程序到

    内存中会占用了大量的内存。就限制了在单个生成器上能跑的虚拟用户数。如果按线程运行给定的所有虚拟用户数只是加载一个驱动程序实例到内存里。

    16. 当你需要在出错时停止执行脚本,你怎么做?
    lr_abort函数放弃虚拟用户脚本的执行。说明虚拟用户停止Action的执行,直接执行vuser_end然后结束执行。在出现错误情况下想手工放弃脚本的执行,

    这个函数是有用的。用这个函数停止脚本时,Vuser被指定为“Stopped”状态。为了这个函数起作用,开始时候就不能选择Run-Time Settings中的

    Continue on error选项。

    17. 响应时间和吞吐量之间的关系是什么?(两者相辅相成)
    吞吐量:每秒钟从服务器接收到的字节数。吞吐量的峰值和最大响应时间差不多在同时出现。

    吞吐率:单位时间内传送数据的平均速率

    18.说明一下如何在LR中配置系统计数器?
    通过Web资源监视器,利用这些监控器可以分析web服务器的吞吐量、点击率、每秒http响应数以及每秒下载的页面数。

    19.标准日志和扩展日志的区别是什么?
    Standard Log Option:选择标准日志时,就会在脚本执行过程中,生成函数的标准日志并且输出信息,供调试用。大型负载测试场景不用启用这个选项。
    扩展日志包括警告和其他信息。大型负载测试不要启用该选项。用扩展日志选项,可以指定哪些附加信息需要加到扩展日志中

    20.解释以下函数及他们的不同之处。

    lr_debug_message 函数在指定的消息级别

    // 处于活动状态时发送一条调试消息。如果指定的

    // 消息级别未处于活动状态,则不发出消息。

    Lr_output_message 要发送不是特定错误消息的特殊通知,

    Lr_error_message  函数将错误消息发送到// 输出窗口和 Vuser日志文件

    Lrd_stmt lrd_exec 函数执行 lrd_stmt设置的 SQL 语句。
    Lrd_fetch  函数从结果集中提取后续若干行
    result set. 
    函数准备用于
    // 通过光标输出字符串(通常为 SQL语句)
    // 的下一结果集。对于 CtLib,它发出 ct_result
    // 命令,并且在 ODBC中它运行用于当前数据库

    21.action和init、end除了迭代的区别还有其他吗?

    init、end中不能使用集合点、事务等, init、end只执行一次。

    22.生成WEB性能图有什么意义?大概描述即可。

    可以很直观的看到,在负载下系统的运行情况以及各种资源的使用情况,可以对系统的性能瓶颈定位、性能调优等起到想要的辅助作用。

    23.性能瓶颈分析方法?

    分析的方法:
    整个系统架构分析,系统响应时间消耗,利用图表分析
    查看事务响应时间,通过事务摘要图分析事务响应时间,那个消耗最大(通过小用户量和大用户量的响应时间分析,查看那个事务响应时间最高),确定哪部分功能是性能的瓶颈,分析window resource图表,查看cpu
    使用下列计数器标识cpu瓶颈
    Processor Interrupts/sec
    Processor % Processor Time
    Process(process) % Processor Time
    System Processor Queue Length

    • 查找瓶颈时按以下顺序,由易到难。
    服务器硬件瓶颈-〉网络瓶颈(对局域网,可以不考虑)-〉服务器操作系统瓶颈(参数配置)-〉中间件瓶颈(参数配置,数据库,web服务器等)-〉应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)

    对一些要求低的,我们分析到应用系统在将来大的负载压力(并发用户数、数据量)下,系统的硬件瓶颈在哪儿就够了。

    24. 如何理解TPS?
    答:TPS主要还是体现服务器对当前录制的事务的处理速度快慢。TPS高并不代表性能好。
    TPS 是Transactions Per Second 的 缩 写,也就是事务数/ 秒。

    2. 1.并发数

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

          跟服务器有交互,提交,点击等,并且是在线

          有数据传向服务器才行

    2.点击率:

           每秒发送的HTTP请求的数量

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

    3.请求响应时间

           client端发出请求到得到响应的整个时间

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

                 C----->S

                  <------

                    network

    4.事物请求响应时间

            完成这个事务所用的时间

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

    5.吞吐率

           单位时间在网络上传输的数据量

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

    6.吞吐量

           在网络上传输的数据总量

                C<------S

    7.TPS

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

    8.资源利用率

            对不同资源的使用程度,比如服务器的CPU,内存等都需要在性能测试时监视

    25..面向目标类型

        1.如果你知道可运行的各种业务流程的 Vuser总数,则可以使用虚拟用户目标类型、

        2.如果你知道服务器的稳定性,可以使用每秒点击次数,每分钟页面数或每秒事务数的目标类型、

        3.如果你知道锁需要完成事务的响应事件,则可以使用事务响应目标类型。例如你希望你的客户在5秒

          内登录到电子商务站点,请将可接受的最长事务响应事件指定为5秒,并查看实际可以处理的Vuser数

     复习:

    1.QTP:实例flight,四则运算。

    2.loadrunner:实例webtours

    3.QC安装环境:oracle

  • 相关阅读:
    oracle 聚合函数 LISTAGG ,将多行结果合并成一行
    oracle 数据库对于多列求最大值
    Java 简单的rpc 一
    centos7 安装php7
    win10下VM 中centos 安装共享文件
    CentOS7 cannot find a valid baseurl for repo base
    分布式事务
    利用虚拟映射文件加密大文件
    动态代理
    c++ 11 lambda表达式
  • 原文地址:https://www.cnblogs.com/wanglisong/p/7151030.html
Copyright © 2011-2022 走看看