Load Test 提供了许多自定义负载测试的方法。本主题介绍如何自定义负载测试和可用的自定义项。章节目录: 

自定义测试套件场景

通过自定义要使用的场景自定义如何运行特定的测试。可以使用场景自定义以下参数:

若要自定义现有场景或创建新场景:

  1. 通过从负载测试选项卡中执行其中一个以下步骤,打开或创建要自定义的场景:
  2. 使用右侧 GUI 面板中的控件自定义场景。以下部分说明了可用的自定义控件。

场景名称

名称字段输入新的名称来更改场景名。

场景类型

场景类型确定了如何配置场景的几个方面。可以为每个测试套件配置文件指定虚拟用户的确切数或每秒点击率。还可以将测试套件配置文件分布表示为一般比率,并允许 Load Test 根据指定的比率随机分配测试套件配置文件。

从场景类型菜单中选择: 

测试持续时间

持续字段中输入新值。适用的持续时间限制如下:

受控参数

受控参数设置确定测试是针对虚拟用户的数量进行控制,还是针对每秒点击数(点击率)进行控制。 

受控参数菜单选择以下选项之一:

不规则分布

不规则分布设置确定受控参数的随机选择。

如果将受控参数设置为用户数,则 Load Test 将根据下列分布随机化虚拟用户的思考时间:

如果将受控参数设置为每秒点击,则 Load Test 会根据下面的分布随机分配两次调用的间隔时间

垂直刻度

垂直刻度菜单选择一个值,进而设置测试运行期间要模拟的最大用户数或点击数。可以在场景中设置的最大值取决于您的许可证。若要查看许可证详情,请前往帮助> 关于

如果将受控参数设置为用户数量,则所应用的负载则是所选场景中所有机器上的用户数量和点击数。 

如果将受控参数设置为点击配置数量,则为给定测试实现的每秒点击数和运行测试的机器数量确定所应用的负载。配置文件延迟选项将不可用,并且将忽略任何预先存在的延迟设置。若要确定许可允许执行的每秒点击数,则授权您的虚拟用户数量除以 10。例如,如果您被授权使用 100 个虚拟用户,则能够以每秒 10 次点击的速度执行测试。

  1. 右键点击面板右上角的行,并选择比例选项。可以在场景类型设置为直接的配置文件时,为每个配置文件设置刻度。如果您在权重配置文件模式下设置刻度,则根据每台机器设置刻度。 
     
  2. 提示时指定缩放因子。 

更改图表

图表直观地显示了对负载测试进行配置后所应用的随时间变化的用户数量或点击数。配置图表的界面根据您是直接配置配置文件还是配置权重配置文件而异。 

指定机器 

启用单独的机器选项,将相同的设置应用于所有测试机器(默认)。只有当有多台机器可用时,此选项才可用。图表将显示标记为“所有机器”的一根线。该选项允许同时更改所有机器的线的位置和形状。禁用该选项,将不同的设置应用于不同的测试机器。也可以单独启用机器。  

显示配置文件 

如果直接配置配置文件(将场景类型设置为直接的配置文件),并且很多测试套件配置文件都可用,则您可以启用所有选项以显示所有配置文件,或是启用单个配置文件。

更改垂直刻度

有关更改图表刻度的详情,请参阅Vertical Scale

更改形状

可以修改图表上的点来更改其形状。

  1. 右键点击面板右上角的行,并选择编辑图表
  2. 提示时指定 Y 字段中的值。 
  3. 点击下一个来编辑图表上的下一个点,或点击上一个来编辑上一个点。您可以使用键盘快捷键 ALT-左箭头 和 ALT-右箭头。
     
  4. 指定 X 字段的值并点击申请
  5. 如果需要,重复步骤 2 和 3 来配置其他的点,并在完成时点击 OK。 

也可以点击图表中的拖拽点。

若要让虚拟用户数量或点击率保持平稳,则请确保这条线是平的,然后拖住这条线向上或向下移动,直到它对应于整个测试持续时间所需的用户数量或每秒点击数。

也可以右键点击图表中的行,并选择添加点来创建其他的节点。

可以点击和拖动点,或右键点击并选择编辑点来指定虚拟用户的确切数量或每秒点击数。负载测试将通过绘制各点之间的斜率,自动确定没有特定点的每个时间间隔的虚拟用户数或每秒点击数。

