本主题解释了如何使用 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 向导页面中,请完成以下操作:
- 在 Connection 区域,请指定 JMS 连接设置。
- 在 Initial Context 字段中,指定作为名为 javax.naming.Context.INITIAL_CONTEXT_FACTORY 属性的字符串值传递给 JNDI javax.naming.InitialContext 构造器的完全限定类名字符串。
- 在 Connection Factory 字段中,为工厂指定 JNDI 名称。这将传递给 javax.naming.InitialContext 中的 lookup() 方法,以创建 javax.jms.QueueConnectionFactory 或 javax.jms.TopicConnectionFactory 实例。
- 在 Destination Name 字段中,指定要监视的主题或队列。
- 可以指定一个常规主题或队列(比如,工作流处理的进入或退出),或特殊处理跟踪主题。
- 在 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 将基于已验证消息创建测试用例。
监视中间信息
除了通过监视触及 ESBs 或中间件系统中的 JMS 端点的事务消息自动生成功能测试之外,还可以可视化和跟踪作为测试触发的事务的一部分发生的流程内 JMS 消息,然后对它们进行分析以进行验证。
关于更多详情,请查阅 Event Monitoring - ESBs, Java Apps, Databases, and other Systems。