LoadRunner面试题及答案.docx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

LoadRunner面试题及答案

一、基础概念题

LoadRunner三大核心组件是什么?各自主要作用是什么?

答案:三大组件是VuserGenerator(虚拟用户生成器)、Controller(控制器)、Analysis(结果分析器)。

VuserGenerator:用来录制/编写脚本,比如录制Web页面的登录、下单流程,还能在脚本里加事务、检查点、参数化,确保脚本能模拟真实用户操作;

Controller:负责设计性能测试场景,比如设置并发用户数、加压方式(逐步加压/瞬间加压),然后执行测试,实时监控服务器CPU、内存等指标;

Analysis:测试结束后分析结果,比如生成响应时间趋势图、事务成功率报表,帮着定位瓶颈,比如响应时间过长是因为数据库慢还是网络延迟。

LoadRunner中“事务”的作用是什么?怎么在脚本里设置事务?

答案:事务是用来衡量某个业务操作的性能指标(比如“登录”“支付”),通过事务能统计该操作的响应时间、成功率。

设置方式:在脚本对应业务开始前加lr_start_transaction(事务名),业务结束后加lr_end_transaction(事务名,LR_AUTO);比如登录事务,就在“输入账号密码”前加开始事务,“登录成功跳转”后加结束事务,LR_AUTO会自动判断事务成功或失败(比如返回200状态码算成功)。

二、脚本开发题

录制脚本时怎么选择协议?举2个实际场景例子说明。

答案:协议要根据被测系统的通信方式选,核心是“抓准系统交互的协议类型”:

场景1:Web项目(比如电商网站、后台管理系统),常用HTTP/HTML协议,因为这类系统是浏览器和服务器通过HTTP/HTTPS通信,录制时能捕获表单提交、接口请求;

场景2:APP测试(比如外卖APP),如果是HTTP接口交互,用MobileApplication-HTTP/HTML协议;如果是APP和服务器用自定义TCP协议通信,就选Socket协议;

注意:录之前先确认系统架构,比如问开发“前端和后端用什么协议通信”,避免录错协议导致脚本回放失败。

参数化和关联的区别是什么?分别在什么场景下用?

答案:核心区别是“数据来源不同”——参数化是用户输入的可变数据,关联是服务器返回的动态数据。

参数化场景:多个虚拟用户执行同一操作时,输入不同数据,比如100个用户登录,每个用户用不同的账号密码,就把“用户名”“密码”设为参数,从Excel或文本文件里读取数据;

关联场景:服务器返回动态值,后续请求需要用到这个值,比如登录后服务器返回一个sessionID,后续的“查看订单”请求必须带这个sessionID,这时候就需要关联,把sessionID提取出来,传给下一个请求;

举例子:参数化是“我选不同的账号登录”,关联是“服务器给我一个临时凭证,我得带着这个凭证继续操作”。

脚本回放失败,提示“找不到指定元素”,可能是什么原因?怎么解决?

答案:常见原因有3种,对应解决方法:

原因1:录制时的页面元素路径变了(比如开发改了按钮的ID),脚本里的元素定位还是旧的;

解决:打开脚本里的web_find或web_reg_find函数,核对元素的定位方式(比如ID、name),改成新的元素路径,或者用相对路径定位,避免绝对路径;

原因2:回放时的环境和录制环境不一致(比如录制用的是测试环境1,回放用的是测试环境2,URL不同);

解决:在脚本开头改web_url里的URL,或者把URL设为参数,在Controller里统一配置环境地址;

原因3:没有加思考时间,请求发送太快,页面还没加载完就找元素;

解决:在操作前加lr_think_time(3)(表示停3秒),模拟用户等待页面加载的时间。

三、场景设计与执行题

怎么设计“逐步加压”场景?为什么要这么设计?

答案:设计步骤(以Controller为例):

打开Controller,添加之前做好的脚本,设置“虚拟用户数”(比如总用户数100);

在“ScenarioSchedule”里选“SchedulebyGroup”,设置“RampUp”(加压时间),比如“每30秒增加20个用户”,直到100个用户满;

再加“SteadyState”(稳定运行时间),比如稳定运行5分钟,最后设置“RampDown”(减压时间),比如每30秒减少20个用户;

原因:避免瞬间加压导致服务器“突然宕机”,无法定位真实瓶颈。比如直接启动100个用户,服务器CPU瞬间到100%,不

文档评论(0)

151****9429 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档