Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from space FUNCTDEV and version SVC2023.1

...

Table of Contents
maxLevel1

关于自定义 Load Test 组件

Parasoft Load Test 功能可以通过创建自定义负载测试组件来扩展。Parasoft Load Test 充当负载测试组件或负载测试 bean 的容器。负载测试组件是一个功能核心,它定义了负载测试期间虚拟用户的行为。负载测试容器向组件提供以下服务: 

...

可以通过扩展位于 com.parasoft.simulator.api 包中的 Load Test 组件 Java API 的 SimRunnable 类来创建负载测试组件。SimRunnable 表示可运行的 Simulator。Simulator 是 Load Test 容器的名称,它模拟多个虚拟用户活动。

构建组件示例

组件示例位于 SOATest/Load Test 安装程序的 examples\dev\components 文件夹中。simple-runnable-source.jarsocket-runnable-source.jar 压缩包包含本教程所述组件的源、配置和构建文件。您将需要将这些归档解压到 Load Test 组件项目目录,该目录必须手动创建。 

创建一个 Load Test 组件项目目录

若要在 Load Test 安装之外创建组件项目目录,请执行以下操作:

  1. simple-runnable-source.jar 复制到组件项目目录中,并解压组件源归档文件。
  2. socket-runnable-source.jar 解压到 SocketRunnable 目录,该目录必须手动创建。每个源目录包含一个 component-build.xml ANT 构建脚本。
  3. 打开这个文件并确保 load.test.install.root 属性指向您的 SOAtest/Load Test 安装目录。
  4. 更改 load.test.jar.path 属性,使其指向 <INSTALL-DIR>/plugins/com.parasoft.ptest.libs.web_<VERSION>/root 目录中的 loadtest.jar 文件。

创建一个 SimpleRunnable 负载测试组件项目

若要在 Eclipse 中创建一个 SimpleRunnable 负载测试组件项目,请执行以下步骤:

...

Note
title注意

组件应该使用 Java 1.5 JRE 构建,最好使用 JRE 1.5.0_18。

每个示例项目中的 component-build.xml ANT 脚本的默认目标构建一个组件 jar 归档文件,该文件可以作为自定义或内置组件部署到 Load Test 中。如果使用 Eclipse 来编译此处描述的组件项目,请从 component-build.xml 脚本的 jar 目标中删除 compile 目标依赖项。 

创建一个 SocketRunnable 负载测试组件项目

SocketRunnable 组件扩展了 SimpleRunnable 组件。首先编译 SimpleRunnable,然后从 SimpleRunnable 根目录中将 main.jar 放入 SocketRunnable 项目的 lib 目录。

...

  1. 打开新建项目“New Project”向导,选择 Java Project,点击 Next
  2. 选择 Create project from existing source,选择 SimpleRunnable 目录,然后点击 Next
  3. Source 选项卡中,确保默认输出文件夹设置为 SimpleRunnable/target/classes
  4. 打开 Libraries 选项卡并点击 Add External Jar
  5. 添加 <INSTALL-DIR>/plugins/com.parasoft.ptest.libs.web_<VERSION>/root 目录中的 parasoft.jarcom.parasoft.api.jar 文件。 
  6. Libraries 选项卡中,确保 lib/jtidy-r820.jarlib/main.jar 在项目 classpath 上。
  7. 在 Eclipse 中,右键点击 component-build.xml 并选择 Run As> Ant Build 以创建组件 .jar 文件。

将示例组件加载/部署到 Load Test 中

组件可以作为外部存档加载到 Load Test 中,也可以作为内置组件部署。

从外部存档加载组件

若要从外部存档加载组件:

  1. 在 Load Test GUI 中选择 Load Test 配置树的配置文件节点。
  2. 在项目配置视图中,点击选择
  3. 在选择组件归档文件对话框中,选择本地选项,点击下一步,然后选择您的负载测试组件压缩包文件。
  4. 点击完成。组件部署视图将如下所示。

如果组件验证失败,错误消息将显示在开发视图下方的表中。 

将组件存档作为内置组件部署

若要将组件存档作为内置组件部署到负载测试应用程序中,请执行以下操作:

  1. 将组件 jar 压缩包放入 <INSTALL-DIR>/plugins/com.parasoft.ptest.libs.web_<VERSION>/root /lt-components/built-in 文件夹。

  2. 重启 Load Test。
  3. 前往文件 > 自定义首选项。您将在内置组件部署视图中看到组件部署细节,如下所示。

    如果一个内建组件已经成功部署,那么它将在内建的下拉列表中的选择组件压缩包对话框中可用,如下图所示:

使用 Load Test 组件 API

可通过 Load Test 应用程序菜单栏的帮助 > API > 组件 API 获取 Load Test 组件 API 的 Javadoc 文档。

分析 SimpleRunnable 组件示例

本节将研究 SimpleRunnable 负载测试组件。

...

部署过程完成后,将调用 onDeploy 方法。onDeploy 方法从 .cfg 文件初始化组件,该文件包含在组件存档中。只有当组件存档文件在远程安装时不存在,或者其在主计算机和远程计算机上的校验不同时,才会将其序列化到远程计算机。这确保了只有在需要时才会将组件存档传输到远程机器。 

