本教程介绍如何使用 Load Test 工具来测试服务和 Web 接口功能测试。章节目录:

教程概要

在 SOAtest 创建了功能测试后,下一步便是使用 Parasoft Load Test 进行负载测试。负载测试用于模拟大使用量的情况,从而暴露仅在这种情况下才会出现的 bug。可以对 Web、SOA 和组合端到端测试(通过 Web 服务、JMS、web 接口和数据库等扩展到消息层之外的测试场景)进行负载测试。 

此外,Parasoft Load Test 工具包括负载测试实现 Parasoft 负载测试组件 API 的任何组件的框架;比如,它可以支持 Junits 的性能和并发测试,或者使用实现 Parasoft 组件 API 的轻量级基于 Socket 的组件进行负载测试。这使得负载测试具有针对性,实现定制化,以应对组织执行性能验证时面临的各种独特的复杂性。 

如果在以前版本的 SOAtest 中配置了负载测试,则可以直接导入并完全支持它们。

Parasoft Load Test 工具允许全面控制负载测试过程的各个方面,包括以下领域:

  • 控制多台机器(集群):可以在网络上控制多台机器(运行 Load Test 工具)来生成比单台机器更大量的负载。点击负载测试窗口中的机器文件夹,并查看出现的 GUI。对于每台机器,您都可以选择高流通模式,该模式通过禁用某些响应处理操作来使用相同的硬件生成更高的负载强度。详情请参阅在远程机器上运行负载测试
  • 用户配置文件:创建用户配置文件使您能够直接将负载测试与功能测试关联起来。这意味着,一旦创建了功能测试,在负载下运行这些测试便不需要进行额外的工作。双击负载测试窗口中的配置文件文件夹,并查看每个创建的配置文件。
  • 自定义场景:Load Test 工具提供了四种默认负载测试场景(Bell、缓存测试、线性增加和稳定的负载),您也可以创建自定义场景。可以创建这些场景来模拟可能在正常使用期间出现的真实场景。点击场景文件夹,并查看为该示例提供的场景。
  • 监控器:可以向 Load Test 工具添加监控器,以在进行负载测试时监控各种系统资源。右键点击监控器文件夹,以查看要添加的监控器。Load Test 支持 SNMP、Windows Perfmon 和 JMX 监控器。详情请参阅使用监控器

视频教程:使用现有 SOAtest 场景配置并运行 Load Test 工具

包含 Web 功能测试的测试场景的通用工作流

负载测试任何 SOAtest 功能测试套件(包括 Web 功能测试)的典型工作流程是:

  1. 使用浏览器录制 web 场景。
  2. 使用所需验证和提取物自定义测试场景。
  3. 在 SOAtest 中切换 Load Test 工具透视图。
  4. 在 Load Test 浏览器中选择合适的测试套件并点击工具栏中的 Validate for Load Test

    • 如果执行成功,则很可能不需要进一步的场景配置/调整,您的场景已经可以用于 Parasoft Load Test 的负载测试。
    • 如果执行失败,则可以使用 SOAtest 来配置测试套件,以便进行负载测试。例如,对于在特定浏览器场景中跨用户操作传递的变量 URL 参数值,可能需要配置。更多详情,请参阅 SOAtest 用户指南的负载测试部分。
  5. 启动 Parasoft Load Test,并为 SOAtest 中创建的 .tst 文件创建新的负载测试场景。

同样的工作流也适用于端到端测试 SOAtest 测试场景(通过 Web 服务、JMS、Web 接口和数据库等扩展到消息层之外的测试场景)。Parasoft Load Test 工具将驱动您在 SOAtest 的功能测试套件中进行的所有测试的并发性。

所有其他 SOAtest 测试场景的通用工作流

负载测试不包含 Web 功能测试的任何 SOAtest 功能测试功能的典型工作流:

  1. 在 SOAtest 中定义和自定义场景。
  2. 启动 Parasoft Load Test,并为 SOAtest 中创建的 .tst 文件创建新的负载测试场景。

创建 Web 应用程序功能测试

在本教程中,我们将使用 ParaBank 示例 web 应用程序。关于如何部署 ParaBank 的本地实例,请参阅设置 ParaBank。 

开始本课程之前,我们建议您先完成 SOAtest 教程中的 Web 功能测试部分,了解如何录制用于 Load Test 的浏览器测试套件。

录制新 Web 场景

