本主题介绍如何使用 SOAtest 来监控通过任何 JMS 系统的事务,然后生成检查监控消息的测试用例。
章节目录:
供选择的测试创建方法
创建测试的另一种方式是在应用程序运行时,让 SOAtest 的记录代理监控一个或多个 JMS、HTTP 或 MQ 端点上的通讯报文。SOAtest“监听”通讯报文请求和响应,然后构建一个合法请求/响应对的通讯报文文件。然后,将该通讯报文用来生成测试套件,该套件表示在预配置的 SOAP 客户端或消息传送客户端工具中捕获到的行为。详情请参阅从已记录的 HTTP、JMS 或 MQ 通讯报文创建测试。
概要
SOAtest 监控通过 JMS 的事务,然后生成检查所控制消息的功能测试用例。除了提供对系统消息的可见性之外,这还允许您直接从 SOAtest 重放事务,并验证所监控的功能性是否继续按预期工作。
为实现这一目的,必须告诉 SOAtest 如何连接到 JMS 以及希望 SOAtest 监控什么目标(主题或队列)消息,然后提示它启动监控。SOAtest 将为每个在指定目标上捕获到的 JMS 消息或为过程流内的所有消息(如果使用了过程跟踪主题)生成一个消息传送客户端测试的测试套件。这些测试预先配置了连接参数、请求和目标消息,以便 SOAtest 可以回访相同消息。
SOAtest 可以为以下类型的 JMS 消息生成测试客户端:
- javax.jms.TextMessage
- javax.jms.MapMessage
- javax.jms.ObjectMessage
- javax.jms.BytesMessage
- javax.jms.StreamMessage
前提条件
请参阅 JMS 前提条件。
从 JMS 事务生成测试
若要生成测试,请执行以下操作:
- 在可用的测试创建向导中选择 Other> Java Message Service (JMS) 选项。有关访问该向导的详情,请参阅:
- 在 JMS 向导页面中,请完成以下操作:
- 在连接部分,请指定 JMS 连接设置。
- 在初始化环境字段中,指定作为名为 javax.naming.Context.INITIAL_CONTEXT_FACTORY 属性的字符串值传递给 JNDI javax.naming.InitialContext 构造器的完全限定类名字符串。
- 在连接工厂字段中,为工厂指定 JNDI 名称。这将传递给 javax.naming.InitialContext 中的 lookup() 方法,以创建 javax.jms.QueueConnectionFactory 或 javax.jms.TopicConnectionFactory 实例。
- 在接收站名称字段中,指定要监控的主题或队列。
- 可以指定一个常规主题或队列(比如,工作流处理的进入或退出),或特殊进程跟踪主题。
- 在接收站类型字段中,指定跟踪目标是主题还是队列。
- (可选)在消息选择器字段中,输入一个值作为消息过滤器。更多提示,请参阅使用消息选择器过滤器。
如果希望 SOAtest 使用 JMS QueueBrowser API,以便跟踪 JMS 队列上传递的消息(而无需从队列中移除它们),则启用保留消息到队列。这允许 SOAtest 在不影响事务的情况下获得对这些消息的可见性。
注意:保留消息到队列
关于讨论此选项的潜在并发症以及如何避免它们,请参阅 JMS 队列选项。
- 在 JNDI 属性表中,指定要应用于该属性的任何其他 JNDI 属性。
- 点击下一步。SOAtest 将启动监控消息,该消息匹配上一个向导页面中指定的设置。如果运行另一个向总线发送消息的应用程序,这些消息将在此面板中被注意到。
- 在准备停止监控的时候,点击完成。然后,SOAtest 将基于已验证消息创建测试用例。
监控中介信息
除了通过监控触及 ESB 或中间件系统中的 JMS 端点的事务消息自动生成功能测试之外,还可以可视化和跟踪作为测试触发的事务的一部分发生的流程内 JMS 消息,然后对它们进行分析以进行验证。
具体方法请参阅对 ESB、数据库和其他系统进行事件监控。