本教程阐明了如何使用 Load Test 工具来测试服务和 Web 接口功能测试。在本章节中:

教程概要

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

 观看视频教程

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

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

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

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

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

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

  1. 使用浏览器录制 web 场景。
  2. 使用所需验证和提取物自定义测试场景。
  3. 在 SOAtest 中切换 Load Test 工具透视图。
  4. 在负载测试资源管理器(Load Test Explorer)中选择合适的测试套件并单击 Validate for Load Testing 工具栏按钮。



  5. 启动 Parasoft Load Test 工具,并为 SOAtest 中创建的 .tst 文件创建新的负载测试场景。

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

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

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

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

创建 Web 应用程序功能测试

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

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

录制新 Web 场景

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

  1. 在 SOAtest 中,选择 File> New> Test (.tst) file
  2. 在 File name 字段中输入 ParaBank ,然后单击 Next
  3. 选择 Web> Record web scenario ,然后单击 Next
  4. 选择 Record new web scenario ,然后单击 Next
  5. 如下完成起始位置向导中的录制操作,然后单击 Finish
    1. 在 Test Suite Name 字段输入 ParaBank Functional Test
    2. 在 Start Recording From 字段输入 http://localhost.parasoft.com/index.html


  6. 将开始测试,并打开浏览器窗口。在 ParaBank 应用程序中执行以下操作:
    1. 以 john 的用户名, demo 的密码登入 ParaBank。

       
    2. 单击首次列出的帐户链接。


    3. 登出应用程序,然后关闭浏览器,结束录制会话。 

验证用于负载测试的场景

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

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

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

创建服务功能测试

启动测试之前,我们建议您先完成 SOAtest 用户指南中的 SOAtest "Functional Testing" 和 "Scenario Testing" 教程。

若要阐明负载测试,我们将使用 SOAtest 教程中的测试套件。如果教程课程还不可在 SOAtest 工作空间中使用,则按照以下方式创建它们:

  1. 在 SOAtest 中,选择  File> New> Other,选择 Project from Existing SOAtest or WebKing Test Suites,然后单击 Next



  2. Project Name 字段中输入 Examples
  3. Directory下,通过单击 Browse 然后导航到 [SOAtest/Load_Test_installation_directory]/examples/tests指定项目测试套件的位置。
  4. 单击 Finish。示例项目将不会被添加到测试用例资源管理器中。它将包含多个测试(.tst 文件)。

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

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

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

  1. 打开 Parasoft Load Test 工具:
  2. 将启动欢迎向导。选择 New Project ,然后单击 Next
  3. 选择 SOAtest ,然后单击 Next
  4. 请进行下列其中一项操作:
  5. 选择树中的测试场景,然后单击 Next
  6. 在 Schedule & Distribution 屏幕中指定以下配置 ,然后单击 Next ,直到出现 Other Options 屏幕:
    1. 在 Duration 字段中指定 2 分钟。
    2. 在 Distrbution 部分启用 Linear Increase 选项。为了选择 Linear Increase 选项,您必须拥有合适的负载测试许可证。如果许可证上没有启用虚拟用户,则您将只能生成 Steady Load 场景。


  7. 在 Other Options 屏幕中,启用 Start Load Test immediatelyRecord individual hits,然后单击 Finish



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

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

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

查看负载测试进程选项卡,注意 Graph 选项卡显示以下内容:

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

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

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

  1. 从结果面板的 Views 菜单选择 Statistics



    当查看统计报告时,可以使用 Output Types 菜单。输出类型 菜单确定显示的哪个报告输出类型。该菜单提供两种类型的报告,每种报告显示不同的信息列。报告类型不同点在于:
  2. 若要访问有关特定测试故障的详情,请双击相关报告行。可以通过定位表示该测试的行,然后检查该行中的 Failure Count 列中的的数字来确定给定的测试是否失败。

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

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

观看视频教程

  1. 双击 Load Tests 选项卡中的 Profiles 文件夹,并选择一个可用的测试套件节点。配置面板将显示在右侧。
  2. 在面板底部,将延迟 Value 更改为 3 秒。这可能会模拟用户在决定是否订购一本书之前如何犹豫。
  3. 选择 Scenarios 节点下的 Linear Increase 。Linear Increase 场景控件显示在结果面板,User graph 显示 localhost 曲线。
  4. 将 localhost 曲线的端点拖放到 2 分钟时 10 个用户的坐标中。
  5. Vertical scale 下拉菜单中选择 20
  6. 单击 More Points 按钮。将在 localhost 行中央出现一个点。
  7. 单击该新点并将其拖放至 1 分钟时 10 个用户的坐标中。


  8.  展开 Linear Increase 节点,并选择该节点下的 QoS 节点。将显示SummaryDetails 选项卡。
  9. 选择 Details 选项卡,然后单击 New 按钮,以打开 Add Metric 向导。
  10. 选择 Statistic Metric ,然后单击 Finish
  11. 在打开的度量配置面板中,在 Name 字段中输入 Execution Time Requirement
  12. 针对右侧 GUI 中 Statistic 下拉菜单,请选择 AvgExe.Time (ms) ,以及小于符号(<),然后在 text 字段中输入 200。如果执行时间超过 200 毫秒,则将导致负载测试结果失败。有关配置 QoS 度量的更多详情,请查阅 Customizing QoS Metrics for Scenarios
  13. 选择 Scenarios 分支下的 Linear Increase 节点,然后单击 Load Test 工具栏按钮。Load Test 工具将开始自定义的负载测试, Graph 选项卡将显示在右侧 GUI 面板中。
  14. 等待(2 分钟)负载测试完成。运行负载测试时,您可以通过选择合适的多选框,以查看 Graph 选项卡内的各种参数。

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

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

查看报告

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

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

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

  1. 从结果面板的 Views 下拉菜单中选择 Detailed Report 。将显示一个带有各种参数的 Graph 选项卡。
  2. 在图表内,可以执行以下操作:

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

将项目保存为 .lt 文件

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