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