本主题解释如何执行负载测试。在本章节中:

关于 Load Test 项目

启动负载测试之前,需要创建一个负载测试项目,该项目可以保存在 .lt 文件。 

负载测试项目可以引用 SOAtest .tst 文件(包含要负载测试的功能测试,和/或要导入的任何现有负载测试配置),也可以引用 jar 文件。 

如果引用的 .tst 文件或 .jar 文件发生变化,则这些变更也将与负载测试项目相关联。

若要打开一个负载测试项目:

导入现有 SOAtest 负载测试

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

  1. 选择 File> Open
  2. 选择合适的 .tst 文件。

然后将负载测试配置和功能测试导入到 Load Test 工具中。随后,将会根据需求,自动配置负载测试项目。“component archive”类型将设置为“Parasoft SOAtest Component”,导入的负载测试配置中的 .tst 文件将设置为当前组件配置面板中(通过选择主要的 Profiles 节点可获得)的“SOAtest 项目”,并且合适的测试将被映射到配置文件中。 

可以打开此类项目后选择并运行负载测试场景。不要求其它配置,但是需要按照以下部分的描述调整配置:

导入现有 WebKing 负载测试

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

  1. 将此 .tst 文件导入 SOAtest(File> New> Project from Existing SOAtest or WebKing Test Suites)。
  2. 打开负载测试透透视图(Window> Open Perspective> Other> Parasoft Load Test)。
  3. 按照 SOAtest 用户指南中的负载测试章节所描述为负载测试配置并验证测试套件。
  4. 打开 Parasoft 负载测试
  5. 选择 File> Open
  6. 选择合适的 .tst 文件。

然后将负载测试配置和功能测试导入到 Load Test 工具中。随后,将会根据需求,自动配置负载测试项目。“component archive”类型将设置为“Parasoft SOAtest Component”,导入的负载测试配置中的 .tst 文件将设置为当前组件配置面板中(通过选择主要的 Profiles 节点可获得)的“SOAtest 项目”,并且合适的测试将被映射到配置文件中。 

可以打开此类项目后选择并运行负载测试场景。不要求其它配置,但是需要按照以下部分的描述调整配置:

创建用于 SOAtest 功能测试的负载测试


关于如何为服务和 web 功能测试创建负载测试的演示,请查阅 创建并执行负载测试(适用于 Web 和/或服务功能测试)

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

  1. 如果功能测试场景包含 Web 功能测试,则按照 SOAtest 用户指南中的负载测试章节所描述为负载测试配置并验证测试套件。
  2. 在 Parasoft Load Test 工具中,执行以下步骤之一:


    运行负载测试前,必须首先指出使用哪个 SOAtest 功能测试进行负载测试。可以在两个地方这样做:

       •  在负载测试配置向导的 VU 配置文件页面。


       •  在一个 Profile> [Virtual User] 配置面板。


  3. (可选项)选择负载测试树中顶部 Profiles 节点,然后根据需求自定义环境、数据源选项和设置/拆卸选项。
  4. (可选项)根据需求调整其他设置。有关更多详情信息,请查阅:

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

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

  1. 进行下列其中一项操作:
  2. 在负载测试树中选择顶部 Profiles 节点,然后完成该配置面板:
    1. 单击 Select
    2. 选中 Built-in 按钮后,选择 JUnit Runnable



    3. 单击 Finish
  3. 在打开的配置面板中,提供要使用的 JUnit 测试的更多详情:
    1. 在下表中单击 Add ,然后指定 JAR 归档文件,负载测试应该在其中查找 JUnit 测试类及其依赖项。



    2. 在上表中单击 Add ,然后指定要使用的 JUnit 测试类。指定 JUnit 类名后, Load Test 工具检查类是否存在于指定的类路径元素中。类表的 Class found 列显示是否找到该类。
      • 如果类路径元素变更,可以单击 Verify All 进行重新检查。。
    3. Test object use 框(指向同一个面板的顶部)中,选择当用这些测试加载测试时要使用的模式。
      • Virtual users create test object(s)在该模式中,每个虚拟用户创建一个 JUnit 类实例:然后,虚拟用户根据该虚拟用户所属配置文件中的配置执行 Junit 测试对象的测试方法。如果您的 JUnit 方法通过 Sockets 或其他远程对象访问测试外部对象或端点,推荐使用该模式。
      • Virtual Users share test object(s)在该模式中,所有负载测试处理的虚拟用户共享一个 JUnit 对象。所有虚拟用户将调用这个 JUnit 对象的方法。该模式可用于 JUnit 对象的并发性测试。

        例如,您可以编写 JUnit 测试,它测试您编写的 MyCollection 对象的操作。可以使用此模式对合适的 JUnit 测试进行负载测试,以测试 MyCollection 类的并发性问题。在这种情况下,根据经验,应该使用可以在机器上配置的虚拟用户或每秒点击率的最大数来运行负载测试;它将最大化运行 JUnit 时并发放入级别。将负载测试场景的随机化类型设置为“Uniform”。
  4. 配置新的或者默认的配置文件,以便从 jar 文件运行所需的操作。有关更多详情,请查阅 Customizing Profiles
  5. (可选项)如果希望使用设置和/或拆卸方法,请将它们配置如下:
  6. (可选项)根据需求更改其他设置。有关更多详情信息,请查阅:


