Loadrunner Controller 教程:手动场景与目标导向场景

什么是 Controller?

Controller,顾名思义,是一个用于“控制”整体负载测试的程序。它负责帮助您使用已创建的 VUGen 脚本来运行性能测试设计。它允许您覆盖运行时设置,启用或禁用思考时间、集合点,添加负载生成器并控制每个生成器可以模拟的用户数量。它会自动创建执行结果的转储,并为您提供正在运行的负载测试的“当前状态”的实时视图。

让我们进一步了解 HP Controller。

如何启动 Controller

要启动 HP Controller,请转到“开始”菜单 -> HP Software -> HP LoadRunner -> Controller,如下图所示

How to Launch Controller

启动后,您会看到一个短暂出现的启动屏幕。下面显示了一个快速快照

How to Launch Controller

该快照将自动进入 HP Controller 的主窗口。在我们讨论屏幕的主要组件之前,让我们先看一下。

How to Launch Controller

如果“新建场景”屏幕没有自动出现(在您更改首选项后),您可以单击“文件”菜单下的“新建”按钮,或单击 如何启动 Controller按钮,或者按 Ctrl + N。下面显示了菜单供参考。

How to Launch Controller

类似地,要打开现有或先前创建的场景,您可以使用 Ctrl + O 或 如何启动 Controller图标,它将打开一个标准的对话框用于浏览文件。Load Runner 场景文件的扩展名为*.lrs

Controller 中有两种类型的场景。

  • 手动场景
  • 面向目标场景

手动场景还可以选择是否使用百分比模式。我们将详细讨论每种模式。

模拟手动场景

手动场景是静态的,并提供更多控制。您可以决定执行哪些事务,执行多少次,执行多长时间。

根据测试组合的构成,您可以查看应用程序行为,例如命中次数、响应时间等。

稍后您会发现手动场景与面向目标场景的区别。

要创建手动场景,请从“选择场景类型”中选择手动场景

目前,我们先使用非百分比模式。请看下面说明的截图

Simulating a Manual Scenario

您可以直接从上面的屏幕选择要添加到场景的脚本。但是,通常的做法是稍后添加脚本。

单击“确定”按钮继续。

这将创建一个空白场景并将其加载到主屏幕。您会注意到“保存”按钮现在已启用。请看下面截图

Simulating a Manual Scenario

同样,如果您在选择场景类型时选择了百分比模式,屏幕的外观会略有不同。它将显示用户百分比分布,而不是用户数。Controller 会自动按分配的百分比分发用户。

其余部分相同。请参考下图

Simulating a Manual Scenario

如果您一开始没有创建场景,您会注意到工具栏如下所示

Simulating a Manual Scenario

您可以单击 模拟手动场景按钮来创建新的空白场景。场景创建后,您可以单击 模拟手动场景按钮保存场景或按 Ctrl + S。类似地,您可以单击 模拟手动场景按钮从您的本地计算机驱动器打开已有的场景。

其余按钮只是调用 LoadRunner 的其他组件。 模拟手动场景按钮调用 VUGen, 模拟手动场景按钮调用 HP Analysis。

添加 VUSer 脚本或组后,您会注意到主题工具栏将显示其他图标。新工具栏看起来像这样

Simulating a Manual Scenario

新工具栏有 2 个额外的控件。

模拟手动场景按钮打开所有负载生成器的列表。在我们的例子中,我们使用“localhost”作为生成器。这意味着您的本地计算机将同时被 Controller 和 Generator 用来模拟虚拟用户负载。通过单击 模拟手动场景图标可以打开网络虚拟化设置。网络虚拟化需要安装 HP Software 版本 8.6 或更高版本的 Shunra NV。此集成通过虚拟化负载和性能测试环境中的生产网络条件来提高测试准确性。要将 Shunra NV for HP Software 引入您的测试环境,请联系您的 HP 服务代表。

现在您已经创建了一个新的、空白的 LoadRunner 场景,请注意

