LoadRunner
1. 基本组成
LoadRunner 主要由 Virtual User Generator
、Controller
、Load Generator
和Analysis
四部分构成。
-
Virtual User Generator
:VUGen
:虚拟用户脚本生成器
录制最终用户业务流程并创建自动化性能测试脚本,即 Vuser 脚本。
录制期间, VuGen 将监控数据库的客户端,并跟踪用户发送到服务器以及从服务器接收的所有请求,VuGen 将自动生成精确建模并模拟实际情况的函数,而无需手动编写应用程序对服务器的 API 函数调用。
回放期间,Vuser 脚本通过执行对服务器 API 的调用,直接与服务器通信。当 Vuser 直接与服务器通信时,客户端接口不需要系统资源。这样,可以在一个工作站上同时运行大量 Vuser,进而可以仅使用几台测试计算机来模拟较重的服务器负载。
此外,由于 Vuser 脚本不依赖于客户端软件,因此即使客户端软件的用户界面尚未完全开发好也可以使用 Vuser 检查服务器性能。
使用 VuGen,可以将脚本作为独立测试运行。通过从 VuGen 运行脚本可以了解 Vuser 的行为方式以及需要进行哪些改进,因此对于调试很有帮助。
VuGen 只能在 Windows 平台上录制 Vuser 脚本。但录制的 Vuser 脚本可在 Windows 和 UNIX 平台上运行。
-
Controller
:控制器
组织、驱动、管理并监控负载测试。
-
Load Generator
:负载生成器
执行场景时, LoadRunner Controller 将该场景中的每个 Vuser 分散到
负载生成器
。负载生成器是执行 Vuser 脚本,从而使 Vuser 可以模拟实际用户操作的计算机。 -
Analysis
:性能分析器
用于查看、剖析和比较性能结果。
2. LoadRunner 术语
-
场景(Scenario)
使用 LoadRunner 可以将应用程序性能测试需求划分为多个
场景
。场景定义了每个测试会话中发生的事件。举例来说,场景定义并控制要模拟的用户的数量及其执行的操作,以及他们运行模拟操作所用的计算机。 -
Vuser
在场景中, LoadRunner 用虚拟用户或
Vuser
代替实际用户
。运行场景时,Vuser 模拟实际用户的操作来使用应用程序。一台工作站只能容纳一个实际用户,而多个 Vuser 可以同时运行在同一台工作站上。实际上,一个场景可以包含几十、几百甚至几千个 Vuser。 -
Vuser 脚本
Vuser 在场景中执行的操作是用 Vuser 脚本描述的。运行场景时,每个 Vuser 都执行
Vuser 脚本
。Vuser 脚本中包含度量并记录应用程序组件的性能的函数。 -
事务
要度量服务器的性能,需要定义
事务
。事务代表度量过程中我们感兴趣的一个或一系列操作。在 Vuser 脚本中,可以通过嵌入适当的start
和end
事务语句的脚本段来定义事务。例如,可以定义某个事务,用于测量服务器处理查看帐户收支情况的请求的时间,以及在 ATM 上显示收支信息的时间。 -
集合点
可以在 Vuser 脚本中插入
集合点
来模拟服务器上较重的用户负载。集合点
指示 Vuser 在测试执行期间等待,直到多个 Vuser 在某一点到达,以使他们可以并行执行某个任务。例如,要模拟银行服务器的峰值负载,可以插入一个集合点来指示 100 个 Vuser 同时往他们的帐户存入现金。
3. LoadRunner Vuser 技术
在每个 Windows 负载生成器上,需要安装远程代理调度程序(进程)
和 LoadRunner 代理。
-
远程代理调度程序(进程)
远程代理调度程序(进程)可使 Controller 在负载生成器计算机上启动应用程序。
-
代理
LoadRunner 代理可使 Controller 和负载生成器互相通信。运行场景时,Controller 指示远程代理调度程序(进程)启动 LoadRunner 代理。该代理根据从 Controller 接收到的指令来初始化、运行、暂停和停止各个 Vuser。同时,该代理还将各个 Vuser 的状态数据传回 Controller。
4. LoadRunner 测试过程
负载测试一般包括 5 个阶段:规划测试
、创建 Vuser 脚本
、创建场景
、运行场景
、监视场景
和分析测试结果
。
-
规划测试
要成功地进行负载测试,需要制定完整的测试计划。定义明确的测试计划将确保制定的 LoadRunner 场景能完成负载测试目标。
-
创建 Vuser 脚本
Vuser 模拟实际用户与基于 Web 的应用程序的交互。Vuser 脚本包含场景执行过程中每个虚拟用户执行的操作。
VUGen 录制最终用户活动生成自动化测试脚本。
-
创建场景
场景描述测试会话期间发生的事件。场景中包括运行 Vuser 的计算机的列表、运行 Vuser 脚本的列表以及在场景执行期间运行的指定数量的 Vuser 或 Vuser 组。可以使用 LoadRunner Controller 创建场景。
-
创建手动场景
可以通过定义 Vuser 组(将为这些组分配一些单独的 Vuser)、Vuser 脚本和运行这些脚本的负载生成器来创建场景。
也可以使用
百分比模式
来创建场景,在这种模式下可以定义场景中要使用的 Vuser 的总数、负载生成器计算机以及要分配给每个 Vuser 脚本的 Vuser 占 Vuser 总数的百分比。 -
创建面向目标的场景
对于 Web 测试,可以创建面向目标的场景,在其中定义希望达到的测试目标。LoadRunner 将基于这些目标自动创建场景。
-
-
运行场景
使用 LoadRunner Controller 驱动、管理并监控负载测试
可以指示多个 Vuser 同时执行任务,以模拟服务器上的用户负载。可以通过增加或减少同时执行任务的 Vuser 的数量来设置负载级别。
-
监视场景
可以使用 LoadRunner 联机运行时、事务、系统资源、Web 资源、Web 服务器资源、Web 应用程序服务器资源、数据库服务器资源、网络延时、流媒体资源、防火墙服务器资源、ERP/CRM 服务器资源、Java 性能、应用程序部署和中间件性能监视器来监视场景的执行。
-
分析测试结果
在场景执行期间,LoadRunner 将记录不同负载下的应用程序性能。可以使用 LoadRunner Analysis 的图和报告来分析应用程序的性能。