若要录制将用于负载测试的 Web 功能测试:

  1. 在 SOAtest 中,前往文件> 新建> 测试 (.tst) 文件
  2. 在文件名称字段中输入 ParaBank,点击下一步
  3. 选择 Web> 录制 web 场景,点击下一步
  4. 选择录制新的 Web 场景,点击下一步
  5. 如下完成起始位置向导中的录制操作,然后点击完成
    1. 测试套件名称字段输入 ParaBank 功能测试
    2. 开始录制位置字段输入 http://localhost.parasoft.com/index.html
  6. 将开始测试,并打开浏览器窗口。在 ParaBank 应用程序中执行以下操作:
    1. 以 john 的用户名,demo 的密码登入 ParaBank

    2. 点击首个列出的帐户链接。
    3. 登出应用程序,然后关闭浏览器,结束录制会话。 

验证用于负载测试的场景

若要验证准备用来负载测试的测试:

  1. 通过选择窗口> 打开透视图> 其他> Parasoft Load Test 将 SOAtest 切换至 Load Test 透视图。这将在左侧打开一个 Load Test 浏览器。这类似于测试用例浏览器,但双击每个浏览器测试用例将打开一个为准备负载测试的测试用例步骤而设计的特殊编辑器。此编辑器显示浏览器为加载该 Web 页面而生成的各种请求 URL,并且将在这些请求中使用人和参数化值。
  2. 选择 ParaBank 测试套件根节点并点击工具栏中的 Validate for Load Test。在本示例中,测试成功,表明功能 web 场景已经准备好进行负载测试。

现在可以按照Creating and Performing a Load Test (for Web and/or Service Functional Tests)中所描述配置并执行负载测试。

创建服务功能测试

启动测试之前,我们建议您先完成 SOAtest 用户指南中的 SOAtest“功能测试”和“场景测试”教程。

若要阐明负载测试,我们将使用 SOAtest 教程中的测试套件。如果 SOAtest 工作空间中还没有添加教程课程,请按照以下方式创建:

  1. 在 SOAtest 中,前往文件> 新建> 其他,选择已有的 SOAtest 测试套件项目
  2. 点击下一步
  3. 项目名称字段中输入示例
  4. 目录下,点击浏览并前往 <SOAtest/Load_Test_installation_directory>/examples/tests 以指定项目测试套件的位置。
  5. 点击完成。示例项目将不会被添加到测试用例浏览器中。它将包含多个测试(.tst)文件。

现在可以按照Creating and Performing a Load Test (for Web and/or Service Functional Tests)中所描述配置并执行负载测试。

创建并执行负载测试(用于 Web 和/或服务功能测试)

若要为前面练习中引用的 Web 或服务测试定义并运行负载测试:

  1. 打开 Parasoft Load Test 工具:
    • Windows:前往 Start> Programs > Parasoft> SOAtest> Load Test
    • Linux/Mac: 将目录更改为 loadtest 目录,然后在提示符处输入以下命令:
      ./loadtest 
  2. 将启动欢迎向导。选择新建项目,点击下一步
  3. 选择 SOAtest,然后点击下一步
  4. 请执行以下任一操作:
    • 浏览到 ParaBank 功能测试.tst(在您的 SOAtest 工作空间中),然后点击下一步
    • 如果正在使用 SOAtestTutorial.tst 文件完成本教程,请找到 SOAtestTutorial.tst,然后点击下一步。如果从头开始创建,则它将出现在您的工作空间中。否则,在 <Parasoft SOAtest/Load Test Install Dir>/examples/tests/ 中打开示例文件。如果现有配置中检测到 Load Test,请选择新建配置
  5. 选择树结构中的测试场景,然后点击下一步
    • Services: 场景:Test Suite: Scenario Test – Search, Add to Cart, and Remove from Cart", "Test Suite: Plain XML Services".

      Web: 场景:ParaBank Functional Test.
  6. 在计划表 & 分发界面指定以下配置,点击下一步,直到出现其他选项界面:
    1. 分钟字段中输入 2
    2. 在分发部分启用线性增加选项。要选择线性增加选项,您必须拥有合适的负载测试许可证。如果许可证上没有启用虚拟用户,您将只能生成稳定负载场景。
  7. 在其他选项界面中,启用立即开启 Load Test记录个体点击,然后点击完成

 Load Test 工具将开始指定的负载测试。一个新的负载测试选项卡显示在左侧 GUI 面板中,图形选项卡显示在 Load Test 进度面板中。

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

负载测试可以随时停止,但是我们将让它运行完整的 2 分钟,同时监控和操作测试的运行细节。 

查看加载测试进度选项卡,注意图表选项卡显示以下内容:

  • 虚拟用户曲线以稳定的线性方式攀升,这与本课程前面部分所选择的线性增加场景一致。
  • 如果测试完成测试开始曲线彼此几乎吻合,这表明测试的速度很快(比如,响应接收速度很快)。如果这些曲线之间存在很大的间隙,则表示测试的执行时间更长。

还注意到 Snapshot 选项卡显示当前活跃的虚拟用户及其调用的操作。测试执行期间,此选项卡中的信息将每三秒更新一次。

