本主题解释如何为数据库配置监视。

本章包含:

事件监视器和 DB 工具之间的区别

事件监视器允许您在测试套件中执行每个测试之后,在您选择的数据库上执行 SQL 查询。  

虽然可以将该 DB 工具用于类似的目的,但当应用程序将消息记录到数据库中而导致事件发生时,事件监视器数据库模式更适合检索数据库行。 

事件监视器与 DB 工具的不同之处在于:

  • 测试套件中的单个事件监视器可以在每次测试执行之后自动执行数据库查询。这使您不必在每次测试之后直接添加 DB 工具。
  • 它允许延迟查询执行(请参阅 Options 选项卡下的“每个测试完成执行后的事件轮询延迟”选项)。这对于许多日志数据库非常重要,因为日志条目可能无法实时写入数据库。
  • 它可以将数据库条目合并到测试套件中的单个事件流中,而 DB 工具为您提供了在用例场景的所需点上执行隔离的和不同的查询的灵活性。
  • 它帮助您隔离在测试执行期间添加到数据库中的条目。

配置

双击 Event Monitor 工具打开工具配置面板。

配置事件源

单击 Event Source 选项卡,并配置以下内容:

Platform从平台下拉菜单中 Database 。
Database Connection Settings选中 Local ,输入要查询的数据库的 Driver, URL, Username和 Password 。有关完成这些字段的详细信息,请查阅 Database Configuration Parameters
Constraint SQL Query (Optional)

输入一个值,该值标识执行测试之前数据库中最后一个记录的值。事件监视器期望该查询返回一个值。通常这是一个表键、一个条目号或一个时间戳。

当日志数据库是累积的,并且在每个场景执行后都没有清理/恢复它时,使用约束查询非常有用。通过在测试套件测试执行之前执行此查询,事件监视器可以将已存在的条目与测试执行期间将登录到数据库的新条目区分开来。

这类查询通常使用 SQL MAX 函数。例如,查询 select max(MESSAGE_TIMESTAMP) from MESSAGE_LOG 假设您有一个名为 MESSAGE_LOG 的表,其中包含一个名为 MESSAGE_TIMESTAMP 的列,其类型为 Timestamp。它将返回一个值,该值表示当前数据库中最新的消息条目。事件监视器将首先执行该查询并保存该时间戳值。

Event SQL Query

指定用于从数据库检索日志或事件条目的 SQL。

示例查询:

select * from MESSAGE_LOG
where MESSAGE_TIMESTAMP > $[CONSTRAINT]
order by MESSAGE_TIMESTAMP DESC

注意,$[CONSTRAINT] 是一个特殊的 SOAtest 变量。它告诉事件监视器使用它从第一个约束查询(如前面的步骤中所描述)接收到的值,并在事件查询中自动提供该值。事件查询在测试套件执行完成之后执行(以及在事件监视器的 Options 选项卡中指定的延迟之后执行)。它检索测试执行后添加到数据库中的行。

不需要在事件查询中使用 $[CONSTRAINT]。

配置事件监视选项

单击 Options 选项卡并根据需要修改设置。


Clear the event viewer before each event monitor run启用此选项,可在事件监视器启动监视时自动清除事件监视器事件视图(包括文本和图形)。
Include test execution events in the XML event output to chained tools启用此选项 仅在事件查看器选项卡和 XML 输出显示中显示受监视的消息和事件。 。此选项还指示每次测试启动和完成的时间。如果您在测试套件中有多个测试,并且希望更好地识别事件并将它们与您的测试执行关联起来,那么启用该选项非常有帮助。
Wrap monitored messages with CDATA to ensure well-formedness of the XML event output

如果您不希望被监视事件的消息内容是格式良好的 XML,则启用此选项。禁用此选项将使事件中的消息可以通过 XPath 访问,从而允许 XML 转换器提取消息内容或使用 XML 断言器工具进行验证。

如果消息内容不是 XML,则启用此选项。这确保了事件监控工具的 XML 输出(即,用于将链接工具链接到事件监视器的 XML 事件输出(而不是事件查看器下显示的内容)是格式良好的 XML,它转义了所有消息内容。这将使 XPath 无法访问这些消息的内容,因为从技术上讲,消息只是父元素的字符串内容。

Diff 工具的 XML 模式支持 XML 字符串内容。因此,Diff 工具仍然能够将消息区分为 XML 格式,包括使用 XPath 忽略值的功能,即使禁用了该选项。

Maximum time to wait for the monitor to start (milliseconds)指定在 SOAtest 运行套件中的其他测试之前,事件监视器应该等待 连接到事件源的最大时间长度 这使 SOAtest 能够为这些测试捕获事件,并防止在事件监视器连接到它的事件源时过度阻塞其他测试的执行。如果连接到事件源花费的时间超过默认值,则增加该值。默认为 3000
Maximum monitor execution duration (milliseconds)指定测试应该超时的点。例如,如果测试套件中的另一个测试挂起,或者没有运行其他测试(例如,如果您在测试套件之外执行事件监视器测试,那么使用自定义应用程序向系统发送消息)。
Event polling delay after each test finishes execution (milliseconds)指定事件监视器在测试结束和检索事件之间应该等待多长时间。

注意

  • Event Viewer 选项卡将把事件 SQL 查询检索到的每一行显示为事件序列流中的一个框。双击该框将打开一个包含数据详细信息的对话框。
  • 您可以将 XML 工具链接到数据库事件监视器。由于数据库行是以 XML 格式输出的,因此可以使用 XML 断言器对它们进行区分和验证。
  • No labels