美文网首页
LoadRunner面试

LoadRunner面试

作者: 無雙公子 | 来源:发表于2021-10-08 11:23 被阅读0次

    1. 什么是负载测试?什么是性能测试?    负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试,例如,访问一个页面的响应时间规定不超过1秒,负载测试就是测试在响应时间为1秒时,系统所能承受的最大并发访问用户的数量。

    压力测试通常是在高负载情况下来对系统的稳定性进行测试,更有效地发现系统稳定性的隐患和系统在负载峰值的条件下功能隐患等。

    性能测试:指在一定的约束条件下(指定的软件、硬件、网络环境等),确定系统所能承受的最大负载压力。

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

     性能测试包含负载测试、压力测试、大数据量测试、疲劳强度测试等。

    3.在进行性能测试的时候,我们需要知道一些有效的性能指标,下面我们来列出一些主要的性能指标:

    [if !supportLists]a) [endif]*TPS  每秒事务数:衡量服务器处理能力

    [if !supportLists]b) [endif]*响应时间 :各个阶段的响应时间,衡量哪部分问题比较大

    [if !supportLists]c) [endif]*hits点击率:各种点击率,衡量前端处理能力

    [if !supportLists]d) [endif]*资源利用率

      *ProcessorTime:指服务器CPU占用率,一般平均达到70%时,服务就接近饱和;

           *Memory Available Mbyte:可用内存数,如果测试时发现内存有变化情况也要注意,如果是内存泄露则比较严重;

           *Physicsdisk Time :物理磁盘读写时间情况。

    [if !supportLists]e) [endif]*服务器的连接数:这是一个闸口,服务器准备处理的连接数

    [if !supportLists]f) [endif]*服务器的超时时间:这是配置多长时间服务器就把这个请求踢掉

    [if !supportLists]g) [endif]*User 0 Connections :用户连接数,也就是数据库的连接数量;

    [if !supportLists]h) [endif]*Number of deadlocks:数据库死锁;

    [if !supportLists]i) [endif]*Butter Cache hit:数据库Cache的命中情况。

    4.什么样的系统进行性能测试?

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

    5.LoadRunner由哪些部件组成?

    主要有三部分组成:Virtual User Generator,Controller,Analysis

    6.你使用LoadRunner的哪个部件来录制脚本?

    使用Virtual User Generator录制测试脚本

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

    LoadRunner的Controller组件。

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

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

        集合点可以在服务器上创建密集的用户负载,使LoadRunner能够测试服务器在负载状态下的性能。

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

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

    场景用于模拟用户实际业务操作;

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

    1.选择场景中需要的脚本

    2.选择为目标场景,还是指定的手工场景

    3.设置用户数、设置产生负载的设备

    4.设置执行策略

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

      参数:在环境变化时必须时脚本具有环境变化的能力,就需要参数化(客户端发送到服务器端)

      1.确定要参数化的数据

      2.设定规则形式来取值

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

    关联:很多构架用sessionid等方法标识不同任务和数据,应用在每次运行时方式发送数据不完全相同,需要利用的机制对录制的脚本进行处理,这种机制叫做关联(服务端发送到客户端)

    12.你如何找出哪里需要关联?请给一些你所在项目的实例

    用户登陆,

    客户端发送请求后,服务端验证正确性后,发送给客户端sessionid,是某种规则产生。

    13.你在哪里设置自动关联选项?

    两地方可以设置

    1.设置允许录制时进行自动关联,可以自定义规则

    2.录制完成后,vuser-scan action for correlations,或在tree中找到在关联的右键关联。

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

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

    15.你在VUGen中何时选择关闭日志?何时选择标准和扩展日志?

    Run-time,log,

    当调试脚本时,可以只输出错误日志,当在场景找你管加载脚本时,日志自动变为不可用。

    Standard Log Option:选择标准日志时,就会在脚本执行过程中,生成函数的标准日志并且输出信息,供调试用。大型负载测试场景不用启用这个选项。

    扩展日志包括警告和其他信息。大型负载测试不要启用该选项。用扩展日志选项,可以指定哪些附加信息需要加到扩展日志中

    16.你如何调试LoadRunner脚本?

    VuGen有两个选项帮助调试Vuser脚本。Run Step by Step命令和断点(breakpoints)。Option对话框中的调试设置(Debug setting)项,可以确定在场景执行过程中执行轨迹范围。调试信息写在output窗口。可以用 

    lr_set_debug_messag函数在脚本中手工设置信息类型。如果我们只想接收到一小段脚本的调式信息。

    17.什么是逐步递增?你如何来设置?

    Ramp up这个选项用于逐渐增加服务器的虚拟用户数或负载量。设置一个初始值而且可以在两个迭代之间设置一个值等待。设置Ramp up,请到‘Scenario Scheduling Options’。

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

    VuGen提供了用多线程的便利。这使得在每个生成器上可以跑更多的虚拟用户。如果是以进程的方式跑虚拟用户,为每个用户加载相同的驱动程序到内存中,因此占用了大量的内存。这就限制了在单个生成器上能跑的虚拟用户数。如果按线程运行,给定的所有虚拟用户数(比如100)只是加载一个驱动程序实例到内存里。每个线程共用父驱动程序的内存,因此在每个生成器上可以跑更多的虚拟用户。

    19.响应时间和吞吐量之间的关系是什么?

    吞吐量图显示的是虚拟用户每秒钟从服务器接收到的字节数。当和响应时间比较时,可以发现随着吞吐量的降低,响应时间也降低,同样的,吞吐量的峰值和最大响应时间差不多在同时出现。

    20.什么是think timethink_time有什么用?

    思考时间是真实用户在action之间等待的时间。例如:当一个用户从服务器接收到数据时,用户可能需要在响应之前等待几分钟回顾数据,这种推迟被称为思考时间。

    21.标准日志和扩展日志的区别是什么?

    Standard Log Option:选择标准日志时,就会在脚本执行过程中,生成函数的标准日志并且输出信息,供调试用。大型负载测试场景不用启用这个选项。

    扩展日志包括警告和其他信息。大型负载测试不要启用该选项。用扩展日志选项,可以指定哪些附加信息需要加到扩展日志中

    22.actioninitend除了迭代的区别还有其他吗?

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

    相关文章

      网友评论

          本文标题:LoadRunner面试

          本文链接:https://www.haomeiwen.com/subject/jjfxoltx.html