负载测试完成之后,测试信息概要将显示在结果面板中,其中包括项目名称、开始负载测试和结束负载测试的时间、所选定场景以及任何机器和配置文件。 

也可以选择查看负载测试的不同统计报告。若要查看负载测试的详细统计数据,请完成以下内容:

  1. 从结果面板的视图菜单选择统计

    当查看统计报告时,可以使用输出类型菜单。输出类型菜单决定显示哪种类型的报告输出。该菜单提供两种类型的报告,每种报告显示不同的信息列。报告类型不同点在于:
    • 常规报告:包含测试套件名称、测试索引、测试名称、最大/最小/平均时间(ms)、运行次数和失效次数。
    • 网络客户端报告:包含通用报告中所有的信息,加上最小/最大/平均 Ping (ms)、最小/最大/平均请求大小 (bytes)、最小/最大/平均响应大小 (bytes) 最小/最大/平均总大小 (bytes)。
  2. 若要访问有关特定测试故障的详情,请双击相关报告行。可以通过定位表示该测试的行,然后检查该行中的失效次数列中的的数字来确定给定的测试是否失败。

自定义负载测试配置文件和场景

可以通过自定义要使用配置文件和场景,以自定义运行特定负载测试的方式。可以确定负载测试持续时间、虚拟用户的分布、随时间变化和机器命中率以及随时间变化的用户配置文件分布。 

  1. 双击 Load Tests 选项卡中的配置文件文件夹,并选择一个可用的测试套件节点。配置面板将显示在右侧。
  2. 在面板底部,将延迟更改为 3 秒。这样可以模拟用户在决定是否订购一本书之前的犹豫。
  3. 选择场景节点下的线性增加。线性增加场景控件出现在结果面板中,用户图表显示 localhost 曲线。
  4. 将 localhost 曲线的端点拖放到 2 分钟时 10 个用户的坐标中。
  5. 垂直刻度菜单中选择 20
  6. 点击更多点。将在 localhost 行中央出现一个点。
  7. 点击该新点并将其拖放至 1 分钟时 10 个用户的坐标中。
  8. 展开线性增加节点,并选择该节点下的服务质量节点。将出现概要明细选项卡。
  9. 点击明细选项卡,点击新建按钮,以打开添加指标向导。
  10. 选择统计值指标,然后点击完成。
  11. 在打开的指标配置面板中,在名称字段中输入执行时间要求
  12. 针对右侧 GUI 中统计值菜单,选择平均。执行时间 (毫秒),以及小于符号(<),然后在文本字段中输入 200。如果执行时间超过 200 毫秒,将导致负载测试结果失败。有关配置服务质量指标的详情,请参阅自定义场景的服务质量指标
  13. 选择场景分支下的线性增加节点,然后点击工具栏中的 Load Test。Load Test 工具将开始执行自定义的负载测试,图表选项卡将显示在右侧 GUI 面板中。
  14. 等待(两分钟)负载测试完成。运行负载测试时,您可以通过选择合适的复选框,以查看图表选项卡内的各种参数。

负载测试完成之后,测试信息概要将显示在右侧 GUI 面板中,其中包括项目名称、开始负载测试和结束负载测试的时间、所选定场景以及任何机器和配置文件。 

视频教程:微调负载测试配置和场景

查看报告

负载测试完成后,必须分析收集到的数据,以便了解应用程序/服务在负载下是如何执行的。Load Test 工具使您能够配置和生成 Load Test 报告。

在本节中,您将学会如何查看详细报告以及如何生成 HTML 报告。

若要查看详细报告,请完成以下步骤:

  1. 从结果面板的视图下拉菜单中选择详情报告。将出现一个带有各种参数的图形选项卡。
  2. 在图表内,可以执行以下操作:
    • 要查看不同参数的图形和视图,请启用结果面板底部的所需参数。
    • 若要以对数刻度查看多个参数,请启用日志范围。使用对数刻度可以在同一图形上看到多条曲线的形状(即使显示的值彼此相距很远)。
    • 若要查看整个图中录制的详情,请右键点击图中任意区域,然后选择显示录制细节。默认录制错误详情。也可以录制成功详情;有关如何配置的详细信息,请参阅自定义数据录制参数

正如您所看到的,您可以从详情报告的图形选项卡中收集负载测试的各种详情。也可以通过直方图和表格选项卡获得其他信息。关于这些选项卡和负载测试详细报告的更多信息,请参阅查看和自定义负载测试结果

将项目保存为 .lt 文件

  1. 通过点击工具栏中的保存项目来保存该负载测试项目。
      
  2. 在打开的对话框中,在文件名称字段输入项目名称,然后点击保存按钮。Load Test 工具将保存项目,并向文件名添加 .lt 扩展名。
  • No labels