也可以点击更多点来自动将创建的点数加倍

新的点将在已有的点之间以规律的间隔添加。若要删除一个点,则右键点击特定点并选择删除。点击较少点来删除那些不是拐点的点。 

使用预设置的形状

可以将图表设置为预设形状。

  1. 右键点击面板右上角中的线,并选择设置图表形状。
     
  2. 选择图表形状并设置峰值。
     
  3. 点击 OK 将形状应用于所选定图表。

设置配置文件权重

可以指定  Load Test 在测试持续时间内任一时间点选择特定配置文件的概率。分配给配置文件的比率越高,它就越可能被选中。只有在测试套件配置文件可用时,才可使用权重配置文件。

  1. 垂直刻度中选择值来更改配置文件的最大比率。确定 Load Test 如何随时间分布用户配置文件时,值越高,可以使用的比值区间就越多。用户配置文件的比率决定了 Load Test 在测试持续时间内任一时间点选择特定配置文件的概率。 
  2. 右键点击面板右上角中的线并选择比例图来缩放线条的形状,以表示配置文件比率的不同范围。 
  3. 提示时输入缩放因子。
  4. 如果您想保持稳定的用户配置文件比率,请确保该线是平的,并向上或向下拖动每个配置文件的水平条,直到在所有时间间隔内都与您想要的配置文件权重相对应。 
  5. 若要改变用户配置文件的比率,则为每个时间间隔创建一个“点”,以便指定配置文件权重(请参阅Changing the Shape),然后该点拖至所需位置。负载测试会自动确定每一个没有特定点的时间间隔的配置文件权重,具体方法是绘制每个点之间的斜率。
  6. 可以通过点击更多点自动加倍所创建的点的数量。新的点将在已有的点之间以规律的间隔添加。可以通过右键点击并选择删除点来删除点。若要删除不是拐点的点,则点击较少点
可以通过右键点击要保存的图表,然后选择保存图像将任何场景的图表(配置图表和测试进程图表)保存为 GIF。

自定义场景的服务质量指标

负载测试服务质量(QoS)分析功能允许用户通过将 QoS 指标应用于 Load Test 结果对服务/应用程序的性能进行评估。根据这些指标,Load Test 会评估性能,以确定负载测试是成功还是失败。当服务/应用程序必须满足特定的性能需求之后才能考虑部署时,QoS 分析尤其重要。

对 Qos 指标的介绍

QoS 指标允许为负载测试定义一组回归测试。在随后的负载测试上,所有指标都将成功通过。任何失败的指标都是服务/应用程序性能回归的迹象。 

QoS 功能可以从负载测试树中访问。每个场景节点(Bell、缓冲区测试、线性增加、稳定负载)下都对应一个 QoS 节点。选择 QoS 节点之后,概要明细选项卡将显示在右侧 GUI 面板中。
 
概要选项卡显示 QoS 指标的全局视图,其在明细选项卡中配置。概要选项卡包括指标及其说明列表。在概要选项卡度量指标列表中有五种默认的指标: 

上述每个指标都将根据类型分组(如,统计、计数、吞吐量、损耗)。配置的任何其他指标也将出现在概要选项卡中。

描述列表包含根据该指标指定的参数自动生成的每个指标正在验证的内容的说明。
 
明细选项卡显示为所选定场景配置的可用指标。明细选项卡还显示从指标度量列表中选择的指标的名称、参数和注意事项。

新建 Qos 指标

新建 Qos 指标步骤:

  1. 点击度量指标列表下新建。将打开添加指标向导。
  2. 添加指标向导选择所需的 QoS 指标,并点击完成
    QoS 指标将添加到明细选项卡的左侧面板中,其参数将显示在右侧面板中。

每个指标对完整的负载测试结果执行不同的验证集。负载测试运行后,QoS 报告概要将显示在测试消息报告中,同时还将提供一个单独的、更详细的 QoS 报告。

过滤器选择对 QoS 指标计算的影响

在 QoS 指标机器、配置文件和测试过滤器面板中的测试树选择面板(如测试树选择面板导航和选项中所述)中做的选择会影响用于计算指标值的数据集。随后,这将影响指标的成功或失败结果。可以在 Load Test 报告的相关部分中预览下面列出的指标类型计算中使用的数据。 