组件存档描述符

每个组件存档的根目录中必须包含 lt-jar.xml 组建存档描述符。描述符必须包含从 SimRunnable 派生的主组件类的类名,以及从 SimRunnableOutput 派生的组件输出的类名。有关组件存档描述符文件格式的示例,请参阅所包含组件的 lt-jar.xml 文件。

使用 SimpleRunnable 组件运行 Load Test

一旦将 SimpleRunnable 组件部署到 Load Test 中,并熟悉 SimpleRunnable 源代码和组件存档结构,就可以修改组件存档配置,重新运行负载测试,并查看修改后的组件配置的效果。例如,您可以按照以下步骤来更改此组件模拟的测试执行时间:

  1. 在 .cfg 文件中添加 execTimeMs 参数。
  2. 运行组件存档 ANT 构建脚本。
  3. 在 Load Test 组件视图中,点击重新加载
  4. 重新运行负载测试。注意,Load Test 报告统计部分的测试执行时间遵循配置的执行时间。


    执行统计数据反映了将组件配置文件中的 execTimeMs 参数修改为 1200 后的情况。

分析 SocketRunnable 组件示例

本节研究 SocketRunnable 组件。SocketRunnable 类扩展了 SimpleRunnable,并演示了以下内容: 

...

SocketRunnable 组件使用 SocketTest 类实例建立到特定主机和端口的连接,发送可自定义的请求,并使用 Java 套接字接收响应。属于组件的 SocketTest 实例可以在 SocketRunnable 组件视图中进行配置。

在应用程序日志中记录内部错误

您可能立即需要日志,因此可以从 SocketRunnable 构造函数中的引擎中获取日志。
Engine engine = (Engine)context.get(PrivateContext.ENGINE);
ComponentLog log = engine.getComponentLog();

创建组件配置 GUI 面板

组件可以通过实现 SimRunnableConfigViewProvider 接口向容器提供自定义配置视图。容器将在上面显示的 Load Test Runnable 组件面板的配置选项卡中显示这个视图。容器调用 SimRunnableConfigViewProvider 接口的 getConfigView() 方法来获取组件的配置视图。在本例中,SocketRunnableView 类实现组件配置视图。SocketRunnableView 类使用位于 com.parasoft.loadtest.component.example.socket.test.view 包中的 SocketTest*View 类进行单独的 SocketTest 实例配置。

为特定于配置文件的组件配置创建 Load Test 配置文件 GUI 面板

可以设计负载测试组件来实现负载测试配置文件的特定行为。实现 ProfileRunnable 或 SubProfileRunnable 接口的类可作为负载测试组件中特定于配置文件的子组件。这些类实现组件的特定于配置文件的行为。

...

SocketRunnable 使用 API 的 ProfileRunnableTreeView。

保存 Load Test 项目中的组件配置

负载测试组件可以通过实现 SaveablePropertiesProvider 接口将其配置保存到 Load Test 项目中。组件配置由 SimRunnableProperties 类表示,该类存储组件属性 name/value 对。 

...

如果保存组件配置需要比一组 name/value 属性对更复杂的数据结构,可以使用 XML 作为替代。将组件配置序列化为 XML 表示形式,并将 XML 字符串保存在 SimRunnableProperties 实例的单个 name/value 对中。有关如何使用 XML 保存和恢复组件配置的示例,请参阅 SocketRunnableXMLSerializer。

将组件配置转移到远程机器

必须将负载测试组件配置转移到远程负载测试机器上,该配置可以从负载测试项目文件中读取,也可以由您和您的团队修改。组件状态传输应该在组件类实现的 ParasoftExternalizable 接口的 readExternal/writeExternal 方法中实现。由于 SocketRunnable 组件的可配置部分由 SocketProfileRunnable 类型的 rootProfileRunnable 成员变量表示,因此必须将其传输到远程机器。SocketProfileRunnable 类到远程机器的序列化在该类 readFrom/writeOn 和 readExternal/writeExternal 方法的实现中得到了演示。或者,远程机器的序列化可以复用将组件配置保存到负载测试项目的代码。对于 SocketRunnable 示例,可以复用 SocketRunnableXMLSerializer 类功能,以 XML 字符串的形式将组件配置序列化/反序列化到远程机器。 

使用 jar 库扩展组件功能

您的组件代码可以使用您选择的 jar Java 库。SocketRunnable 示例代码使用 Jtidy 库来分析它可以接收到的响应 Web 页面请求的 HTML 代码(请参阅 SocketTest 类的 checkTidy 方法)。组件依赖 jar 文件必须包含在组件 jar 存档库文件夹中(请参阅 component-build.xml ant 脚本构建的 socket.jar 组件归档文件)。 

本地化组件资源

您可以使用 LocalizationUtil API 类来本地化组件字符串。SocketRunnable 示例的 Localization 类加载适当的资源包并包装 LocalizationUtil 方法,更易于访问。