如果您对任何 .jar 类路径元素进行了修改,则需要重新加载组件,才能使这些更改生效。如要实现这一点,只需单击 Reload 按钮。 

请确保在重新加载组件之前保存项目;未保存项目的更改将在重新加载组件时丢失。


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


有关如何创建由 jar 文件驱动的负载测试演示,请查阅 创建自定义 Load Test 组件

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

  1. 进行下列其中一项操作:
  2. 选择负载测试树中的 Profiles 节点,然后按照如下步骤完成该配置:
    1. 单击 Select
    2. 选择 Local 按钮。
    3. 单击 下一步
    4. 指定合适的 JAR 归档文件。可以从下拉列表中选择内置的组件,也可以浏览到一个有效的 Parasoft 负载测试 .jar 组件存档。
    5. 单击 完成
  3. 配置新的或者默认的配置文件,以便从 jar 文件运行所需的操作。有关更多详情,请查阅 Customizing Profiles
  4. (可选项)根据需求调整其他设置。有关更多详情信息,请查阅:

根据组件实现的不同,组件特定的控件可能会显示在组件配置面板中。对于非内置的组件,将同时显示 Deployment 和 Configuration 选项卡。Deployment 选项卡将显示组件部署属性(如,主组件类的 Java 类名和组件验证消息)。 

内置组件的部署详情可以通过选择 File> Customize Preferences,然后打开 Parasoft 负载测试首选项页面的 Components 页进行查看。

完成负载测试配置向导

若要使用负载测试配置向导:

  1. 在原始向导面板中,指定哪个 .tst 文件包含要用于负载测试的 SOAtest 测试,然后单击 Next
  2. 如果在特定 .tst 文件中检测到一个现有负载测试配置,则进行其中一项以下操作:
  3. VU Profiles 面板中(仅适用于 SOAtest 组件),请选择表示要使用的测试套件的多选框,然后单击 Next
  4. Schedule and Distribution 面板中,根据需求自定义可用选项,然后单击 Next
  5. Performance Monitors 面板中,根据需求配置性能监视器,然后单击 Next
  6. Quality of Service 面板中,根据需求自定义度量,然后单击 Next
  7. Slave Machines 面板中,根据需求配置远程机器,单后单击 Next
  8. Other Options 面板中,根据需求自定义选项,然后单击 Finish

如果选中了 Start Load Test immediately 选项,则 Load Test 工具将根据指定的场景设置以及相关联的测试套件配置文件和机器设置,运行负载测试。如果未选择 Start Load Test immediately 选项,则负载测试选项卡将显示在左侧 GUI 面板汇总,但不会运行负载测试。

运行负载测试

一旦负载测试与 SOAtest .tst 项目或 jar 文件相关联,则可以使用预设置的负载测试场景(钟形曲线,缓冲试验,线性增长,或稳定负载),也可以使用您在 Load Test 工具中创建的任何自定义场景。 

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

若要运行负载测试,只需单击 Load Test 工具栏按钮,然后完成表明要使用什么场景的 Confirm Scenario 对话框。选择场景时,考虑以下几点:

然后 Load Test 工具将根据指定的场景设置以及相关的虚拟用户配置配置设置和机器设置运行负载测试。如果没有自定义这些设置,则 Load Test 工具将在本地机器上运行测试,并创建虚拟用户。

如果希望在指定的持续时间结束之前停止测试,则单击 Stop 工具栏按钮。然后 Load Test 工具将停止生成虚拟用户并显示停止(Stopping)对话框。如果不采取任何进一步的操作, Load Test 工具将允许每个活跃的虚拟用户完成当前正在执行的测试。 

如果希望 Load Test 工具立即停止测试,则单击 Force Stop 按钮。注意,如果选择强制停止选项,则主负载测试结果中将不会包括停止虚拟用户的结果,并且测试结果可能变得不准确或具有误导性。

