本主题解释如何配置 SQL 响应程序工具,该工具虚拟化数据库对各种查询的响应。响应器是 Parasoft Virtualize 中使用的核心工具。
本章包含:
创建 SQL 响应程序
有关创建 SQL 响应程序的更多详情,请查阅 从数据库记录创建 SQL 响应程序 和 手动创建 SQL 响应程序。
修改查询和结果
每个 SQL 响应器都处理特定 JDBC URL 的 SQL 查询。当接收到查询时,将根据一组可用的查询模板对其进行匹配。如果找到匹配,则使用相关的结果集作为响应。您可以通过修改 SQL 响应器处理的查询及其交付的结果来定制虚拟数据库行为。
若要修改工具处理的查询,请添加或编辑 SQL 模板。可使用通配符。
若要修改交付的结果,请添加或编辑关联的参数和结果集。
添加和编辑数据的方式取决于创建 SQL 响应程序是为了从 CSV 还是从 Parasoft 数据存储库参数化。
编辑存储在数据存储库中的数据
若要编辑存储在数据存储库中的数据,请单击 SQL 响应程序编辑器中的 Open in Table Editor 按钮。
这将打开关联的数据存储库编辑器,您可以在其中查看和编辑/扩展存储值。您还可以通过双击数据资源库视图中适当的 SQL Data Sets 节点来打开数据存储库编辑器。
初始视图(级别 1)
数据资源库的初始视图总是在顶层显示三列:
- JDBC Connection URL (string): 在向导中所选记录数据库的名称。
- SQL Template (string): 记录的 SQL 查询。当 SQL 响应程序接收到一个查询时,它会尝试将其与一组可用的查询模板进行匹配。如果找到匹配,则使用相关的结果集作为响应。
- SQL Parameters (list of data set records): 为上述 SQL 查询记录的参数(WHERE 子句中的值,等等)。
JDBC Connection URL 和 SQL Template 是关键列(由淡紫色表示)。SQL Parameters 列中的黄色表示可以深入研究它。
SQL参数表(级别 2)
双击 SQL Parameters 列中的值将打开 SQL Parameters 表,其中总是包含以下列:
- Result Set: 允许深入到结果集值。
- Additional Response Delay: 允许按照 Modifying Response Times中所描述的那样调整时间。
如果有任何参数与记录的查询相关联(WHERE 子句中的值,等等),将添加额外的列,以便查看和编辑相关的参数值。
结果集表(级别 3)
在 SQL Parameters 视图中,双击结果集列中的值将打开 Result Set 表,这允许您编辑将在响应中使用的值。
编辑
若要查看、编辑和扩展 SQL 模板、结果集和相关参数,请使用数据存储库编辑器功能,该功能在 查看和修改资源库结构和内容中进行了描述。
如果希望以 csv 格式编辑结果集数据,则可以导出数据,在 csv 编辑器中操作数据,然后重新导入编辑后的文件。
若要导出 CSV 格式的结果集数据:
- 请右键单击结果集表,然后选择 Export to CSV。
若要导出编辑的数据:
- 请右键单击结果集表,然后选择 Import from CSV。注意,存储库中的任何现有条目都将在导入时被覆盖。
注意事项
编辑或扩展 SQL 数据集时:
- 避免编辑已记录的 JDBC URLs。它们必须与数据库配置的 JDBC URLs 完全匹配。
- 如果添加任何 SQL 查询,请设置参数(如果有)和结果集(如果有)。
- 可以在 SQL 模板、SQL 参数和结果集中使用表达式作为参数匹配标准。有关更多详情,请查阅 Using Criteria Expressions to Match Values。
- Modifying Response Times
注意,来自 SQL 数据集的现有记录不能重用。
辑存储在 CSV 文件中的数据
查询面板将显示所有记录的 SQL 查询。对于每个 SQL 查询,可能都有参数(WHERE 子句中的值,等等)。若要查看与特定 SQL 查询关联的结果集和参数,请选择该查询。
结果集文件将显示在 Parameter Criteria 表中。
若要编辑SQL模板,请使用 Queries 面板中的控件。您可以根据需要添加或删除条目。
若要编辑结果集和参数条件,请首先选择相关查询。然后,关联 CSV 文件的名称将显示在 Parameter Criteria 区域。这些 CSV 文件存储在 VirtualAssets 项目中的 database_recorded_data 文件夹中。若要编辑结果集值,请编辑这些 CSV 文件。
若要编辑参数,请直接在参数条件区域中修改它们。
使用条件表达式来匹配值
若要将该工具配置为使用表达式作为参数匹配条件,您可以使用标准表达式语法,它支持比较字符串和数字,以及使用通配符和正则表达式匹配字符串。这在 Criteria Expressions for Matching Values中进行了描述。
例如,将下面的配置设置为:将 80,000 的实际工资与一个 ResultSet 文件匹配,将 100,000 的实际工资与另一个 ResultSet 文件匹配。
可以使用标准表达式将所有工资(最高为 80,000)匹配到一个 ResultSet 文件,将所有工资(最高为 80,000 到 100,000)匹配到另一个 ResultSet 文件,将所有工资(最高为 100,000)匹配到第三个 ResultSet 文件。或者,您可以在 SQL 模板区域中使用 [*] 为不匹配的 SQL 查询创建一个“catch all”。
修改响应时间
可以修改 SQL 应答,以反映不同的数据库响应时间,以反映现实的数据库性能或模拟性能如何不同在不同条件(如:数据库和表的大小、在执行查询时使用的表、索引的存在、和服务器负载)。
如果 SQL 响应程序使用一个结果集触发额外的响应延迟,将暂停中指定 Additional Response Delay (ms) 中指定的列和任何额外的时间虚拟资产的性能配置文件,该文件在 Working with Performance Profiles 中进行了描述 — 返回结果集之前。 在 Additional Response Delay (ms) 列中指定的时间是每个查询延迟的时间。例如,如果在这里指定延迟 5000 ms,并且执行了两个查询,那么额外的延迟将是 10,000 ms。
注意,附加的响应延迟适用于所有查询(包括元数据查询)。
资源库数据
如果数据存储在存储库数据源中,则可以通过更改 SQL 数据集中(在 SQL 参数下)的 Additional Response Delay (ms) 列值来调整响应时间。
CSV 数据
如果数据存储在 CSV 文件中,则可以通过更改参数标准面板中的 Additional Response Delay (ms) 列值来调整响应时间。
将工具链接到响应程序的 SQL 查询或结果集
可以按照以下的操作将工具链接到 SQL 响应程序的传入请求(SQL 查询)或输出响应(结果集):
- 右键单击要将此工具添加到其中 Virtual Asset Explorer 节点。
- 选择 Add Output。
- 在左侧选择需要的输出类型,右侧选择需要的工具。例如,如果希望自定义工具对查询执行某些操作,可以在左边选择 Incoming Request> SQL query,然后在右边选择适当的工具。