本主题介绍如何执行负载测试。章节目录:

关于负载测试项目

进行负载测试之前,需要创建一个可以保存在 .lt 文件中的负载测试项目。 

负载测试项目引用 SOAtest .tst 文件(其中包含要负载测试的功能测试和/或想导入的任何现有负载测试)或 jar 文件。 

如果引用的 .tst 文件或 .jar 文件发生变更,那么这些变更也会影响负载测试项目。

若要打开负载测试项目:

导入现有的 SOAtest 负载测试

若要从 SOAtest .tst 文件导入现有的负载测试:

  1. 前往文件 > 打开
  2. 选择合适的 .tst 文件。

然后,负载测试配置和功能测试将导入 Load Test 中。负载测试项目会根据需求自动配置。“component archive”类型将设置为“Parasoft SOAtest Component”,从中导入负载测试配置的 .tst 文件将设置为组件配置面板(通过配置文件节点获取)中当前的“SOAtest project”,同时,相应的测试将映射到配置文件中。 

在打开此类项目后,您可以选择并运行负载测试场景。不要求其他配置,但是需要根据下面部分的描述修改配置:

为 SOAtest 功能测试创建负载测试

有关如何创建用于服务和 web 功能测试的负载测试的说明,请参阅创建和执行负载测试(用于 Web 和/或服务功能测试)

若要从 SOAtest 功能测试场景创建负载测试:

  1. 如果功能测试场景包含 Web 功能测试,请配置并验证用于负载测试的测试套件,如 SOAtest 用户指南的 Load Test 部分所述。
  2. 在 Parasoft Load Test 工具中,进行其中一项以下操作:


    运行负载测试之前,必须先指明负载测试应使用的 SOAtest 功能测试。您可以在两个位置执行此操作:

       •  在 Load Test 配置向导的虚拟用户配置文件页面。

       •  在其中一个配置文件> [虚拟用户] 配置面板。

  3. (可选项)选择 Load Test 树顶部的配置文件节点,然后根据需求自定义 environments、data source 以及 setup/teardown 选项。
  4. (可选项)根据需求修改其他设置。详情请参阅:

创建由 JUnit 测试驱动的负载测试

若要在 jar 文件中创建由 JUnit3 或 JUnit4 测试驱动的负载测试:

  1. 请执行以下任一操作:
  2. 选择 Load Test 树顶层的配置文件节点,然后完成配置面板:
    1. 点击选择
    2. 启用内建后,选择 JUnit Runnable
    3. 点击完成
  3. 在打开的配置面板中提供了要使用的 Junit 测试的详细信息:
    1. 在下表中,点击添加然后指定 Load Test 查找 JUnit 测试类及其依赖项的 JAR 包。
    2. 在上面的表中,点击添加然后指定要使用的 JUnit 测试类。指定 Junit 类名称后,Load Test 检查该类是否存在于指定的 classpath 元素中。类表的细节列显示是否找到类。
      • 如果 classpath 元素进行了变更,请点击验证所有以重新进行验证。
    3. 测试对象使用框中(在同一个面板的顶部),请选择使用这些测试进行负载测试时的模式。
      • 虚拟用户创建测试对象:在该模式下,每个虚拟用户都会创建一个 JUnit 类实例。然后,虚拟用户所属配置文件中的配置执行 Junit 类的测试方法。如果 Junit 方法通过套接字或其他远程对象访问测试外部对象或端点,则推荐使用这种模式。
      • 虚拟用户共享测试对象:在该模式下,负载测试过程的所有虚拟用户都共享一个 JUnit 对象。所有虚拟用户都将调用这个 JUnit 对象的方法。此模式可用于 JUnit 对象的并发测试。

        例如,您可以编写一个 JUnit 类,用于测试您编写的 MyCollection 对象的操作。通过在此模式下对适当的 JUnit 测试进行负载测试,可以测试 MyCollection 类的并发问题。在这种情况下,作为一条经验法则,您应使用机器上可配置的最大虚拟用户数或每秒点击数来运行负载测试;这样可最大限度地提高运行 JUnit 的并发水平。将负载测试场景的随机化类型设置为“统一的”。
  4. 配置新的或默认配置文件来运行 jar 文件中的所需操作。详情请参阅自定义配置文件
  5. (可选项)如果想使用 setup 和/或 teardown 方法,请按以下方式配置:
  6. (可选项)根据需求修改其他设置。详情请参阅:


