文本数据库工具可从任何文本内容(包括纯文本、HTML、XML 等)中提取值,并将这些值作为参数提供给其他工具和配置。

章节目录:

了解文本数据库

文本数据库可从任何文本内容(包括纯文本、HTML、XML 等)中提取值。您可以指定左侧和右侧边界,标记提取文本的开始和结束位置。左侧字段和右侧字段中指定值之间的字符将被提取。当您想要提取纯文本(例如,在另一个工具或配置面板中使用),而不能使用如浏览器数据库、XML 数据库、JSON 数据库等其他提取工具时,它非常有用。 文本数据库工具通常配置为传递文本输出的另一个工具(最常见的是浏览器回放或消息响应器工具)的输出。在这种情况下,文本数据库的文本内容区域将在工具执行完成后使用链式工具的文本输出填充。或者,您可以使用文本数据库工具创建一个“独立”工具,然后指定一个包含所需文本内容的文件(例如,一个日志文件或其他在每次工具运行期间动态更新或创建的文件)。

可以提取指定文本边界之间出现的任何值。这允许您从不同的工具运行中提取不同的值。例如,假设您想提取一个会话 Id,它在会话之间不断变化,并且这个会话 ID 总是出现在“leftboundary”和“rightboundary”之间。可以配置一个文本数据库工具来提取“leftboundary”和“rightboundary”之间出现的任何值。每次运行此工具时,将提取出现在给定边界之间指定位置的值。这样,如果这些边界之间的会话 ID 在会话与会话之间更改,则提取的值也将在会话与会话之间更改。

提取的值被添加到您指定的列中,并且可以在任何允许参数化值的工具配置字段中使用。

如果指定的边界更改(由于应用程序更改的结果),则需要更新配置的提取以指定新的边界值。

什么是文本内容?

文本数据库只对被认为具有文本 MIME 类型的内容进行操作。一个 MIME 类型基于指定的 ContentType 或文件扩展名。可以通过打开 Parasoft> 首选项> MIME 类型并为合适的 MIME 类型选择“文本”选项来控制哪些 MIME 类型被视为“文本”。

添加文本数据库工具

  1. 右键点击一个工具,然后选择添加输出...您也可以右键点击场景文件夹,然后选择新建 > 测试...来添加该工具的独立实例。独立实例可让您从文件中提取数据,该文件在每次工具运行时都会动态更新或创建。
  2. 在左侧面板中选择通讯报文源类型。例如,如果要提取响应头的一部分,请在 SOAtest 中选择响应 > 传输头,或在 Virtualize 中选择传出响应 > 有效负载
  3. 选择文本数据库并点击完成

数据库将附加到测试中或添加到套件中。请参阅配置文本数据库工具了解后续步骤。

配置文本数据库

如果将该工具添加为已有工具的输出,请配置Tool Settings下的字段以提取文本数据。该工具的独立实例有一个输入选项卡,用于指定提取内容的来源,还有一个工具设置选项卡,用于配置提取内容。

工具设置

  1. 在文本内容字段中输入要提取的源内容。如果将文本数据库添加为输出,则可以运行父工具来填充字段。如果将该工具添加为独立工具,请点击输入选项卡,指定要提取内容的文件。
  2. 在文本内容字段中选择要提取的文本,然后点击从所选中创建提取。  您也可以点击添加,手动添加和配置提取设置。有关手动配置提取设置的详细信息,请参阅Configuring Extractions
  3. 您可以更改默认描述(可选),然后点击 OK 继续。

该数据库可按原样使用,但对于更复杂的情况可能需要进行额外配置。例如,在随后的工具运行过程中,该值可能会发生变化,因此不一定能提取到具体的值。有关其他配置信息,请参阅Configuring Extractions。 

配置提取设置

  1. 选择提取并点击修改打开工具配置覆盖。 
  2. 说明字段中输入提取设置的说明。该说明仅用于识别目的,可以重复。 
  3. 列名字段中为保存被提取数据的列指定名称。该列指的是提取表中数据源列名列中的字段。列名不应重复。具有相同列名的提取内容将按提取内容表中从第一行到最后一行的顺序覆盖。  
  4. 左边文本字段中指定提取的起点,然后在右边文本字段中指定提取的终点。出现在这些字段中指定模式之间的字符将从文本内容字段中被提取。您可以为每个字段启用正则表达式选项,从而以编程方式指定模式。使用正则表达式能够让该工具在文本内容字段发生变化时正确提取字符,并设置行结束符等。有关支持的正则表达式语法的更多信息,请点击此处。在下面的示例中,使用一个匹配回车或分号的正则表达式来标记提取的结束。
  5. 如果提取的文本用于 URL,请从提取选项菜单中选择 URL 编码。 
  6. 点击 OK 保存更改。

选项

启用处理前删除制表符和换行符选项,对提取文本中的空白处做规范化处理。该选项默认启用。

  • No labels