本主题介绍如何为数据库配置监控。

章节目录:

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

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

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

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

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

配置

双击事件监控工具,打开工具配置面板。

配置事件源

点击事件源选项卡,并配置以下内容:

平台从平台下拉菜单中选择 Database
数据库连接设置选中本地,输入要查询的数据库的驱动、URL、用户名密码。有关完成这些字段的详情,请参阅数据库配置参数
约束 SQL 查询 (可选)

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

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

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

事件 SQL 查询

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

示例查询:

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

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

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

配置事件监控选项

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


每次事件监控器执行前清除事件查看器启用此选项,可在事件监控器启动监控时自动清除事件监控器事件视图(包括文本和图形)。
输出到链接工具的 XML 事件中包含测试执行事件启用此选项仅在事件查看器选项卡和 XML 输出显示中显示受监控的消息和事件。此选项还指示每次测试启动和完成的时间。如果您在测试套件中有多个测试,并且希望更好地识别事件并将它们与您的测试执行关联起来,那么启用该选项非常有帮助。
使用 CDATA 包裹监控的消息以确保 XML 事件输出格式标准化

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

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

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

等待监控器启动的最大时间 (毫秒)指定在 SOAtest 运行套件中的其他测试之前,事件监控器应该等待连接到事件源的最大时间长度。这使 SOAtest 能够为这些测试捕获事件,并防止在事件监控器连接到它的事件源时过度阻塞其他测试的执行。如果连接到事件源花费的时间超过默认值,则增加该值。默认为 3000
监控器最大执行时间 (毫秒)指定测试应该超时的点。例如,如果测试套件中的另一个测试挂起,或者没有运行其他测试(例如,如果您在测试套件之外执行事件监控测试,那么使用自定义应用程序向系统发送消息)。
每次测试结束执行后事件查询延迟时间 (毫秒)指定事件监控器在测试结束和检索事件之间应该等待多长时间。

注意

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