新场景的默认配置

计划者:场景

运行模式:真实世界计划

由于 VUsers 脚本将由一组 VUsers 运行,因此也称为组。组名列将在添加后显示 VUser 脚本的名称。让我们将 VUsers 脚本添加到此场景中。

当场景完全创建后,您将在场景组下看到以下工具栏

Simulating a Manual Scenario

您可以单击工具栏中的 模拟手动场景图标来添加 VUser 组。

当您单击“组名”列下的单元格时,会打开一个小框,即 模拟手动场景– 在这里您可以看到最近的 VUser 脚本的快速列表以及浏览按钮。请参考下图。

Simulating a Manual Scenario

您可以从列表中选择,或者直接从所需的目录浏览。如果您单击浏览按钮,它将打开一个类似于 MS 通用对话框的对话框。请参考下面的快照

Simulating a Manual Scenario

正如您所见,您可以在此处浏览 VUser 脚本、GUI 脚本或 QTP 脚本。请记住,GUI 或 QTP 脚本只能实例化单个用户,不能用于“负载模拟”。您能告诉我为什么 QTP 脚本可以在 Load Scenario 中使用吗?

正确答案是,QTP 脚本可以添加到 Load Scenario 中以提取信息

由于 LoadRunner 脚本基于请求和响应工作,因此不包括 UI 和数据渲染时间。QTP 脚本将在负载下提供真实用户体验的 1 个样本。当然,QTP 脚本需要通过描述性编程应用所有事务。

如果右键单击左侧的灰色区域,您将看到如下面的屏幕截图所示的一个小菜单

Simulating a Manual Scenario

您可以单击“添加组”以浏览您的 VUser 脚本。

要删除组,请单击工具栏中的 模拟手动场景按钮或右键单击组并选择“删除组”– 如下图所示

Simulating a Manual Scenario

提示:您也可以单击 模拟手动场景按钮以查看特定于所选组的运行时设置。您可以选择多个组(通过按住 Ctrl + 单击)一次性应用运行时设置。

从工具栏,您可以单击“详细信息”按钮 [ 模拟手动场景] 在工具栏中查看与 VUser 组相关的的所有详细信息。

Simulating a Manual Scenario

如果您单击“更多”,它将显示一个包含 3 个选项卡的面板。第一个选项卡“集合点”将默认打开

Simulating a Manual Scenario

您还可以在“VUsers”选项卡中看到 VUsers 列表。如果您为 VUsers 分配了 ID,您将在此处看到它们。

Simulating a Manual Scenario

您还可以看到脚本文件夹中所有文件的列表。这有助于导航到最后一个目录并仅查看相关文件。

Simulating a Manual Scenario

我们将单独研究如何调度组。

场景准备好后,您可以单击 模拟手动场景按钮开始执行您的场景。单击播放按钮后,您会注意到 Controller 从“设计”选项卡切换到“运行”选项卡。

Controller 的设计视图也提供了运行场景时的脚本视图。当您遇到错误时,这很有帮助。但是,您在脚本中所做的任何更改都不会反映在正在运行的场景中。即使场景未运行,您也需要查看详细信息并单击“刷新”按钮才能使更改生效。

您可以通过单击 模拟手动场景按钮。

类似地,您可以通过单击 模拟手动场景按钮。

一旦您对配置满意,就可以点击 模拟手动场景按钮,或者转到“运行”选项卡并单击 模拟手动场景按钮。

在场景执行开始时,Controller 将隐式创建一个临时目录来转储结果。如果目录已存在,您将收到一个提示

Simulating a Manual Scenario

如果选择“是”,则之前的转储将丢失。如果选择“否”,您将看到下面的窗口。您可以选择为每个结果创建一个新目录,如果您愿意的话。但是,请注意,您可能会很快用完空间。

Simulating a Manual Scenario

单击“确定”后,您的场景将开始运行。您将看到用户从“待处理”列移到“初始化”列,依此类推。

