本主题解释如何配置和应用事件监控工具,该工具跟踪系统内部的事件(例如,ESBs、Java 应用程序、数据库等),并允许您将它们作为 SOAtest 端到端测试场景的一部分。本章包含:

了解事件监控器

事件监视工具提供了对中介消息的可见性,而不需要直接访问消息传递系统的接口。此外,您可以应用可用的工具集来验证消息是否满足功能期望。

SOAtest 为监控许多系统提供内置支持,包括:

  • TIBCO 企业消息系统
  • Sonic 企业服务总线系统
  • Oracle/BEA Aqualogic 服务总线
  • Software AG webMethods Broker
  • IBM WebSphere ESB
  • 其他基于 JMS 的系统
  • Java 应用程序
  • 关系数据库

您还可以配置该工具来监视任何基于 API 的自定义事件源,例如来自其他供应商的非 JMS 系统、自定义日志框架等。 

事件监视器应该始终定位为测试套件中的第一个测试。

如果您想要监视多个目标组件(例如,Java 方法调用和 JMS 主题),那么您可以将多个事件监视器添加到您的测试套件中,并相应地配置每个事件监视器。

若要配置它,则需要告诉 SOAtest 如何连接到您的系统,以及希望它监视什么。 

当您运行测试套件时,SOAtest 将启动事件监视器,然后在测试套件的测试执行时保持它的运行。SOAtest 在指定的事件/消息发生时监视并报告它们。然后可以链接其他工具来验证或进一步处理所监视的事件/消息。

工具配置

配置过程取决于所监视的系统类型。此工具可用于:

可以通过向测试套件添加额外的事件监视器并相应地配置每个事件监视器来监视多个目标组件。

测试套件执行

测试套件执行是事件监视工具的典型和推荐用法。将事件监视工具添加到您的测试套件中,并使其成为测试步骤之前的第一个测试,您希望它在其中开始监视。当选择并运行父测试套件时,事件监视器将在适当的步骤中自动启动,并在测试套件中的其他测试执行时继续监视。当以下两个事件中的第一个发生时,它将停止:

  1. 测试套件中的最后一个测试(或者数据源中的最后一行,如果测试套件测试在一个数据源上迭代)已经完成执行,最后一个事件已经被检索,监控连接已经被销毁。
  2. 已达到最大监视执行持续时间(此值在工具的 Options 选项卡中配置)。

不需要将事件监视器的父测试套件设置为 Tests run concurrently。SOAtest 将自动将事件监视器识别为一个特殊的工具,并相应地管理它的并发执行。

独立/临时执行

可以配置事件监视器的连接设置,并在 SOAtest 之外运行目标系统时独自执行它。例如,在手动浏览应用程序的 Web 接口时,您可能希望在后端中间件系统中监视 JMS 消息。 

若要查看实时记录的事件,请打开 Event Viewer 选项卡。事件监视工具的运行时间将在 Options 选项卡的 Maximum monitor execution duration (milliseconds) 设置下设置。当使用 Poll after each test execution 模式选择 Custom events source 选项时,这种临时执行是不适用的。

查看监控事件

事件将在事件监视器工具配置面板中的事件查看器选项卡中报告和显示。

若实时查看监控事件:

  • 请在测试执行期间打开 Event Viewer 选项卡(在事件监视器工具的配置面板中)。

有两个选项卡可用:图形视图和文本视图。



在图形化视图中,单击事件以查看消息详细信息。

如果没有看到图形化视图

默认情况下,如果您有独立的 SOAtest(相对于插件),或者您的 Eclipse 安装了 Eclipse GEF,那么图形化视图是可用的。您可以从 http://www.eclipse.org/gef/ 中下载并安装 Eclipse GEF。

使用数据源

事件监视器本身不能用数据源参数化。但如果测试套件中的测试,包括事件监视器可参数化的工具,它将开始监控之前第一次真正的测试(事件监视器后测试)和第一数据源行执行时,它将停止监控当所有数据源行已经被使用。这确保您将获得一个单一的、无缝的事件日志,而不管测试如何在测试套件中迭代。

从其他平台检索事件

事件监控工具具有可扩展性挂钩,该挂钩允许此工具从各种来源获取事件,而不只是它所支持的内置平台和系统。有关更多详情,请查阅 可扩展性 API 模式 。

验证监测信息

如果事务正确执行,则可以为所监视的消息添加回归控件,如 配置回归测试中所述。此外,您还可以添加验证,如 添加测试输出中所述。 验证工具中列出了可用的验证工具。

您还可以在事务执行时监视系统(例如,从 Web 接口触发事务),然后从这些消息自动生成测试。这包括了用于事务入口/出口点的测试,以及对事务中间部分的测试。通过这种方式,您可以快速地重现问题,快速地创建具有真实值的测试,然后隔离系统,并围绕事务的各个部分和组件创建回归测试。有关如何做到这一点的详细信息,请参阅: 

  • No labels