在本章中,我们将讨论如何将数据导入测试基础设施。我们将使用 Parasoft SOAtest 和 Virtualize 附带的一个 Parabank 示例应用程序实例,并将代理添加到应用程序配置中,以便我们能够将数据捕获到数据存储库中。
在本章节中:

前提条件
部署 Parasoft JDBC 驱动程序
我们将首先将 ParasoftJDBC 驱动程序部署到 Parabank 级别,并配置到 SOAtest/Virtualizer 服务器的连接。Parasoft JDBC 驱动程序是一种特殊的 JDBC 驱动程序,它可以充当应用程序与其常规 JDBC 驱动器之间的中间人。查阅 关于 Parasoft JDBC 驱动程序 进行学习。
- 打开 <SOATEST/VIRTUALIZE_INSTALL>/proxies 目录
- 将 ParasoftJDBCDriver.jar 文件复制到 <WORKSPACE>/ParaBank/WebContent/WEB-INF/lib 目录。
打开 ParaBank/src/jdbc.properties 文件并指定以下设置:
jdbc.driverClassName=com.parasoft.xtest.jdbc.virt.driver.JDBCProxyDriver
jdbc.url=jdbc:parasoft:proxydriver:org.hsqldb.jdbcDriver:@jdbc:hsqldb:hsql://localhost/parabank
jdbc.username=sa
jdbc.password= |
- 在 Virtualize 桌面中,打开 Java 透视图,然后选择 Run> Run Configurations。
- 选择 Apache Tomcat> ParaBank Tomcat 8.5 Server。
在 Arguments 选项卡下,将下列 Parasoft JDBC 驱动程序标志添加到 VM 参数部分已经列出的内容中:
-Dparasoft.virtualize.server.url=http://localhost:9080 -Dparasoft.virtualize.group.id=parabank
-Dparasoft.virtualize.driver.register.jdbcproxydriver.in.drivermanager=true -Dparasoft.virtualize.driver.proxy.direct=true |
- 使用更新的运行配置或重启 ParaBank 服务器。可以在 Virtualize 桌面中打开控制台视图,并登录和退出 ParaBank 来验证代理是否工作。

如果您正在将本教程应用于自己的项目,则文档中包含了关于如何将 Parasoft JDBC 驱动程序部署到多个应用程序的说明。请查阅 使用 Parasoft JDBC 驱动程序。
录制数据库查询
在此步骤中,我们将录制一个数据库查询并使用它创建一个虚拟资产。录制数据库查询不会向数据存储库添加数据。为了捕获数据,必须执行一个操作,例如向连接到存储库的虚拟资产发送一条消息。您可以在 Virtualize 桌面或 CTP 中执行此步骤。在本教程中,我们将使用 CTP,这需要一些额外的配置。
创建环境
我们将在 CTP 中创建一个新的系统、环境和数据库组件。系统是开发基础结构的表示。系统包含一个或多个环境表示,例如“回归测试”、“集成测试”等等。另外,可以创建环境的几个实例来满足您的测试需求。
系统是一个由多个组件组成的面板,例如数据库、服务器、客户端等。每个组件的实例都包含在特定环境中使用的配置。一个实际的系统会包含几个组件,但我们将只使用数据库组件来说明工作流程:
- 打开 CTP,从应用程序菜单中选择 Environment Manager 。
- 单击工具栏中的 Add System ,然后选择 Create an empty system 选项。
- 单击 Create ,然后点击新系统标签旁边的编辑(一只笔的图标)按钮。
- 将您的系统重命名为“Parabank”,然后点击应用按钮来保存您的更改。
- 将数据库组件拖到关系图区域并单击保存按钮。
- 从系统页面上的 actions 下拉菜单中选择 New Environment 。
- 单击新环境的编辑按钮,并将其命名为“Silo 1”。
- 保存环境。
您现在应该有一个名为 Parabank 的系统,其由一个单一数据库组成。该系统包含 Silo 1 环境。接下来,我们将添加数据库组件的多个实例来配置不同的状态。
将数据库组件实例添加到环境中
组件是一种可以出现在环境中的对象类型。必须添加执行特定功能的组件实例,才能使它们发挥作用。
- 将指针悬停在数据库组件的右上角,以便出现 options 下拉菜单按钮。
- 单击下拉菜单,选择 New Instance。

- 在 Name 字段中输入“Passthrough”。
- 在实际端点部分选择 HTTP 选项,并指定应用程序的主机、端口和路径。