如果改变了任何 .jar classpath 的元素,则需要重新加载这些变更才能使这些更改生效。若要重新加载,只需点击重新加载即可。 

保证重新加载组件之前已经保存项目;在组件重新加载时未保存的变更会丢失。

创建由 Jar 文件驱动的负载测试

关于如何创建由 jar 文件驱动的负载测试的说明,请参阅创建自定义 Load Test 组件

若要创建由 jar 文件中可获得的自定义组件驱动的负载测试:

  1. 请执行以下任一操作:
  2. 选择 Load Test 树中的配置文件节点,然后完成配置面板:
    1. 点击选择
    2. 启用本地
    3. 点击下一步
    4. 指定合适的 JAR 包。从下拉菜单中选择内建组件,或者是找到有效的 Parasoft Load Test .jar 组件压缩包。
    5. 点击完成
  3. 配置新的或默认配置文件来运行 jar 文件中的所需操作。详情请参阅自定义配置文件
  4. (可选项)根据需求修改其他设置。详情请参阅:

根据组件的实现,特定于组件的控件可能会出现在组件配置面板中。对于非内建组件,会同时显示部署和配置这两个选项卡。部署显示组件部署属性,例如主组件类的 Java 类名以及组件验证消息。 

可以通过前往文件> 自定义首选项,然后打开 Parasoft Load Test 首选项对话框中的 Components 页面来查看内建组件的部署详细信息。

完成 Load Test 配置向导

如果要使用负载测试配置向导,请完成以下操作:

  1. 在初始向导面板中,指定 .tst 文件包含想要用来进行负载测试的 SOAtest 测试,然后点击下一步
  2. 如果在指定的 .tst 文件中检测到现有负载测试配置,请执行其中一项以下操作:
  3. 虚拟用户配置文件面板中(仅针对 SOAtest 组件),选择您要使用的测试套件,然后点击下一步
  4. 计划表 & 分发面板中,请根据需求自定义可用选项,然后点击下一步
  5. 性能监控器面板中,根据需求配置性能监控器,然后点击下一步
  6. 服务质量面板中,根据需求自定义指标,然后点击下一步
  7. 肉机面板中,根据需求配置远程机器,然后点击下一步
  8. 其他选项面板中,请根据需求自定义选项,然后点击完成

如果启用了立即开启 Load Test 选项,Load Test 将根据特定场景设置、关联测试套件配置以及机器设置运行负载测试。如果未启用立即开启 Load Test 选项,左侧 GUI 面板中会出现 Load Tests 选项卡,但是不会运行负载测试。

运行负载测试

负载测试与 SOAtest .tst 项目或 jar 文件关联后,可以使用当前的负载测试场景(钟形曲线、缓冲测试、线性增加或稳定负载)或者在 Load Test 中创建的任何自定义场景进行负载测试。 

如果您有要进行负载测试的项目,则将启用 Load Test 工具栏按钮:

运行负载测试,只需点击工具栏中的 Load Test,然后完成确认场景对话框,说明要使用的场景。选择场景时需考虑以下几点:

Load Test 将运行基于特定场景设置、关联虚拟用户配置文件以及机器设置的负载测试。如果您未自定义设置,则 Load Test 会在本机上运行测试和创建虚拟用户。

如果指定持续时间停止之前想停止测试,请点击工具栏中的停止。Load Test 会停止创建虚拟用户,并打开正在停止对话框。如果不进行后续操作,Load Test 将允许每个在线的虚拟用户完成当前正在执行的测试。 

如果您希望 Load Test 立即停止测试,请点击强制终止。请注意,如果选择强制终止选项,则停止的虚拟用户的结果将不包括在主负载测试结果中,负载测试结果可能会变得不准确或具有误导性。

监控测试过程

Load Test 在测试期间和测试之后显示测试过程数据。另外,它在测试完成后会显示测试结果。

Load Test 记录以下测试过程详情:执行细节、执行状态和 Load Test 错误。

查看执行详情

负载测试开始后,立即在右侧 GUI 面板的 Load Test 进度选项卡的图表选项卡中显示负载测试详细信息。这个图表选项卡允许您查看与正在进行的负载测试有关的图形数据。 

可以通过右键点击图表选项卡,然后选择其中一个可用的布局选项,以更改显示的图形的数量和布局。

图表选项卡图例中显示以下图形:

