在本章中,我们将讨论如何将数据导入测试基础设施。我们将使用 Parasoft SOAtest 和 Virtualize 附带的一个 Parabank 示例应用程序实例,并将代理添加到应用程序配置中,以便我们能够将数据捕获到数据资源库中。
章节目录:
前提条件
- 应该运行 SOAtest/Virtualize 服务器的实例。请参阅部署 SOAtest 和 Virtualize 服务器 WAR 文件。
- 应部署 ParaBank 示例项目。请参阅设置 ParaBank。
- 应该部署和配置一个数据资源库服务器来注册 CTP。请参阅安装远程数据资源库服务器。
部署 ParasoftJDBC 驱动程序
我们将首先将 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 透视图,然后选择运行> 运行配置。
- 选择 Apache Tomcat> ParaBank Tomcat 8.5 Server。
在参数选项卡下,将下列 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,从应用程序菜单中选择环境管理器。
- 点击工具栏中的添加系统,选择创建一个空系统选项。
- 点击创建,然后点击新系统标签旁边的编辑(笔图标)按钮。
- 将您的系统重命名为“Parabank”,点击应用按钮来保存您的更改。
- 将数据库组件拖到关系图区域并点击保存按钮。
- 从系统页面上的操作下拉菜单中选择新环境。
- 点击新环境的编辑按钮,并将其命名为“Silo 1”。
- 保存环境。
您现在应该有一个名为 Parabank 的系统,其由一个单一数据库组成。该系统包含 Silo 1 环境。接下来,我们将添加数据库组件的多个实例来配置不同的状态。
将数据库组件实例添加到环境中
组件是一种可以出现在环境中的对象类型。必须添加执行特定功能的组件实例,才能使它们发挥作用。
- 将指针悬停在数据库组件的右上角,将出现选项下拉菜单按钮。
- 点击下拉菜单,选择新建实例。
- 在名称字段中输入“转移”。
- 在实际端点部分选择 HTTP 选项,并指定应用程序的主机、端口和路径。
- 启用 JDBC 控制器选项并点击选择一个 JDBC 控制器。
- 选择“parabank”控制器,并指定透传作为模式。可以在本节中保留所有其他配置的默认值。有关这些设置的更多信息,请参阅配置 JDBC 控制器。
- 点击完成并重复步骤 1-6 来配置一个“录制”实例。
- 配置录制实例之后点击完成。
现在已经为数据库组件配置了转移模式和录制模式。下一步是启用录制和捕获查询。
从 CTP 环境录制数据库查询
- 确认数据库组件的录制实例已启用,然后点击提供按钮。
- 应显示一个服务提供成功的提示。
- 关闭示意图编辑器并打开 Parabank 应用程序。
- 登录 Parabank(用户名/密码:john/demo),然后注销。此操作查询数据库以获取演示用户的帐户信息。
- 在 CTP 中,将数据库组件实例更改为透传,然后点击提供停止录制。
- 停止录制后,将向 Virtualize 服务器添加包含数据库录制文件的新目录。您可以切换到服务虚拟化模块来查看 CTP 中的文件。
下一步是创建连接到数据资源库的虚拟资产,以捕获与查询关联的数据。我们将使用 Virtualize 桌面端来完成此步骤。
通过数据库录制创建虚拟资产
当您只使用 JDBC 驱动程序的查询模板录制数据库查询时,不会捕获数据。我们将使用数据库查询模板创建一个虚拟资产,并附加一个数据资源库和消息响应器来捕获数据。
- 在 Virtualize 桌面端中,右键点击虚拟资产浏览器中的 VirtualAssets 文件夹,然后选择新建…> 虚拟资产 (.pva) 文件。
- 在文件名称字段中输入
ParabankLogin
,点击下一步。 - 选择记录的数据库查询,然后点击下一步。
- 从服务器下拉菜单中选择录制数据库查询的 Virtualize 服务器。
- 从数据库下拉菜单中选择数据库的位置。
- 在响应器数据源类型部分中选择数据资源库选项,然后点击下一步。
- 指定数据资源库服务器和凭据。
- 在资源库名称字段中输入
ParabankDB
。您还可以指定现有资源库,但当虚拟资产查询数据库时,捕获的数据将覆盖数据。资源库是相关数据集的集合。 - 在 SQL 数据集部分的名称字段中,输入
parabank-login
。数据集是相关数据字段的集合。 - 点击验证以确保设置配置正确,并在准备就绪时点击完成。
虚拟资产将使用录制的 SQL 模板,用数据库中的数据填充数据资源库。在 CTP 中打开测试数据模块,点击您的资源库访问数据。
现在我们已经在数据库中捕获了数据,我们将制作数据资源库的快照,以便在必要时始终将数据重置为其初始状态。
创建资源库备份
- 在数据选项卡中选择 ParabankDB 资源库,点击导出。
- 在提示时指定导出的名称,然后点击导出。
- 点击服务器节点,查看导出的资源库。所有导出在此界面上都将可用。
- 点击导出,访问管理选项并查看详细信息。
下一步是配置一个虚拟数据库实例,该实例将从资源库中提取数据以进行测试。
创建虚拟数据库实例
- 打开环境管理器模块,查看环境示意图。
- 选择工作空间选项卡中的 Silo 1,点击编辑图表。
- 将指针悬停在数据库组件上,然后点击下拉菜单。
- 选择新建实例,并在名称字段中输入“Virtual”。
- 启用 JDBC 控制器选项,然后点击选择一个 JDBC 控制器。
- 点击 parabank 控制器并将模式设置为 Virtualize。
- 点击完成,然后点击提供,启用环境实例。
通过使用测试数据进行更改,可以验证虚拟数据库是否使用了资源库中的数据。
- 打开测试数据模块并转到 ParabankDB 数据资源库。
- 点击 parabank-login 数据集以查看记录。
- 点击包含余额信息的 SQL 模板。该记录应该在第 4 行。
- 展开该行以访问记录数据,点击编辑(笔图标)按钮。
- 更改余额的值并点击保存(勾号)按钮。
- 返回 ParaBank 并登录。应反映更新后的余额。
此时,您可以克隆和修改记录,并使用 API 和手动 UI 测试中的数据。但我们将使用更强大的测试数据功能来扩展和修改测试数据,以满足软件测试生命周期中任何阶段的需求。