同时,有关基于当前指标值对指标进一步的阐述,请参阅 QoS 指标视图参数面板中显示的工具提示。
 

配置 QoS 指标参数

若要更改任意 QoS 指标,请从明细选项卡的左窗格中的列表中选择一个指标,并在明细选项卡右窗格中相应地配置其参数。选项将随所选定指标变化而变化。但是,如果您将光标放在右侧窗格的参数上,则工具提示将显示关于参数配置的消息。

也可以从列表选择一个或多个(CTRL-点击)指标,然后右键点击选择项,并根据需求从快捷菜单中剪切、复制、粘贴删除。在从列表中右键点击一个或多个(CTRL-点击)指标时,可以选择指标另存为来将所选定指标保存为 QoS 指标集(.ms 文件),同时也可选择 Load 度量指标来加载之前已保存的指标集。也可以通过将所需的指标拖拽到所需的序列中更改列表排序。

自定义包含大量配置文件的场景

关于包含大量配置文件和/或大量图表点的场景,对用户和配置文件选项卡的每个图表中的各种选项进行配置和跟踪可能变得很困难。在这种情况下,对于每个场景来说,使用概况表细节表可能会更方便。

要查看概况表和细节表,请选择所需的场景节点,右侧 GUI 面板中将显示概况表细节表选项卡。

在概况表和细节表视图中,可以编辑绿色的字段(类似于每个机器的用户数量和每个配置文件的配置文件权重)。在这些绿色字段中所做的更改将反映到相应的用户和配置文件选项卡中,反之亦然。例如,如果要将默认用户的配置文件权重从 1 更改为 5,则该更改将反映到配置文件选项卡中。类似地,在配置文件选项卡中相同的更改将反应到概况表选项卡或细节表选项卡中。

概况表

根据权重配置文件或直接的配置文件场景类型,概况表视图提供了提供不同的信息。

细节表

根据权重配置文件或直接的配置文件场景类型,细节表视图提供了提供不同的信息。

对环境进行配置

环境是可以在负载测试配置中引用的变量集合。  运行测试时,Load Test 将使用活动环境中变量的值替换项目配置中变量的名称。通过更改活动环境,您可以快速轻松地更改 Load Test 使用的值。  

通过环境选项卡完成环境的创建和切换。若要访问该选项卡:

  1. 请选择 Load Test 配置树中的配置文件节点。
  2. 打开环境选项卡。

环境选项卡分成两个部分,环境列表面板(左侧)和环境详情面板(右侧)。
 

对环境列表进行配置

环境列表面板包含以下管理环境的按钮:

对环境详情面板进行配置

创建和/或选择环境后,环境详情面板将显示一张表和用于管理环境变量的按钮。

若要编辑现有的环境变量,可以双击某个值或点击该值并突出显示后键入新值。

配置异步测试

如果正在用于负载测试的 SOAtest 项目包含具有回放工具和异步测试功能(或消息桩工具)的测试,则将需要启动 Load Test 中的 SOAtest 服务器,以便处理与 SOAtest 项目相关联的异步消息传递。 

可以通过以下两种方式启动 SOAtest 服务器:

如果正在以命令行模式或 Load Test 服务器模式运行带有 SOAtest 异步工具的负载测试,则将需要在这些机器上启用自动 SOAtest 服务器启动(因为在命令行模式中,SOAtest 服务器只能自动启动)。

对数据源使用进行配置

如果 SOAtest .tst 文件引用数据源,则可以配置是否在负载测试期间使用这些数据源。

若要配置数据源选项:

  1. 请选择 Load Test 配置树中的配置文件节点。
  2. 打开数据源选项选项卡。可用的数据源将列出在左侧面板中。
  3. 若要配置数据源选项,将其应用到整个测试套件中,请选择要配置的测试套件,然后根据需求在右侧面板中自定义以下选项:
  4. 若要配置用于特定数据源的选项,则选择要配置选项的数据源,然后在右侧面板根据需求自定义以下项:

 

配置 Setup/Teardown 测试执行

如果 SOAtest .tst 文件使用 setup 或 teardown 测试,则可以配置如何在负载测试期间使用这些数据源。

若要配置 setup/teardown 选项:

  1. 请选择 Load Test 配置树中的配置文件节点。
  2. 打开 Setup/Teardown 选项选项卡。
  3. 选择所需选项。可用选项包括:

自定义配置文件

