LoadRunner 测试工具: Archi结构图及组件
⚡ 智能摘要
LoadRunner 是一款企业级性能测试工具,目前由 [公司名称] 出售。 OpenText它模拟 VuGen、控制器、负载生成器和分析中的数千个虚拟用户,以便在真实流量发现瓶颈之前将其暴露出来。
什么是负载运行器?
LoadRunner 是一款 性能测试 该工具由……率先开发 Mercury 1999 年 Interactive 公司成立。LoadRunner 后来于 2006 年被惠普收购,惠普软件业务于 2016 年宣布与 Micro Focus 合并,该交易于 2017 年完成。
品牌注解: OpenText 该公司于2023年1月完成了对Micro Focus的收购。该工具已不再以惠普或HP的名义销售。 Micro Focus LoadRunnerLoadRunner Professional 现已推出 OpenText LoadRunner Enterprise 是一款专业的性能工程软件。 OpenText 企业性能工程,以及 LoadRunner Cloud 是 OpenText 核心性能工程。以下组件名称——VuGen、控制器、负载生成器和分析——保持不变。
LoadRunner 支持多种开发工具、技术和通信协议。它拥有市面上最全面的协议库之一,可用于执行性能测试。LoadRunner 软件生成的性能测试结果可作为与其他工具进行比较的基准。
LoadRunner 视频
在学习各个组件之前,请观看下面的视频,快速了解 LoadRunner。
为什么使用 LoadRunner?
LoadRunner 不仅是性能测试领域的先驱工具,而且仍然是性能测试范式的市场领导者之一,并且仍然是许多企业进行基准测试的参考点。
协议覆盖范围是团队选择它的最明显原因,如下面的组件图所示。
广义上讲,LoadRunner 工具支持 RIA(富互联网应用程序)、Web 2.0(HTTP/HTML、Ajax、Flex 和 Silverlight 等)、移动、 SAP, Oracle,MS SQL 服务器、Citrix、RTE、 Mail 最重要的是, Windows Socket。很少有同类工具能在单个工具中提供如此丰富的协议,如下面的协议列表所示。
在软件测试领域,选择 LoadRunner 最令人信服之处在于其卓越的可靠性。LoadRunner 早已建立起良好的声誉,因为您经常会发现客户使用 LoadRunner 来交叉验证您的性能基准测试结果。如果您已经在使用 LoadRunner 进行性能测试,那么您将会感到非常安心。
LoadRunner 软件与同一系列的其他工具(例如 Unified Functional Testing(前身为 LoadRunner))紧密集成。 QTP现已作为 OpenText 功能测试)和 ALM(应用程序生命周期管理,现在 OpenText ALM/质量中心)——使您能够执行端到端的测试流程。
LoadRunner 的工作原理是在目标应用程序上模拟虚拟用户。这些虚拟用户(也称为 VUser)会复制客户端的请求,并期望收到相应的响应以完成事务。
为什么需要性能测试?
以下行业估算数据被广泛引用,数据来自 2010 年代初期,但它们所描述的模式并没有改变:页面加载速度慢会造成经济损失。
由于网站性能不佳,每年估计损失收入达 4.4 亿美元。
在如今的Web 2.0时代,如果网站在8秒内没有响应,用户就会点击离开。试想一下,当你搜索时,等待5秒钟会是什么感觉? Google 或者在 Facebook 上发送好友请求。性能中断的后果往往比人们想象的更具破坏性。例如,美国银行网上银行就曾遭受过类似的打击。 Amazon 网络服务、Intuit 和 Blackberry。
根据邓白氏公司的统计,财富500强企业中有59%每周平均会经历1.6小时的停机时间。考虑到拥有至少10,000万名员工的财富500强企业平均每小时工资为56美元,此类企业每周因停机造成的劳动力成本将高达896,000万美元,每年累计超过46万美元。
仅需5分钟停机时间 Google据估计,2013 年 8 月 .com 域名被删除给这家搜索巨头造成了高达 545,000 美元的损失。
据估计,过去一段时间里,企业每秒钟损失的销售额高达1,100美元。 Amazon 网络服务中断。
当组织部署软件系统时,可能会遇到许多可能导致性能延迟的情况。许多因素会导致性能下降,以下是一些示例:
- 数据库中记录数量增加
- 系统同时发出的请求数量增加
- 与过去相比,现在同时访问系统的用户数量更多。
然而,并非所有申请都是候选申请。 负载测试 它面向客户端-服务器、多用户系统,因此像下面这样的单用户桌面实用程序不值得进行性能测试。
什么是LoadRunner Archi结构?
总体而言,LoadRunner 的架构虽然复杂,但易于理解。下图展示了 LoadRunner 的四个组件如何相互协作。
假设你被指派检查 Amazon.com,拥有 5000 名用户。
在实际情况下,这5000名用户不会全部都停留在首页——他们会分散在网站的不同版块。那么我们该如何模拟这种差异呢?
VuGen
VuGen 或虚拟用户 Generator VuGen 是一个集成开发环境 (IDE) 或功能丰富的代码编辑器。它用于模拟系统负载下 (SUL) 的行为。VuGen 提供了一个“录制”功能,可以将客户端和服务器之间的通信以代码脚本的形式记录下来——也称为 VUser脚本.
因此,以上述示例为例,VuGen 可以录制以模拟以下业务流程:
- 浏览 Amazon.com
- 结账
- 支付处理
- 检查我的帐户页面
脚本顺利重放后,通常需要捕获动态服务器值。 相关 在能够扩大规模之前。
控制器
一旦虚拟用户脚本最终完成, 控制器 是 LoadRunner 的主要组件之一,它通过管理例如以下方面来控制负载模拟:
- 每个业务流程或 VUser 组模拟多少个 VUser
- VUsers 的行为(上升、下降、同时或并发性质等)
- 负载场景的性质,例如真实生活或目标导向或验证 SLA
- 使用哪些注入器,每个注入器有多少个 VUser
- 定期整理结果
- IP欺骗
- 错误报告
- 交易报告等
以我们的例子为例,控制器会将以下参数添加到 VuGen 脚本中:
- 3500 名用户正在浏览产品页面 Amazon.com
- 750 位用户正在结账
- 500 位用户正在进行支付处理
- 只有在 500 位用户完成付款处理后,才有 250 位用户查看我的帐户页面。
甚至可能出现更复杂的情况:
- 每 5 秒启动 2 个 VUser,直到负载达到 3500 个 VUser(冲浪 Amazon 实现“产品页面”功能。
- 迭代 30 分钟
- 暂停 25 个 VUser 的迭代
- 重启 20 个虚拟用户
- 每秒启动 2 个用户(在结帐、付款处理、我的帐户页面)。
- 机器 A 上将生成 2500 个 VUser
- 机器 B 上将生成 2500 个 VUser
代理机器/负载 Generator喷油器
LoadRunner 控制器负责模拟数千个虚拟用户 (VUser)——这些虚拟用户会消耗硬件资源,例如处理器和内存——因此会限制模拟它们的机器的性能。此外,控制器在同一台机器(即控制器所在的机器)上模拟这些虚拟用户,因此结果可能不够精确。为了解决这个问题,所有虚拟用户都被分布在不同的机器上,这些机器被称为 LoadRunner 集群。 Generators 或负载喷射器。
作为一般做法,控制器驻留在不同的机器上,并从其他机器模拟负载。根据 VUser 脚本的协议和机器规格,可能需要多个负载注入器才能进行完整模拟。例如,HTTP 脚本的 VUser 需要每个 VUser 2-4MB 进行模拟,因此需要 4 台每台具有 4 GB RAM 的机器来模拟 10,000 个 VUser 的负载。
以我们的类比为例 Amazon 例如,该组件的输出是 5000 个虚拟用户,分布在两个注入器上:在机器 A 上生成 2500 个虚拟用户,在机器 B 上生成 2500 个虚拟用户。
信号分析
一旦负载场景执行完毕,其作用就显现出来了。 信号分析 LoadRunner 的组件介入了。
在执行期间,Controller 以原始形式创建结果转储,并包含诸如哪个版本的 LoadRunner 创建了此结果转储以及配置是什么等信息。
所有错误和异常都记录在 Microsoft 访问名为 output.mdb 的数据库。分析组件读取此数据库文件以执行各种类型的分析并生成图表。
这些图表显示了各种趋势,以了解负载下错误和故障背后的原因;从而有助于判断 SUL、服务器(例如 JBoss、 Oracle)或基础设施。
以下示例说明了带宽可能造成瓶颈的情况。假设 Web 服务器的带宽为 1Gbps,但数据流量超过了此容量,导致后续用户访问速度变慢。为了确定系统是否能够满足此类需求,性能工程师需要分析应用程序在异常负载下的行为。下图是 LoadRunner 生成的用于显示带宽的图表。
如何进行性能测试
性能测试路线图大致可分为 5 个步骤,如下图所示:
- 负载测试规划
- 创建 VuGen 脚本
- 场景创建
- 场景执行
- 结果分析(随后进行系统调整)
安装好 LoadRunner 后,让我们逐一了解该过程中涉及的步骤。
步骤1)规划负载测试
性能测试规划不同于 SIT(系统集成测试) or UAT(用户验收测试)规划可进一步划分为如下所述的小阶段:
组建你的团队
开始使用 LoadRunner 进行测试时,最好记录下参与测试过程的每个团队中哪些人将参与测试活动,如下面的团队图表所示。
- 项目经理: 提名负责此项活动并作为升级联络人的项目经理。
- 职能专家/业务分析师: 提供 SUL 的使用情况分析以及网站或 SUL 的业务功能方面的专业知识。
- 性能测试专家: 创建自动化性能测试并执行负载场景。
- 系统 Archi术语: 提供SUL的蓝图。
- Web 开发人员和 SME: 负责网站的维护、监控、开发和漏洞修复。
- 系统管理员: 在整个测试项目中维护相关服务器。
概述所涉及的应用和业务流程
成功 负载测试 要求您计划执行某些业务流程。业务流程由符合所需业务交易的明确定义的步骤组成,以便实现您的负载测试目标。
可以准备一个需求指标来获取系统上的用户负载。以下是一家公司的考勤系统的示例:
在上述示例中,数字表示在特定时间段内连接到应用程序的用户数量 (SUL)。我们可以举例说明。tract 表示一天中任何小时连接到业务流程的最大用户数,计算方法见最右侧列。
类似地,我们可以得出一天中任何时间连接到应用程序的用户总数(SUL)。这是在最后一行计算的。
以上两个事实结合起来,我们就可以计算出需要测试系统性能的用户总数。
定义测试数据管理程序
如前所述,性能测试得出的统计数据和观察结果受到众多因素的极大影响。为性能测试准备测试数据至关重要。有时,特定的业务流程会使用一个数据集并生成不同的数据集。请看以下示例:
- 用户“A”创建了一个财务合同trac并将其提交审核。
- 另一位用户“B”批准了200个连接trac这是用户“A”创建的一天
- 另一位用户“C”支付了大约150个contrac这是用户“B”批准的一天
在这种情况下,用户 B 需要有 200 个连接tracts 已在系统中“创建”。此外,用户 C 需要 150 个 contracts 被标记为“已批准”,以模拟 150 个用户的负载。
这实际上意味着你必须至少创建 200+150 = 350 个 contracTS。
之后,批准 150 个 contrac将作为用户 C 的测试数据——剩余的 200 个 contracts 将作为用户 B 的测试数据。
大纲监视器
仔细分析所有可能影响系统性能的因素。例如,硬件配置降低可能会对系统负载下的性能产生影响。
列出所有因素并设置监视器,以便您可以衡量它们。以下是几个示例:
- 处理器(用于 Web 服务器、应用服务器、数据库服务器和注入器)
- RAM(用于 Web 服务器、应用程序服务器、数据库服务器和注入器)
- Web/应用服务器(例如 IIS、JBoss、Jaguar Server、Tomcat 等)
- DB 服务器(如果 Oracle 以及MSSQL Server、SP等)
- 网络带宽利用率
- 集群情况下的内部和外部 NIC
- 负载均衡器(它在集群的所有节点上均匀分配负载)
- 时间 flux (计算客户端和服务器之间的数据传输量——然后计算网卡容量是否足以模拟 X 个用户)
步骤 2)创建 VuGen 脚本
规划之后的下一步是创建虚拟用户脚本,并添加 参数化、事务和运行时设置 随着剧本的完善。
步骤3)场景创建
下一步是在控制器中创建负载场景,选择手动场景或目标导向场景。
步骤4)场景执行
场景执行是通过指示多个 VUser 同时执行任务来模拟服务器上的用户负载。
您可以通过增加或减少同时执行任务的 VUser 数量来设置负载级别。
此次执行可能会导致服务器宕机 应力 并表现出异常行为。这正是性能测试的目的所在。测试结果将用于详细分析和根本原因分析。
步骤5)结果分析(随后进行系统调整)
在场景执行期间,LoadRunner 会记录应用程序在不同负载下的性能。测试执行的统计数据会被保存,并进行详细分析。分析工具(在本教程所依据的版本中称为“HP Analysis”)会生成各种图表,帮助识别系统性能滞后以及系统故障的根本原因。
获得的一些图表包括:
- 第一个缓冲区的时间
- 交易响应时间
- 平均交易响应时间
- 每秒点击次数
- Windows 相关资源
- 错误统计
- 交易摘要








