本主题解释如何运行涉及多台机器的负载测试。在本章节中:
Load Test 工具允许在远程机器上运行测试,这样您就可以生成非常大的负载并在网络上的不同主机上运行测试。
在远程机器上运行测试之前,需要执行三个主要步骤:
执行完所有这些步骤之后,每当远程机器执行配置为包含该机器的负载测试场景时,负载测试将在该机器上运行测试。
有许多方法可以添加远程机器,以及配置它们的选项。
若要手动添加远程机器,请完成以下操作:
若要从机器列表中添加机器,请完成以下操作:
若要在高级视图中添加机器,请完成以下操作:
本地主机是 Load Test 选项卡的 Machines 分支中列出的默认机器。如果选择 localhost 节点,则您将看到名称被设置为 localhost,端口被设置为 0。这些设置是永久性的,不能更改。 |
Advanced View 项卡列出作为负载测试 Windows 服务安装在本地网络上的所有远程计算机。所有这些机器都可以用来运行额外的负载测试。
如果想在本地网络上配置一台远程机器来运行负载测试,那么该机器的负载测试版本必须与您机器上运行的负载测试版本匹配。
即使没有将 Load Test 安装为 Windows 服务,您也将始终能够访问 Advanced View 选项卡,并始终能够配置在此面板中显示的远程计算机。但是,如果您没有将 Load Test 安装为 Windows 服务,则您的计算机将不会显示在 Advanced View 选项卡,并且其他远程机器将无法配置您的机器。
Advanced View 选项卡提供以下选项:
若要查看远程安装详细信息,请首先单击 Check Process State 按钮,然后双击表中所需行。将显示 Starter Properties 对话框。在此对话框中,您可以查看版本和构建日期、已安装的应用程序文件以及所选安装的端口名称和端口号。 |
可以验证添加到 Load Tests 选项卡的 Machines 节点的远程机器是否正在运行,并且是否可以通过以下两种方式之一与您的机器通信:
在验证远程机器之后,远程机器节点左侧的状态指示器将发生更改,验证细节将显示在 Messages 窗口中。
根据远程机器的状态,远程机器节点左侧的颜色会发生如下变化:
在负载测试工具中使用的 SOAtest 项目可以具有外部依赖关系,其形式是由负载测试的虚拟用户在执行 SOAtest 测试时使用的文件。为了使最快的项目测试正常运行,这些外部资源需要同时在负载测试控制器机器和运行负载生成器的远程机器上可用。负载测试自动化了将外部依赖项转移到远程机器的过程。
将项目依赖项转移到名为 synchronization的远程机器码的过程。负载测试配置树反映远程机器的同步状态。机器状态图标上的“来回”箭头表示机器的同步状态:
如果将鼠标移到负载测试配置树中的机器节点上,工具提示将显示机器可用性和同步状态。
您可以控制哪些外部资源被转移到远程机器。为此:
注意,如果在资源选择树表中选择一行,那么外部依赖于 localhost 的位置将显示在资源路径子面板(树表下)中。
若要查看特定机器的同步状态:
若要检查配置中所有启用机器是否同步,请执行以下操作:
远程机器同步状态在资源树表中报告,资源树表位于远程机器配置面板的“机器依赖项”选项卡中。如果在树表中选择一行,同步细节将显示在资源状态子面板中。
属于本地安装的机器(在任何端口上运行的本地主机机器)将始终显示为完全同步的。这是因为这些负载测试机器与充当控制器的 localhost 机器属于相同的安装。
若要同步特定的远程机器:
若要同步化配置中所有启用的机器,请执行以下操作:
一个单独的对话框将显示为同步选择的机器的同步进度。
注意:
远程机器同步是机器初始化任务的一部分,它在每次负载测试开始之前执行。在同步阶段,只有那些丢失或修改的资源才会被转移到远程机器上。初始化过程的状态和每台机器的每个初始化阶段的详细信息都反映在负载测试启动对话框的任务进度面板中。
如果您在负载测试中使用的 SOAtest 项目利用了一个文件数据源,并且如果希望文件数据源使用文件数据源时导入目录中的所有文件,那么请确保启用该数据源的 Refresh Dynamically Based on Last Import 选项。 如果不启用该选项,则文件数据源将只使用文件数据源表中所列出的文件,即使导入目录中存在其他文件。
若要禁用或启用现有机器:
如果禁用机器,则机器将不会和负载测试一起运行,直到再次启用它。
若要配置一台机器以高吞吐量模式运行:
有关高吞吐量模式的详细信息,请参阅 Using High Throughput Mode。
默认情况下,Load Test 将对测试中涉及的所有机器应用相同的概要文件和虚拟用户数量的比率或命中率。但是,您可以通过清除场景设置面板中的 Machine Independent 复选框来为不同的机器定制场景;有关详细信息,请参见 Customizing Test Suite Scenarios。
负载测试控制机器(在 GUI 模式以及从您控制负载测试的地方运行)可以使用不同网络上的负载测试服务器 如果连接这些网络的网络设备允许在正在监听的负载测试服务器的端口号上的通讯。
例如,如果在网络 A 上运行您的负载测试控制器,并通过网络 B 上的“lt -loadtestserver 10095”命令在端口号 10095 上启动负载测试服务器,您需要确保介于网络 A 和网络 B 之间在端口 10095 上的通信不受网络设备的限制。
告知系统或网络管理员有关网络配置的问题。配置应该允许该端口的任何 TCP 流量交换。连接网络 A 和网络 B 的网络设备可以将流量从一个网络传递到另一个网络,也可以阻塞它。该网络设备可以配置为在网络之间传递与特定端口相关联的 TCP 流量(即,“开放端口”)。然而,这可能还不够。有时,与某个端口关联的网络 A 和网络 B 之间的通信只能用于特定的网络协议。例如,A 和 B 之间的通信可能在端口 80 上打开,但只对 HTTP 协议流量开放。如果负载测试控制器和服务器位于不同的网络上,则连接这两个网络的网络设备应配置为:
当您希望在这些机器上执行负载测试时,远程机器必须运行 Load Test 服务器。
若要从 GUI(仅限 Windows)启动 Load Test 服务器,请执行以下操作:
在您以 Load Test 服务器模式启动测试机器之后,您可以通过单击客户机机器工具栏中的 Load Test 按钮来启动您的测试。
在测试期间,每台机器将执行指定的虚拟用户数量和用户配置文件的类型。Load Test 将显示客户机的加载速率以及所有服务器的加载速率。
所有结果将在客户端报告。通过从 Load Test Result 的 Machine 框中选择适当的项,可以确定 Load Test 是否显示所有机器的负载测试结果,或者显示所选机器的负载测试结果。
请查阅 负载测试命令行界面 - cli 。