每次创建虚拟用户,都是基于一份可用的配置文件。虚拟用户在负载测试开始时创建,每次虚拟用户完成测试运行并且指定的负载测试持续时间尚未超过时,就会创建虚拟用户。

可配置任意数量的配置文件或机器,但是虚拟用户的数量或每秒使用的点击率受到许可证的限制。例如,如果您只被授权运行 100 个虚拟用户,则您可以配置任意数量的配置文件,但只有基于这些配置文件的 100 个虚拟用户才可以在任何给定时间处于活跃状态。如果有 20 个配置文件,但都只被授权运行一个虚拟用户,则所有 20 个配置文件最终都将在测试期间使用(前提是测试有足够的持续时间),而只有一个配置文件在任何给定时间处于活跃状态。

若要自定义默认的配置文件或创建新配置文件:

  1. 执行以下步骤之一,打开、禁用、启用或创建要自定义的配置文件:
  2. 使用右侧 GUI 面板中的控件自定义配置文件选项。可用选项包括:

在虚拟用户模式中限制每秒点击数

在将虚拟用户选择作为受控参数的负载测试场景中,有时需要限制每秒点击率。在虚拟用户模式中限制每秒点击数有以下两种方法:

下面的图片显示了在场景概况表视图中配置每秒点击节流的示例:
 

自定义数据记录参数

 场景控制面板的报告设置选项卡允许您配置负载测试期间记录什么数据。
 
 可用选项包括:

注意记录个体点击细节选项可以在禁用记录个体点击选项时使用。在这种情况下,将不会记录单独点击数据(报告的分散视图部分),然而测试执行详情仍可通过 Load Test 报告图表视图的右键点击菜单选项显示记录详情获得。 

有关在 Load Test 报告中查看成功和错误详情的更多信息,请参阅详细报告

自定义 Load Test 停止程序

自定义 Load Test 停止队列

场景控制面板的停止设置> 停止队列区域允许在生成 Load Test 停止事件和负载测试活动的实际停止之后,配置负载测试行为。(我们将使用术语“负载测试停止时间”来表示生成负载测试停止事件和所有负载测试活动实际停止之间的时间。)
 
执行以下操作时将生成负载测试停止事件:

生成负载测试停止事件后,Load Test 会停止创建虚拟用户,并等待现有虚拟用户退出程序。快速停止和正常停止选项控制虚拟用户是在当前测试完成后退出,还是在完成所有预定的测试之后退出:

如果停止程序需要花费很长时间,则使用负载测试停止进程对话框中的强制终止按钮。(更多详情请参阅提示:停止测试)。

自定义负载测试停止操作

可以使用功能 Java、JavaScript 或 Jython 脚本自定义如何停止负载测试。对于可能造成意外结果的特别情况,此功能在自动停止负载测试时特别有用。例如,在负载测试夜间运行期间,如果达到一定数量的错误或 CPU 使用率达到特定临界值时,您可能希望停止负载测试。

您定义的脚本通过 com.parasoft.api.loadtester API 与负载测试人员通信,并接收 LoadTestScriptArgsContext 作为参数,还可以返回 LoadTestScriptAction。返回的 LoadTestScriptAction.Action_Stop 与在负载测试期间点击负载测试 GUI 中的停止具有相同的效果。

您可以在机器上的以下目录中找到可用的示例脚本:
[Load_Test/SOAtest_installation_dir]\[version number]\examples\loadtest\LoadTesterScripting。

若要使用脚本自定义 Load Test 停止操作:

  1. 在负载测试选项卡中选择场景节点,并在右侧配置面板中选择停止设置选项卡。
  2. 语言菜单中选择 Java、JavaScriptJython,指示您的脚本当前或将要使用的语言。
  3. 在实现框中定义要实现的脚本。
  4. 方法菜单中选择合适的参数。这个列表将由脚本中包含的任何定义组成。由于脚本中可以包含多个参数,所以可以选择要在此方法中使用的一个参数。
  5. 运行负载测试。
    您定义的脚本在负载测试期间每三秒被调用一次(负载测试输出频率采集)。如果满足脚本中指定的任何标准,负载测试将停止。如果脚本导致负载测试停止,则用户定义的负载测试停止操作的说明将反映到 Load Test 报告中。任何脚本错误都将在负载测试进程视图的日志选项卡中进行报告。

自定义机器选项

