本主题解释了 SOAtest 如何监视通过 Sonic ESB 系统的事务,然后生成功能测试用例来检查监视的消息。除了提供对系统消息的可见性之外,这还允许您直接从 SOAtest 重播事务,并验证所监视的功能性是否继续按预期工作。
本章包含:
供选择的测试创建方法
创建测试的另一种方式是在应用程序运行时,让 SOAtest 的记录代理监视一个或多个 JMS、HTTP 或 MQ 端点上的通讯报文。SOAtest“监听”通讯报文请求和响应,然后构建一个合法请求/响应对的通讯报文文件。然后,将该通讯报文用来生成测试套件,该套件表示在预配置的 SOAP 客户端或消息传递客户端工具中捕获到的行为。请查阅 从已记录的 HTTP、JMS 或 MQ 通讯报文创建测试 以获得更多详情。
概要
SOAtest 监视通过 Sonic ESB 的事务,然后生成检查所控制消息的功能测试用例。除了提供对系统消息的可见性之外,这还允许您直接从 SOAtest 重播事务,并验证所监视的功能性是否继续按预期工作。
为了实现这一点,则告诉 SOAtest 如何连接到 Sonic ESB 以及希望 SOAtest 监视什么目标(主题或队列)消息,然后提示它启动监视。SOAtest 将为每个在指定目标上捕获到的 JMS 消息或为过程流内的所有消息(如果使用了过程跟踪主题)生成一个消息传递客户端测试的测试套件。这些测试预先配置了连接参数、请求和目标消息,以便 SOAtest 可以回访相同消息。
SOAtest 可以为以下类型的 JMS 消息生成测试客户端:
- javax.jms.TextMessage
- javax.jms.MapMessage
- javax.jms.ObjectMessage
- javax.jms.BytesMessage
- javax.jms.StreamMessage
前提条件
必须将以下 jar 文件添加到类路径中(通过 Parasoft> Preferences> Parasoft> System Properties):
- broker.jar
- mfcontext.jar
- sonic_Client.jar
从 Sonic ESB 事务生成测试
若要生成测试,请执行以下操作:
- 在可用的测试创建向导中选择 Other> Sonic Enterprise Service Bus 选项。有关访问该向导的更多详情,请查阅:
- 完成 Sonic ESB 向导的第一页,如下:
- 在 Connection 区域,指定 Sonic ESB 连接设置:
- 在 Destination Name 字段中,指定要监视的主题或队列。
- 可以指定一个常规主题或队列(比如,工作流处理的进入或退出),或者一个特殊的“dev.Tracking”跟踪端点。
- 例如,如果希望跟踪作为流程流一部分发生的所有事件,请指定 dev.Tracking 端点,并将流程设置为 ESB 中的跟踪级别 4。
- 在 Destination Type 字段中,指定跟踪目标是主题还是队列。
- (可选)在 Message Selector 字段中,输入一个值作为消息过滤器。查阅 Using Message Selector Filters 以获得更多技巧。
如果希望 SOAtest 使用 JMS QueueBrowser API,以便跟踪 JMS 队列上传递的消息(而无需从队列中移除它们),则启用 Leave messages on the queue 选项。这允许 SOAtest 在不影响事务的情况下获得对这些消息的可见性。
注意:将消息留在队列上
关于讨论此选项的潜在并发症以及如何避免它们,请查阅 JMS Queue Options。
- 在 JNDI 属性表中,指定要应用于该属性的任何其他 JNDI 属性。
- 单击 Next。SOAtest 将启动监视消息,该消息匹配上一个向导页面中指定的设置。如果运行另一个向总线发送消息的应用程序,这些消息将在此面板中被注意到。
- 在准备停止监视的时候,单击 Finish。然后,SOAtest 将基于已验证消息创建测试用例。
监视中间信息
除了通过监视触及 Sonic ESB 中的 JMS 端点的事务消息自动生成功能测试之外,还可以可视化和跟踪作为测试触发的事务的一部分发生的流程内事件,然后对它们进行分析以进行验证。
有关如何做到这一点的详细信息,请参阅 事件监控器 - ESBs、Java Apps、Databases 和其他系统。