自定义执行详情

除了从图表选项卡图例中的选项中进行选择之外,还有多种其他方法可以操作负载测试运行时在图表选项卡中显示的详情:

若要过滤显示的图表数据:

若要将报告的 Y 轴从默认线性刻度更改为对数刻度(反之亦然):

若要使用指定颜色填充图表区,请启用填充图表地区

若要自定义负载测试过程图形颜色:

  1. 右键点击图表选项卡图例中所需栏并选择改变颜色。打开选择颜色对话框。
  2. 根据对话框需求操作配色方案,然后点击 OK

若要在负载测试运行时动态修改虚拟用户数或配置权重:

  1. 从 Load Test 树的场景节点中选择当前场景。右侧 GUI 面板中显示用户和配置文件选项卡,其中用户选项卡为选中状态。
    选项卡灰显部分表示负载测试的经过时间。您不能修改已变灰的图形曲线的任何部分。
  2. 选择用户选项卡,并根据需求通过选择垂直刻度菜单,点击更多点较少点,或鼠标拖放曲线来修改图形曲线。在进行负载测试时,您无法更改其持续时间。
  3. 选择用户配置选项卡,并根据需求通过选择垂直刻度菜单,点击更多点较少点,或鼠标拖放曲线来修改图形曲线。在进行负载测试时,您无法更改其持续时间。
    关于自定义用户或配置文件选项卡的更多信息,请参阅自定义测试套件场景
  4. 前往窗口> 加载测试进度以返回 Load Test 进度图表。

测试完成后,若要查看执行详情:

  1. 前往窗口> 加载测试进度
  2. 然后点击图表选项卡。

查看执行状态

测试执行期间,您可以随时查看正在运行的虚拟用户的执行状态信息(配置文件和当前执行状态)。测试执行期间每 3 秒更新一次执行状态信息:

若要在测试进行中查看执行状态信息:

测试完成后,若要查看执行状态信息:

  1. 前往窗口> 加载测试进度
  2. 然后点击 Snapshot 选项卡。

查看 Load Test 错误

如果 Load Test 在测试执行期间遇到错误(例如,由于远程计算机无法运行 Load Test 服务器而导致测试无法进行),那么它会在状态栏显示一个橙色的感叹号图标。 

若要查看错误信息:

Load Test 还会在消息报告中打印出执行错误的日志。该选项和报告只在 Load Test 在测试执行期间遇到错误时才可用。测试完成后,若要查看此报告: 

另外,您可以在测试执行期间或测试执行之后查看模拟详情(例如,有关访问远程测试机器、线程中断等问题的信息)。

若要在测试进行中查看这些信息:

测试完成后,若要查看模拟详情, 

  1. 前往窗口> 加载测试进度
  2. 然后点击日志选项卡。

日志选项卡开着的任何时候,您都可以设置该控制台的日志级别(最详细为警告设置,最简单为错误设置)以及缓冲区高度。

处理测试结果

您可以在 Load Test 结果窗口查看负载测试结果。有关访问和解释可用的 Load Test 报告的详细信息,请参阅查看和自定义负载测试结果

配置 JVM 垃圾回收器和内存选项

Load Test 性能(在某些情况下,时间测量的准确性)可能取决于 JVM GC 设置以及可用于 JVM 的内存量。 

建议每个 Load Test 进程至少有 4 GB 的系统内存。Load Test 进程 JVM 内存大小由 Load Test 启动器或脚本自动配置。若要具体设置可用于 Load Test 进程的 JVM 的可用最大内存量,请通过命令行将 -XmxNNNNM 参数传递给 Load Test 进程,其中 NNNN 是兆字节的内存量。在 Windows 系统上,参数之前加上 –J;例如:“lt -J-Xmx4096M”.

为了优化性能,Parasoft Load Test 使用 JVM 参数 "-XX:+UseParallelGC" 指定的并行年轻代垃圾回收器。如果有必要,可以使用命令行参数 "-XX:-UseParallelGC" 将其关闭。如果您将在 Windows 系统上使用此参数,请在参数之前加上 -J(在可执行文件名之后)。例如:loadtest.exe -J-XX:-UseParallelGC。若要在 Load Test JVM 中启用并发标记和清除 GC,则必须明确禁用 UseParallelGC 选项;例如:lt -J-XX:-UseParallelGC -J-XX:+UseConcMarkSweepGC。