下面是一个示例执行的外观

Simulating a Manual Scenario

您可以单击“通过的事务”以打开一个新窗口。在这里,您可以检查在脚本中应用的所有事务的状态。

类似地,您可以单击左侧的任何图表名称以打开任何图表。

在窗口底部,您可以看到哪些事务正在通过,到目前为止任何用户花费的最短时间、最长时间、平均时间和标准偏差。

您可以选择并排整理结果,或者仅在场景完成后进行整理。要切换,请单击“结果”菜单,您将找到下面的菜单。

Simulating a Manual Scenario

如果您启用了整理,您可以勾选它。

模拟面向目标场景

面向目标场景是动态的——这意味着它会不断改变模拟到服务器的总体负载。您设置一个目标,例如,您希望为目标服务器达到的最大命中次数,事务的响应时间最大值等。

根据上述数字,您可以进行分析,例如您的应用程序支持的最大用户数,同时保持在可接受的响应时间范围内。类似地,连接到应用程序的最多用户数,直到达到服务器的 X 次命中。

在这种情况下,HP Controller 会自动更改服务器的用户数量,因此您对用户运行的次数或运行多长时间的控制很少。

单击“新建”以创建新场景并选择“面向目标场景”。

将出现以下屏幕

Simulating a Goal-Oriented Scenario

添加 VUser 组的过程与手动场景完全相同。

面向目标场景的关键区别在于,顾名思义,创建目标。Controller 将自动

虽然大部分界面与手动场景非常相似,但某些屏幕的外观不同,但执行的操作相同。例如,要添加 VUser 组或 VUser 脚本,请单击 模拟面向目标场景按钮。这将打开以下窗口

Simulating a Goal-Oriented Scenario

在这里,您可以选择最近的脚本,浏览脚本或单击“录制”按钮来创建新脚本。

单击“确定”关闭窗口。

根据需要,您可以单击 模拟面向目标场景按钮以查看所选组/VUser 脚本的详细信息。

单击 模拟面向目标场景按钮将从当前场景中删除所选的 VUser 组。更改只有在保存时才会生效。

单击 模拟面向目标场景按钮将打开运行时设置,就像我们在 VUGen 中研究的那样。但是,如果您在此处覆盖(或修改)运行时设置,则更改仅对当前场景有效。如果您删除脚本并重新加载,或者单击“详细信息视图”中的“刷新”,您将丢失所做的任何更改。这将重新加载创建脚本时保存的运行时设置。

您还可以单击 模拟面向目标场景按钮以在 VUGen 中打开选定的 VUser 组。

如果您想配置负载生成器(我们的下一个主题),可以单击 模拟面向目标场景按钮。

面向目标场景的执行与手动场景相同。

配置负载生成器

有两种方法可以配置负载生成器。

当您单击“添加组”(添加 VUser 脚本)时,您将看到以下窗口

Configure Load Generators

您可以单击“添加”对应的“负载生成器名称”并浏览您的负载生成器,或者,您可以直接键入“localhost”并开始使用您的 controller 机器作为负载生成器。

如果您单击“添加…”,您将看到以下窗口

Configure Load Generators

您可以单击“更多”以查看更多与负载生成器相关的设置。导航不同的选项卡以建立更多理解

Configure Load Generators

以上是运行时设置的配置。如您所见,最多可以一次初始化 50 个用户。

下面是 VUser 限制的配置。

Configure Load Generators

如果您想恢复到默认设置并丢失所做的任何更改,请单击“默认值”。单击“确定”按钮以保存更改并关闭窗口。

另一种添加和配置负载生成器的方法是单击“场景”菜单,然后单击“负载生成器”。

Configure Load Generators

这将进入生成器的主窗口。在这里,您可以查看所有负载生成器的状态。名称是指生成器的名称。状态是生成器的当前状态,无论生成器是否准备好使用。平台指示生成器的操作系统,可以是 Windows 或 Unix 。类型指示它是本地还是云生成器。请看下面的截图

