80 个 LoadRunner 面试常见问题与答案(2025 年)
以下是 LoadRunner 面试问题和答案,适用于应届生和有经验的求职者,帮助他们获得梦想的工作。
LoadRunner 面试问题和答案(适用于应届生)
1) 您在 LoadRunner 中使用了哪些组件?
LoadRunner 的主要组件有:
- Vuser 生成器 – 用于生成脚本
- 控制器 – 用于创建和执行场景
- 分析器 – 用于分析结果。
在这段视频教程中了解更多关于 LoadRunner 及其架构的信息。
👉 免费 PDF 下载:LoadRunner 面试问题与答案
2) LoadRunner 支持哪些协议?
截至 LoadRunner 9.5,支持以下协议。未来的版本会增加更多。面试官并不要求您说出所有协议,只需说出其中几个(比如 5-7 个)即可。
- 应用程序部署解决方案:适用于 Citrix 协议。
- 客户端/服务器:适用于 DB2 CLI、DNS、MS SQL、ODBC、Oracle (2 层)、Sybase
Ctlib、Sybase Dblib 和 Windows Sockets 协议。 - 自定义:适用于 C 模板、Visual Basic 模板、Java 模板、
Javascript 和 VBScript 类型的脚本。 - 分布式组件:适用于 COM/DCOM、Corba-Java 和 Rmi-Java 协议。
- 电子商务:适用于 FTP、LDAP、Palm、Web (HTTP/HTML)、Web Services 和双重 Web/Winsocket 协议。
- 企业 Java Beans:适用于 EJB 测试 和 Rmi-Java 协议。
- ERP/CRM:适用于 Baan、Oracle NCA、Peoplesoft-Tuxedo、Peoplesoft 8、
SAPGUI、SAP-Web 和 Siebel (Siebel-DB2CLI、Siebel-MSSQL、Siebel-Web 和 Siebel-Oracle) 协议。 - 传统:适用于终端仿真 (RTE)。
- 邮件服务:Internet Messaging (IMAP)、MS Exchange (MAPI)、POP3 和 SMTP。
- 中间件:Jacada 和 Tuxedo (6, 7) 协议。
- 流媒体:适用于 MediaPlayer 和 RealPlayer 协议。
3) 什么是 LoadRunner Agent?
Agent 是主机和控制器之间的接口。
4) 开发 Vuser 脚本的流程是什么?
开发 Vuser 脚本有四个步骤。
1- 录制 Vuser 脚本。
2- 回放/增强录制的 Vuser 脚本。
3- 定义各种运行时设置并检查
4- 将脚本纳入 LoadRunner 场景
在此处的视频教程中了解更多关于 Vuser 脚本开发的信息。
5) 负载测试需要多少个 Vuser?
这本质上是一个陷阱问题。
所需的 Vuser 数量取决于您测试的系统、网络配置、硬件设置、内存、操作系统、软件应用程序以及性能测试的目标。Vuser 的数量没有通用值。
6) 以进程和线程方式运行 Vuser 有什么区别?哪种运行 Vuser 的方式更有优势?
当 Vuser 以进程方式运行时,每个 Vuser 都会加载相同的驱动程序到内存中。这将占用大量内存,并限制您在单个生成器上运行的 Vuser 数量。
当 Vuser 以线程方式运行时,给定数量的 Vuser 共享一个驱动程序实例。您可以使用多线程模式在单个生成器上运行多个 Vuser。
7) “Vuser-init”有什么意义?
Vuser-init 记录了实际应用程序运行之前的预操作,也称为初始化操作。
8) 什么是扩展日志?
扩展日志将存储高级跟踪返回的数据、参数替换以及根据您在运行时设置中选择的选项而定的许多其他信息。
9) 为什么要创建参数?
创建参数时,您将替换脚本中的硬编码值并将其替换为参数。这允许单个 Vuser 多次运行,并在每次运行中使用不同的数据。它有助于模拟更真实的服务器需求,因为它阻止服务器缓存结果。
在这篇视频教程中了解更多关于参数化的信息。
10) 如何将脚本分成多个 Action?为什么?
我将根据功能将脚本分成多个 Action。例如,一个 Action 用于登录应用程序,另一个 Action 用于预订,依此类推。
Action 提高了代码可重用性,减少了维护时间,从而降低了成本。
11) 如何在 LoadRunner 中设置 Vuser 数量?
您可以在控制器部分创建场景时设置 Vuser 数量。控制器部分还提供了许多其他高级选项,例如 Vuser 的渐增和渐减。
了解更多关于控制器和场景创建的信息。
12) 什么是监视器?
监视器用于“监视”性能瓶颈。它们在 LoadRunner 的控制器部分中使用。
13) LoadRunner 中有哪些类型的检查点?
LoadRunner 提供两种类型的检查点
a) 图像检查点:此检查点将在运行时验证页面上是否存在图像。
b) 文本检查点:此检查点将在运行时验证页面上是否存在文本字符串。
以上两种检查点都可以在 Vugen 中添加。
了解更多关于检查点的信息
14) 在性能测试期间,我们在硬件、软件、网络和内存瓶颈方面可能会面临哪些问题?
可能的问题包括但不限于:
1. 硬件不足
2. 内存泄漏
3. 网络相关问题。
4. 应用程序/软件错误
15) 您对改进性能测量有什么建议?
建议对网络、数据库、应用程序和 Web 服务器进行微调。
在网络层面,尝试优化延迟和带宽。
在数据库层面,通过运行分析器验证所有索引和序列。您还可以优化您的数据库查询。
在应用服务器层面,运行分析器查找应用程序中的内存泄漏。
在 Web 服务器层面,您可以使用监视器并优化服务器的吞吐量和其他相关指标。
16) 什么是集合点(Rendezvous point)?
集合点是同步/等待点。集合点指示 Vuser 在测试执行期间等待多个 Vuser 到达某个点,以便它们可以同时执行任务。
其重要性在于只对场景的特定部分模拟重负载,并测试应用程序的行为。
17) 什么是关联(Correlation)?
关联用于获取每次测试脚本运行都唯一的数据(例如:会话 ID)。在录制时,这些动态值在脚本中是硬编码的,导致脚本在回放期间失败。关联是一种技术,动态值不会在脚本中硬编码,而是在运行时提取,以避免失败。
在这篇视频教程中了解更多关于关联的信息。
18) 什么是手动关联?
这是一种关联技术,使用函数 Web_reg_save_param()
来识别脚本中的动态值。回放脚本以验证关联是否成功完成非常重要。
了解手动关联。
19) 如何识别性能瓶颈?
可以使用监视器检测性能瓶颈。
这些监视器可能是应用服务器监视器、Web 服务器监视器、数据库服务器监视器和网络监视器。
它们有助于找出我们场景中导致响应时间增加的问题区域。
测量的指标通常是性能响应时间、吞吐量、每秒点击量、网络延迟图等。
20) 哪个函数用于结束嵌套事务?
该函数是 - lr_end_sub_transaction
在这段视频中了解更多关于事务的信息。
LoadRunner 面试问题和答案(适用于有经验的求职者)
21) LoadRunner 中事务和事务实例有什么区别?
事务用于测量某些语句执行之间的时间。
事务实例用于性能分析。
22) 脚本运行时,我们发现一些可能需要关联的值。是否可以对这些值进行手动关联?
不可以。脚本运行时无法进行关联,但脚本停止后可以进行更改。
23) LoadRunner 中的“已用时间”是什么?
已用时间表示自当前事件启动以来已过去的时间,对于不同的屏幕,其测量方式如下:
在场景状态窗口中 – 已用时间从您点击“启动场景”或“初始化/运行 Vuser?”按钮的那一刻开始计算。
在“Vuser”窗口中,已用时间从 Vuser 进入“运行”状态的那一刻开始计算。
24) 缓存对您的负载测试结果有负面影响吗?
是的。缓存有负面影响。缓存是一种临时内存,用于存储您的浏览历史记录。当您第二次访问页面时,加载页面所需的时间将少于第一次访问页面所需的时间,因为加载页面所需的大部分信息是从缓存中获取的,而不是从服务器中获取的。这将影响您测试中的响应时间。因此,建议关闭缓存。
25) 叠加图和关联图有什么区别?
叠加图:它将共享一个共同 X 轴的两个图的内容叠加在一起。
关联图:它将绘制两个图的 Y 轴相互对照。
了解更多关于分析器的信息
26) lr_error_message 和 lr_debug _message 有什么区别?
lr_error_message
– 向 LoadRunner 控制器的输出窗口发送错误消息
lr_debug _message
– 向 LoadRunner 控制器的输出窗口发送调试消息
27) 负载测试和性能测试有什么区别?
性能测试的目的是检查应用程序是否在规定时间内(例如 2 秒)加载/更新。它使用响应时间、每秒请求数等指标。它在类似于生产的负载条件下进行。
负载测试的目的是检查系统的可伸缩性。例如,找出系统在特定规范下支持的最大用户数。
28) 您已经创建了几个自动关联规则。您的团队中一位新测试人员正准备在他的工作站上录制同一应用程序的一组脚本。您如何向测试人员提供关联规则?
我会将自动关联规则导出到一个 .cor 文件中,然后让新团队成员将该 .cor 文件导入到他的自动关联规则中。
29) 您想模拟一家航空公司的呼叫中心。所有代表早上登录,执行他们的业务流程,晚上注销。一天之内,一位代表将创建 40 个航班预订,修改 10 个航班预订,并搜索 20 个航班预订。代表必须先执行搜索才能执行修改。您将如何设计运行逻辑?
创建 – 67% 搜索 – 16% Block0 – 17% 搜索 修改
30) 您应该将 web_reg_save_param 函数添加到脚本的哪个位置?
在检索动态值的步骤之前。
31) 您希望脚本中的每个步骤都在控制器中作为事务进行测量,并且不显示在 VuGen 的回放日志中。您如何实现这一点?
这可以通过在运行时设置中启用自动事务来完成。
32) 哪个 web 协议录制级别生成 web_submit_form 函数?
基于 HTML 的录制生成此函数。
33) 什么是负载测试?
负载测试旨在测试应用程序在大量并发用户和事务的负载下是否运行良好。它还用于确定应用程序是否能够处理高峰使用期。
34) 什么是 LoadRunner?
LoadRunner 是 HP 推出的一款性能测试工具。该工具支持负载、压力、耐久性、数据量和峰值测试等所有方面。
35) LoadRunner 的所有组件是什么?
以下是 LoadRunner 的组件
- 虚拟用户生成器
- 控制器和代理进程
- LoadRunner 分析和监控
- LoadRunner 在线书籍
36) LoadRunner 的哪个组件用于录制脚本?
虚拟用户生成器 (VuGen) 组件用于录制脚本,它使您能够为各种应用程序类型和通信协议开发 Vuser 脚本。
37) 什么是集合点?
集合点被引入 Vuser 脚本,以模拟服务器上的更多用户。集合点指示 Vuser 在测试执行期间等待,以便同时执行任务。
例如,在银行应用程序中,为 100 多个并发用户插入集合点,以同时存款。
38) 什么是场景?
场景只是每次测试会话发生的事件。
例如,一个场景定义了
- 用户数量
- 要执行的动作
- 虚拟机系统
39) 如何调试 LoadRunner 脚本?
VuGen 包含两个用于调试 Vuser 脚本的选项。
- “逐步运行”命令和
- 断点。
我们还可以使用 lr_set_debug_message
函数在脚本中手动设置消息类。
40) 如何在负载下执行功能测试?
可以通过并发运行多个 Vuser 来测试负载下的功能。通过增加 Vuser 数量,有必要确定服务器可以承受多少负载。
41) 响应时间和吞吐量之间有什么关系?
吞吐量显示 Vuser 在一秒内从服务器接收到的数据量(以字节为单位)。当与事务响应时间进行比较时,吞吐量和响应时间都会减少。
峰值吞吐量和最高响应时间大约同时发生。
42) vuser_init 和 vuser_end 动作包含什么?
Vuser_init 动作包含登录服务器的程序,Vuser_end 部分包含注销程序。
43) 标准日志和扩展日志有什么区别?
标准日志向输出日志发送函数和消息的子集,函数子集取决于 Vuser 类型。
扩展日志向输出日志发送详细的脚本执行消息。它主要用于调试时,当用户需要参数替换信息时。
44) LoadRunner 的目标导向场景中有哪些类型的目标?
LoadRunner 为您提供五种不同类型的目标
- 并发 Vuser 数量
- 每秒点击次数
- 每秒事务数量
- 每分钟页面数量
- 事务响应时间
45) 用于在 Web Vuser 脚本中捕获动态值的函数是什么?
Web_reg_save_param
是将动态数据信息保存到参数的函数。
46) LoadRunner 测试流程是什么?
LoadRunner 中的测试流程如下
- 规划负载测试
- 创建 Vuser 脚本
- 定义场景
- 运行场景
- 分析结果
47) 什么是远程命令启动器?
远程命令启动器使控制器能够在主机上启动应用程序。
48) 如何开发数据库 Vuser 脚本?
Vuser 脚本可以通过使用负载 Vuser 脚本生成器进行录制或使用 LoadRunner Vuser 脚本模板来开发。
49) 如何加载 LoadRunner Agent?
运行场景时,LoadRunner 控制器指示远程代理调度程序启动 LoadRunner 代理。控制器指示 LoadRunner 代理初始化、运行、暂停和停止 Vuser。
50) 每秒点击量和每秒请求量有什么区别?
每秒点击量是指服务器每秒从 Vuser 接收到的点击次数。
每秒请求量是 Vuser 将从服务器请求的请求数量。
51) LoadRunner 有哪些优点?
LoadRunner 的优点如下:
- 减少人工干预
- 减少系统需求
- 有助于更好地利用时间和金钱
- 有效利用自动化
- 单点执行
52) 场景中的 Vuser 是什么?
Vuser 是可以模拟真实用户的虚拟用户。虚拟用户代替真实用户操作客户端软件,例如 IE 使用 HTTP 协议向 IIS 或 Apache Web 服务器发送请求。
53) 如何在 LoadRunner 中编写用户定义函数?
用户应该创建包含该函数的外部库。然后必须将此库添加到 VuGen 的 bin 目录中。然后,可以将用户定义函数指定为参数。
54) 运行时设置可以进行哪些更改?
可以进行四种运行时设置
- 步调:这包含迭代计数。
- 日志:日志可以设置为标准或禁用。
- 思考时间:能够将思考时间设置为忽略或替换。
- 通用:允许为进程或多线程设置 Vuser。
55) 如何发现数据库相关问题?
可以使用监视器和数据资源图来查找数据库相关问题。LoadRunner 允许测试人员在控制器运行之前指定需要测量的资源。
56) LoadRunner 中有多少种图表?
有五种类型的图表
- 网络延迟时间图——显示请求和响应之间经过的时间
- 两个事务响应时间图——一个用于负载的事务响应时间图,另一个用于百分位数
- 每秒点击量图——显示应用程序流量量
- 每秒页面下载量图——显示每秒下载页面的速率
57) 如何识别性能瓶颈?
监视器可用于检测性能瓶颈。这些包括网络、Web 服务器、应用程序服务器和数据库服务器监视器。
这些监视器可用于定位场景中的问题点,这些问题点会导致响应时间增加、吞吐量、网络延迟、性能响应时间、每秒点击量等。
58) 什么是渐增(ramp up)以及如何设置?
渐增是指逐渐增加服务器上的负载,可以通过逐渐增加 Vuser 数量来模拟。此功能可以在场景调度选项中找到。
59) 如何执行关联?
关联可以通过两种方式执行
- 使用扫描功能搜索关联并从结果中选择一个值。
- 录制一对脚本,然后相互比较。
60) 自动关联选项设置在哪里?
自动关联在录制选项区域的关联选项卡中设置。可以为完整脚本启用关联,并定义关联规则。
可以通过查看输出窗口、扫描关联并选择要使用的值来在数据库上执行自动关联。
61) 以线程方式运行 Vuser 脚本有什么好处?
以线程方式运行 Vuser 脚本的优点是可以为一台负载生成器使用更多的 Vuser。以进程方式运行 Vuser 脚本会占用大量内存,因为所有加载的脚本都使用相同的驱动程序。
这限制了在一台生成器上可以运行的 Vuser 脚本数量。
62) 叠加图和关联图有什么区别?
叠加图
叠加图有一个 X 轴和两个 Y 轴。合并图上的左 Y 轴显示当前图的值,右 Y 轴显示合并图的 Y 轴值。
关联图
有两个图,活动图的 Y 轴成为合并图的 X 轴。合并图的 Y 轴成为合并图的 Y 轴。
63) Vuser 脚本的三个部分是什么,每个部分的目的是什么?
Vuser 脚本的三个部分如下:
- Vuser_init – 用于录制登录。
- Actions – 用于录制业务流程。
- Vuser_end – 用于录制注销。
64) 从数据文件选择数据时有哪四种选择方法?
以下是四种选择方法
- 顺序
- 随机
- 唯一
- 参数名
65) 要在执行日志中查看参数替换,应该怎么做?
参数替换可以在运行时设置的扩展日志中查看。
66) 分析 Vuser 运行结果需要哪些工具?
分析 Vuser 运行结果需要以下工具
- 执行日志
- 运行时查看器和
- Mercury 测试结果窗口
67) 手动场景和目标导向场景有什么区别?
手动场景和目标导向场景的区别如下:
手动场景 | 目标场景 |
---|---|
主要目的是了解可以并发运行多少个 Vuser | 目标可能是吞吐量、响应时间或并发 Vuser 数量 |
您可以手动控制运行多少个 Vuser 以及何时运行 | LoadRunner 自动管理 Vuser |
68) 使用服务器资源监视器的所有原因是什么?
服务器资源监视器用于查找从缓存中获取了多少数据,并有助于找出系统中有哪些部分存在瓶颈。
69) 在“通用选项”设置中,回放时选择“显示浏览器”的目的是什么?
“显示浏览器”设置用于在回放期间查看出现的页面。这在 Web Vuser 创建的初始阶段调试 Vuser 时非常有用。
70) 用户将使用“继续出错”的目的是什么?
“继续出错”应仅在使执行日志更具描述性或向 Vuser 添加逻辑时设置。
71) LoadRunner 事务的目的是什么?
LoadRunner 事务的目的是测量业务流程中的一个或多个步骤/用户操作。
72) 为什么要创建参数?
参数就像脚本变量,它们用于改变服务器的输入,以模拟真实用户。
- 每次运行脚本时都会向服务器发送不同的数据集。
- 更好地模拟使用模型,以便从控制器进行更准确的测试,并且一个脚本可以模拟系统上的许多不同用户。
73) 什么是 lr_output_message?
lr_output_message
是一个函数,用于向控制器输出窗口和 Vuser 日志文件发送通知。
74) 在 Web 服务器、数据库和网络都运行良好的情况下,问题可能出在哪里?
问题可能出在系统本身、应用程序服务器或应用程序编写的代码中。
75) 什么是 VuGen 录制和脚本编写?
LoadRunner 脚本代码通过 ANSI C 语言语法录制获得,可以在脚本视图中查看。
76) LoadRunner 中的性能测试是什么?
性能测试可以通过计算读取和更新事务的时间,并检查系统功能是否在可接受的时间范围内执行来完成。在多用户环境中,有必要确定多个事务对单个事务时间的影响。
77) 使用 LoadRunner 时的系统配置是什么?
系统配置指的是我们将运行 Vuser 的客户端机器的配置。客户端机器的配置包括其硬件设置、内存、操作系统、软件应用程序、开发工具等。
此系统组件配置应与整个系统配置匹配,以实现负载测试目标。
78) lr_abort 函数有什么用?
lr_abort 函数用于中止 Vuser 脚本的执行。它指示 Vuser 停止执行 Actions 部分,执行 vuser_end 部分并结束执行。
79) 什么是思考时间?
思考时间是真实用户在操作之间等待的时间。
当用户从服务器或其他应用程序接收数据时,用户可能会等待几秒钟来查看数据,然后再做出响应。此时间延迟称为思考时间。
80) LoadRunner 如何与应用程序交互?
LoadRunner 使用协议与应用程序交互。
81) LoadRunner 的最新版本和使用的语言是什么?
截至 2013 年 2 月 20 日,LoadRunner 11.5 是最新版本,VUser 脚本使用类似于 C 语言。
LoadRunner 支持以下语言
- C 语言
- Visual Basic 脚本
- Visual Basic for Applications
- Java 脚本
82) LoadRunner 支持哪些重要协议?
LoadRunner 可以支持的协议如下:
- .NET 录制/显示
- 数据库
- DCOM
- 网络
- Oracle E-Business
- SAP
- SOA
- Web 和多媒体
- 无线
- GUI
- Java 录制和回放
- 远程桌面
- Web 2.0
HP LoadRunner 认证测验 1
HP LoadRunner 认证测验 2
HP LoadRunner 认证测验 3
这些面试问题也将有助于您的口试