监视测试进度

Load Test 工具显示测试期间和测试后的测试进度数据。此外,它将在测试完成后展示测试结果。

Load Test 工具记录以下测试进度详情:执行详情、执行状态和负载测试错误。

查看执行详情

负载测试开始后,立即在右侧 GUI 面板的 Load Test Progress 选项卡中的 Graph 选项卡中显示负载测试详情。该 Graph 选项卡允许查看与正在进行的负载测试相关的图形数据。 



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



以下图形将显示在 Graph 选项卡图例中:

自定义执行详情

除了从 Graph 选项卡图例中进行选择外,还有很多其他方法可以让您在运行负载测试时操作 Graph 选项卡中显示的细节:

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

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

若要使用指定颜色填充图表区,请选择 Fill graph areas 多选框。


若要自定义负载测试进展图形颜色:

  1. 右键单击 Graph 选项卡图例中所需栏,并从快捷菜单中选择 ChangeColor 。将打开 Selectcolor 对话框。



  2. 根据对话框需求操作配色方案,然后单击 OK


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

  1. 请从负载测试树的 Scenarios 节点选择当前场景。 UsersProfiles 选项卡以及选定的 Users 选项卡将显示在右侧 GUI 面板。
    选项卡灰色的部分表示负载测试运行的时间。无法对图标曲线的任何灰色部分进行更改。



  2. 可以从 Vertical scale 下拉菜单选择,单击 More pointsLess points 按钮,或者使用鼠标对曲线进行拖拽,选择用户(Users)选项卡,并根据需求修改图形曲线。  在负载测试过程中,无法更改其持续时间。
  3. 可以从 Vertical scale 下拉菜单中选择,单击 More pointsLess points 按钮,或者使用鼠标对曲线进行拖拽,选择 Profiles 选项卡,并根据需求修改其图形曲线。在负载测试过程中,无法更改其持续时间。
    关于自定义 Users 或 Profiles 选项卡的更多信息,请查阅 Customizing Test Suite Scenarios
  4. 通过选择 Window> Load Test Progress返回到负载测试进展图表。


选择若要在测试完成后查看执行详情:

  1. 选择 Window> Load Test Progress
  2. 单击 Graph 选项卡。

查看执行状态

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

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

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

  1. 选择 Window> Load Test Progress
  2. 单击 Snapshot 选项卡。

查看负载测试错误

如果 Load Test 工具在测试执行期间遇到错误(例如,如果由于远程机器无法运行负载测试服务器而致使无法在该机器上启动测试),则会在状态栏显示一个橙色的感叹号图标。 

若要查看错误信息:

Load Test 工具还会将测试执行错误记录在消息报告中。只有在测试执行期间, Load Test 工具遇到错误时,该选项和报告才可用。若要在测试完成后,查看该报告: 

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

若要在测试过程中查看该信息:

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

  1. 选择 Window> Load Test Progress
  2. 单击 Log 选项卡。

任何打开 Log 选项卡的时候,您都可以为控制台设置日志级别( warn 设置是最冗长的; error 是最不冗长的)以及缓冲高度。

使用测试结果

可以在负载测试(Load Test)结果窗口查看负载测试结果。有关访问并解释可用负载测试报告的更多详情,请查阅 审查和定制负载测试结果

配置 JVM GC 和内存选项

Load Test 性能(和在某些环境中,时间测量的准确性)可能取决于 JVM GC 设置和 JVM 可用的内存大小。 

建议每个负载测试进程至少有 4GB 的系统内存。 负载测试进程 JVM 内存大小由负载测试启动器或脚本自动配置。若要明确配置负载测试进程的 JVM 可用的最大内存,可以从命令行将 -XmxNNNNM 参数传递给负载测试进程,其中 NNNN 是内存的大小(以 MB 为单位)。在 Windows 系统上,在参数前加上 -J;例如:“lt -J-Xmx4096M”.

为了优化性能,Parasoft 负载测试使用 JVM 参数 "-XX:+UseParallelGC” 指定的并行年轻一代垃圾回收器。如果有必要的话,它可以使用命令行参数 "-XX:-UseParallelGC” 关闭。如果要在 Windows 系统上使用该参数,则在参数前加上 -J(紧跟可执行文件的名称)。例如:loadtest.exe -J-XX:-UseParallelGC。若要在负载测试 JVM 中启用并发标记和清除 GC,则必须明确禁用 UseParallelGC 选项;例如lt -J-XX:-UseParallelGC -J-XX:+UseConcMarkSweepGC。