使用高吞吐量模式

在高吞吐量模式下,可将更高级别的负载应用于正在测试的系统,同时最小化生成此类负载所需的硬件。

每个加入负载测试的 Load Test 机器都可以配置为在高吞吐量模式下进行。在这种模式下,将禁用测试响应验证以及不重要的附加工具。因此,运行负载测试要求更少的系统资源,如 CPU 周期。这一点允许高吞吐量模式中的机器以每秒更高的测试执行速度运行。

若要启用此模式,在 Load Test 配置树中的机器节点上选择合适的机器,然后启用高流通量模式

通常情况下,用户选择一些机器以常规验证模式运行,而另一些机器则以未经验证的高流通量模式运行。以验证模式运行的机器同时充当负载生成器和测试结果收集器,而未经验证的机器只充当负载生成器。负载测试完成后,以验证模式收集到的结果将被用来估计未经验证模式下机器的错误计数区间,以及整个负载测试的总错误计数估计区间。

下面是一些典型的问答,可以帮助更好地理解如何应用高吞吐量模式功能:

应该什么时候使用高吞吐量模式?

如果没有足够的硬件来生成所需的负载,则应该使用高吞吐量模式。例如,如果您的负载生成机器正在以或高于 75-80% 的 CPU 利用率运行。

可以希望什么类型的吞吐量增加?

吞吐量增长将随着功能测试结构变化而变化。在功能测试配置中,附加到测试的工具越多,在高吞吐量模式下的性能增益就越大。

误差估计是如何计算的? 

误差估计的计算是使用 Wilson 的方法计算“二项分布比例的置信区间”的基础上进行的。关于本主题更多信息,可通过下面的链接获取:

在已验证模式和未验证模式下运行测试比例应该是多少? 

一般而言,在已验证模式下运行的测试越多,得到的误差估计区间就越小。根据经验,在已验证模式下,每个测试的运行次数应该至少在中间十位,比如 40-60。

从多个 IP 地址生成网络通讯报文

Parasoft Load Test 可以配置为,为其虚拟用户使用多个 IP 地址。配置此虚拟 ip 涉及两个步骤:

  1. 在负载测试机上设置 IP 别名,如下面的合适部分所述:
  2. 将虚拟用户配置为使用多个 IP 地址,如 Configuring Load Test Machines to use Multiple IP Addresses

支持 Parasoft SOAtest 组件

下面的 SOAtest 工具和传输支持多个 IP 地址功能:

Windows 配置

若要在 Windows 机器上设置 IP 别名:

  1. 使用 ipconfig 命令,查看可用网络接口的列表、及其 IP 地址和掩码。
  2. 在 DOS 提示窗口(DOS shell)或批处理脚本中使用 netsh 命令添加或删除 IP 地址。

Linux 配置

若要在 Linux 机器上设置 IP 别名:

下面的例子向 eth0 接口添加了一个 IP 别名:

下面的示例删除了一个 IP 别名。

配置负载测试机器以使用多个 IP 地址

配置虚拟用户使用多个 IP 地址: 

  1. 请从 Load Test 配置机器节点中选择相应的机器。
  2. 在机器配置视图的机器 IP 配置面板中,选择自定义并选择要使用的网络接口。您可以选择使用所选接口的所有 IP,也可以选择特定的 IP 地址。

机器网络接口和 IP 配置视图如下图所示:

在负载测试执行期间,机器上的每个虚拟用户将从该机器的 IP 地址列表中分配一个 IP 地址。 

虚拟用户(VU)将以循环方式分配 IP 地址。例如,如果将机器“localhost”配置为使用两个 IP 地址,如下图所示,那么 VU 将按照以下顺序分配 IP 地址:

一旦一个 IP 地址被分配给一个虚拟用户,它将在该虚拟用户必须执行的所有测试中使用。

同步远程机器

在 Load Test 中使用的 SOAtest 项目可以具有外部依赖关系,其形式是由负载测试的虚拟用户在执行 SOAtest 测试时使用的文件。SOAtest 项目测试的正确运行取决于负载测试控制器机器和运行负载生成器的远程机器上这些外部资源的可用性。Load Test 自动化了将外部依赖项转移到远程机器的过程。

有关如何确保项目所需的所有外部资源在远程计算机上可用的详细信息,请参阅将项目外部依赖项转移到远程计算机