Configure Load Generators

要添加另一个生成器,您需要单击“添加”按钮。单击“添加”后,您将看到上面已讨论过的相同屏幕。

配置生成器后,单击“关闭”按钮关闭屏幕。

调度组

在运行场景之前,您需要配置计划。您可以按场景或按组进行计划。其中每一个都可以进一步分为“真实世界计划”或“基本计划”,称为运行模式。

如果您按场景计划并创建“真实世界计划”,您将在“全局计划”区域看到以下选项

Schedule a Group

但是,如果您计划一个场景并创建一个基本计划,您将看到以下窗口。您能找到区别吗?

Schedule a Group

您还可以按组进行计划。这将将配置应用于组级别。这可以进一步分为“真实世界”和“基本”运行模式。

Schedule a Group

同样,您可以将运行模式更改为“基本计划”。使用您的测试设计技能找出两者之间的区别。这里有一个参考

Schedule a Group

您是否注意到场景计划工具栏中出现了一个新图标?

这是供您参考的:调度组

集合点图标仅在配置组时出现。

设置 SLA(服务级别协议)

您可能已与客户签订了服务级别协议。LoadRunner 或 Controller 中的 SLA 让您有机会根据 SLA 测试您的应用程序。请记住,常规(非 SLA)场景为您提供了运行各种场景以查找问题和问题根本原因的机会;而您的客户可能希望仅仅根据 SLA 测试您的应用程序,以查看它是否按合同规定的工作。

在 Controller 的主设计视图中,找到 SLA 工具栏;它位于右上角,看起来像这样

Set-up The SLA(Service Level Agreement)

单击 设置 SLA(服务级别协议)按钮,将打开以下窗口

Set-up The SLA(Service Level Agreement)

单击 设置 SLA(服务级别协议)按钮。

注意新窗口。在这里,您可以选择 SLA 的测量。在我们的例子中,我们正在进行事务响应时间。请看

Set-up The SLA(Service Level Agreement)

单击 设置 SLA(服务级别协议)按钮。

在下一个窗口中,您可以选择将上述测量应用于的事务。我们只使用主要事务,即 01_Signup

这将有助于排除打开主页和其他不太重要的事务。

请看窗口

Set-up The SLA(Service Level Agreement)

单击 设置 SLA(服务级别协议)按钮。

在新窗口中,您可以选择阈值的百分位数。如果您选择了多个事务,您可以单击 设置 SLA(服务级别协议)按钮。请看下面的窗口

Set-up The SLA(Service Level Agreement)

单击 设置 SLA(服务级别协议)按钮。

下一个屏幕是一个简单的关闭。单击 设置 SLA(服务级别协议)按钮关闭 SLA。

Set-up The SLA(Service Level Agreement)

单击 设置 SLA(服务级别协议)后,您将看到 Controller 的主设计窗口中出现一个 SLA。请看

Set-up The SLA(Service Level Agreement)

您可以单击 设置 SLA(服务级别协议)按钮查看 SLA 详细信息。将打开以下窗口

Set-up The SLA(Service Level Agreement)

单击 设置 SLA(服务级别协议)按钮关闭上面的窗口。

如果您想删除现有的 SLA,可以单击 设置 SLA(服务级别协议)按钮。单击后,您将看到以下确认消息

Set-up The SLA(Service Level Agreement)

如果您单击 设置 SLA(服务级别协议)按钮,您将看到 SLA 的高级选项。

建议您使用默认选项,即“内部计算跟踪周期”。请看快照

Set-up The SLA(Service Level Agreement)

如果您使用“内部计算跟踪周期”,Analysis 会自动设置将确定 SLA 状态的跟踪周期。此选项的最小跟踪周期设置为 5 秒。

另一方面,您可以选择所需的跟踪周期秒数。只需选择下一个单选按钮。

在执行基于 SLA 的场景时,执行过程与手动场景完全相同。

Controller 视频

如果视频无法访问,请点击此处