本主题解释如何运行涉及多台机器的负载测试。在本章节中:
了解目的和通用程序
负载测试工具允许在远程机器上运行测试,这样您就可以生成非常大的负载并在网络上的不同主机上运行测试。
在远程机器上运行测试之前,需要执行三个主要步骤:
- 将机器添加到“负载测试”选项卡的“机器”区域。
- 配置一个或多个场景,以便在远程机器上运行测试。
- 将远程机器作为负载测试服务器启动。
执行完所有这些步骤之后,每当远程机器执行配置为包含该机器的负载测试场景时,负载测试将在该机器上运行测试。
添加和配置远程机器
有许多方法可以添加远程机器,以及配置它们的选项。
手动添加机器
若要手动添加远程机器,请完成以下操作:
- 右键单击 Machines 节点。
- 从快捷菜单中选择 New Machine 。一个 New Machine节点将出现在负载测试树的 Machines 节点上。
- 若要更改新机器的名称,请在右边 GUI 面板的 Host 字段中输入一个名称。
- 若要更改新机器的端口号,请在右边 GUI 面板的 Port 字段中输入一个端口号。
- 若要配置机器以在 High Throughput Mode模式下运行,请选择机器配置面板中的 High Throughput Mode 复选框。有关高吞吐量模式的详细信息,请参阅 Using High Throughput Mode。
从机器列表中添加机器
若要从机器列表中添加机器,请完成以下操作:
- 选择 Load Tests 中的 Machines 节点。将在 Project Configuration 面板的 Machines List 中显示可用机器列表。如果没有显示机器,这意味着在您的网络上没有找到负载测试 Windows 服务。
- 选择要添加的机器,然后单击 Add 按钮。
- 若要刷新可用机器的列表,请单击 Refresh 按钮。
在高级视图中添加机器
若要在高级视图中添加机器,请完成以下操作:
- 选择 Load Tests 中的 Machines 节点。 Machines List 和 Advanced View 选项卡将显示在 Project Configuration 面板中。
- 选择 Advanced View 选项卡。
- 右键单击 Advanced View 选项卡中的远程机器行。要将所选机器添加到机器列表中,必须运行所选机器。
- 从快捷菜单选择 Add to Machine List 。与主机名对应的新机器节点将出现在负载测试树的 Machines 节点中。
注意
本地主机是 Load Test 选项卡的 Machines 分支中列出的默认机器。如果选择 localhost 节点,则您将看到名称被设置为 localhost,端口被设置为 0。这些设置是永久性的,不能更改。
在高级视图选项卡中配置选项
Advanced View 项卡列出作为负载测试 Windows 服务安装在本地网络上的所有远程计算机。所有这些机器都可以用来运行额外的负载测试。
如果想在本地网络上配置一台远程机器来运行负载测试,那么该机器的负载测试版本必须与您机器上运行的负载测试版本匹配。
即使没有将 Load Test 安装为 Windows 服务,您也将始终能够访问 Advanced View 选项卡,并始终能够配置在此面板中显示的远程计算机。但是,如果您没有将 Load Test 安装为 Windows 服务,则您的计算机将不会显示在 Advanced View 选项卡,并且其他远程机器将无法配置您的机器。
Advanced View 选项卡提供以下选项:
- Refresh: 单击此处可找到本地网络上的所有负载测试 Windows 服务安装。表显示每个远程机器安装的属性,并按列标题进行排序。表中显示以下内容:
- Host: 显示远程计算机的名称。
- Process State: 显示负载测试服务器进程是否正在运行。
- Process Port: 显示负载测试服务器正在侦听的端口号。
- Check Process State: 单击以查看所选机器的进程状态。
- Start: 单击以在选定的远程主机上启动负载测试服务器进程。
- Stop: 单击以停止所选远程主机上的负载测试服务器进程。
注意
若要查看远程安装详细信息,请首先单击 Check Process State 按钮,然后双击表中所需行。将显示 Starter Properties 对话框。在此对话框中,您可以查看版本和构建日期、已安装的应用程序文件以及所选安装的端口名称和端口号。
验证远程机器
可以验证添加到 Load Tests 选项卡的 Machines 节点的远程机器是否正在运行,并且是否可以通过以下两种方式之一与您的机器通信:
- 右键单击 Machines 节点并从快捷菜单中选择 Verify Machines 。将按顺序验证 Machines 节点下的所有机器。
- 右键单击 Machines 节点下面的一个远程机器节点,并从快捷菜单中选择 Verify 。只验证所选的远程机器。
在验证远程机器之后,远程机器节点左侧的状态指示器将发生更改,验证细节将显示在 Messages 窗口中。
根据远程机器的状态,远程机器节点左侧的颜色会发生如下变化:
- 绿色: 指示远程计算机已准备好。
- 灰色: 指示远程计算机正在运行负载测试。当负载测试运行时,灰色表示机器处于繁忙状态,不能用于其他负载测试。
- 红色: 指示远程计算机不可用,将无法运行任何负载测试。
将项目外部依赖项转移到远程计算机
在负载测试工具中使用的 SOAtest 项目可以具有外部依赖关系,其形式是由负载测试的虚拟用户在执行 SOAtest 测试时使用的文件。为了使最快的项目测试正常运行,这些外部资源需要同时在负载测试控制器机器和运行负载生成器的远程机器上可用。负载测试自动化了将外部依赖项转移到远程机器的过程。
机器的同步状态
将项目依赖项转移到名为 synchronization 的远程机器码的过程。负载测试配置树反映远程机器的同步状态。机器状态图标上的“来回”箭头表示机器的同步状态:
- 绿色箭头: 表示机器同步。项目所需的所有外部资源在远程计算机上都可用。
- 红色箭头: 表示机器不同步。远程计算机上缺少项目所需的全部或部分外部资源。
- 灰色箭头: 机器的同步状态未知。
如果将鼠标移到负载测试配置树中的机器节点上,工具提示将显示机器可用性和同步状态。
选择同步的资源
您可以控制哪些外部资源被转移到远程机器。为此:
- 在负载测试配置树中,选择 Machines> localhost。
- 在 localhost 配置面板的机器依赖选项卡中,选择要传输到远程机器的资源。
- 如果依赖表为空,则意味着应用程序无法找到任何外部依赖项或无法找到当前项目。
- 默认情况下选择所有资源。如果使用负载测试之外的自定义依赖项传输机制,则可以取消部分或全部资源的选择,这些机制是根据项目设置和测试环境的具体情况定制的。
注意,如果在资源选择树表中选择一行,那么外部依赖于 localhost 的位置将显示在资源路径子面板(树表下)中。
查看远程机器的同步详细信息
若要查看特定机器的同步状态:
- 右键单击适当的机器节点,然后选中 Check Synchronization。
若要检查配置中所有启用机器是否同步,请执行以下操作:
- 右键单击 Machines 节点,然后选择 Check Synchronization。
远程机器同步状态在资源树表中报告,资源树表位于远程机器配置面板的“机器依赖项”选项卡中。如果在树表中选择一行,同步细节将显示在资源状态子面板中。
属于本地安装的机器(在任何端口上运行的本地主机机器)将始终显示为完全同步的。这是因为这些负载测试机器与充当控制器的 localhost 机器属于相同的安装。
手动同步远程机器
若要同步特定的远程机器:
- 右键单击适当的机器节点,然后选择 Synchronize。
若要同步化配置中所有启用的机器,请执行以下操作:
- 右键单击 Machines 节点然后选择 Synchronize。
一个单独的对话框将显示为同步选择的机器的同步进度。
注意:
- 在同步之前,您不必检查机器的同步状态。负载测试将在任何同步之前自动执行此操作。
- 在启动负载测试之前,您不必手动同步远程机器。作为负载测试启动过程的一部分,应用程序将自动为您完成。但是,您可以选择手动同步机器,以减少负载测试启动时间。
在负载测试启动过程中自动远程机器同步
远程机器同步是机器初始化任务的一部分,它在每次负载测试开始之前执行。在同步阶段,只有那些丢失或修改的资源才会被转移到远程机器上。初始化过程的状态和每台机器的每个初始化阶段的详细信息都反映在负载测试启动对话框的任务进度面板中。
处理 SOAtest 项目依赖关系
如果您在负载测试中使用的 SOAtest 项目利用了一个文件数据源,并且如果希望文件数据源使用文件数据源时导入目录中的所有文件,那么请确保启用该数据源的 Refresh Dynamically Based on Last Import 选项。 如果不启用该选项,则文件数据源将只使用文件数据源表中所列出的文件,即使导入目录中存在其他文件。
启用或禁用远程机器
若要禁用或启用现有机器:
- 右键单击 Machines 分支中的合适节点,并从快捷菜单选择 Disable/Enable 。
如果禁用机器,则机器将不会和负载测试一起运行,直到再次启用它。
启用高吞吐量模式
若要配置一台机器以高吞吐量模式运行:
- 请在机器配置面板中选择“高吞吐量模式”复选框。
有关高吞吐量模式的详细信息,请参阅 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 协议流量开放。如果负载测试控制器和服务器位于不同的网络上,则连接这两个网络的网络设备应配置为:
- 允许与负载测试服务器正在网络 A 和 B 之间监听的端口相关联的 TCP 流量交换(“开放端口”)。
- 解除、删除或禁用任何可能阻止网络 A 和 B 之间与该端口关联的 TCP 通信的协议过滤器。
从 GUI 运行测试
启动负载测试服务器
当您希望在这些机器上执行负载测试时,远程机器必须运行负载测试服务器。
若要从 GUI(仅限 Windows)启动负载测试服务器,请执行以下操作:
- 选择 Start> Programs> Parasoft> Load Test> Load Test Server。
运行负载测试
在您以负载测试服务器模式启动测试机器之后,您可以通过单击客户机机器工具栏中的 Load Test 按钮来启动您的测试。
在测试期间,每台机器将执行指定的虚拟用户数量和用户配置文件的类型。Load Test 将显示客户机的加载速率以及所有服务器的加载速率。
所有结果将在客户端报告。通过从负载测试结果的 Machine 框中选择适当的项,可以确定负载测试是否显示所有机器的负载测试结果,或者显示所选机器的负载测试结果。
通过命令行界面运行测试
请查阅 负载测试命令行界面 - cli 。