- 启用 JDBC 控制器选项并单击 Select a JDBC Controller。
- 选择“parabank”控制器,并指定 Passthrough 作为模式。可以在本节中保留所有其他配置的默认值。有关这些设置的更多信息,请参阅 配置 JDBC 控制器 。
- 单击 Finish 并重复步骤 1-6 来配置一个“Record”实例。

- 配置录制实例之后单击 Finish 。
现在已经为数据库组件配置了透传模式和录制模式。下一步是启用录制和捕获查询。
从 CTP 环境录制数据库查询
- 确认数据库组件的录制实例已启用,然后单击 Provision 按钮。

- 应显示一个显示配置成功的覆盖图。

- 关闭图表编辑器并打开 Parabank 应用程序。
- 登录 Parabank(用户名/密码:john/demo),然后注销。此操作查询数据库以获取演示用户的帐户信息。
- 在 CTP 中,将数据库组件实例更改为 Passthrough,然后单击 Provision 停止录制。

- 停止录制时,将向 Virtualize 服务器添加包含数据库录制文件的新目录。您可以切换到服务虚拟化模块来查看 CTP 中的文件。

下一步是创建连接到数据存储库的虚拟资产,以捕获与查询关联的数据。我们将使用 Virtualize 桌面来完成此步骤。
通过数据库录制创建虚拟资产
当您只使用 JDBC 驱动程序的查询模板录制数据库查询时,不会捕获数据。我们将使用数据库查询模板创建一个虚拟资产,并附加一个数据存储库和消息响应器来捕获数据。
- 在 Virtualize 桌面中,右键单击虚拟资源管理器中的 VirtualAssets 文件夹,然后选择 Add New…> Virtual Asset (.pva) File。
- 在 File name 字段中输入
ParabankLogin
,然后单击 Next。 - 选择 Recorded Database Queries ,然后单击 Next。
- 从服务器下拉菜单中选择录制数据库查询的 Virtualize 服务器。
- 从 Databases 下拉菜单中选择数据库的位置。
- 在响应程序数据源类型部分中选择 Data Repository 选项,然后单击 Next。

- 指定数据存储库服务器和凭据。
- 在 Repository Name 字段中输入
ParabankDB
。您还可以指定现有存储库,但当虚拟资产查询数据库时,捕获的数据将覆盖数据。存储库是相关数据集的集合。 - 在SQL数据集部分的 Name 字段中,输入
parabank-login
。数据集是相关数据字段的集合。 - 单击 Validate 以确保设置配置正确,并在准备就绪时单击 Finish 。

虚拟资产将使用录制的 SQL 模板,用数据库中的数据填充数据存储库。在 CTP 中打开 TDA 模块,然后单击存储库以访问数据。

现在我们已经在数据库中捕获了数据,我们将制作数据存储库的快照,以便在必要时始终将数据重置为其初始状态。
创建资源库备份
- 在 Data 选项卡中选择 ParabankDB 存储库,然后单击 Export。
- 在提示时指定导出的名称,然后单击 Export。

- 单击服务器节点,查看导出的存储库。所有导出在此屏幕上都将可用。

- 单击导出,访问管理选项并查看详细信息。

下一步是配置一个虚拟数据库实例,该实例将从存储库中提取数据以进行测试。
创建虚拟数据库实例
- 打开环境管理器模块,查看环境关系图。
- 选择 Workspace 选项卡中的 Silo 1 ,然后单击 Edit Diagram。
- 将指针悬停在 Database 组件上,然后单击下拉菜单。
- 选择 New Instance ,并在 name 字段中输入“Virtual”。
- 启用 JDBC Controller 选项,然后单击 Select a JDBC Controller。
- 单击 parabank 控制器并将模式设置为 Virtualize。
- 单击 Finish ,然后单击 Provision ,启用环境实例。
通过使用 TDA 进行更改,可以验证虚拟数据库是否与存储库中的数据一起使用。
- 打开 TDA 模块并导航到 ParabankDB 数据存储库。
- 单击 parabank-login 数据集以查看录制。
- 单击包含余额信息的 SQL 模板。这个录制应该在第 4 行。

- 展开行以访问录制数据,然后单击编辑(笔图标)按钮。

- 更改余额值并单击保存(复选标记)按钮。

- 返回 ParaBank 并登录。应反映更新后的余额。

此时,您可以克隆和修改录制,并使用 API 和手动 UI 测试中的数据。但是我们将使用更强大的 TDA 特性来扩展和修改测试数据,以满足软件测试生命周期的任何阶段。