本主题解释了如何使用 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 事务生成测试

若要生成测试,请执行以下操作:

  1. 在可用的测试创建向导中选择 Other> Java Message Service (JMS) 选项。有关访问该向导的更多详情,请查阅:
  2. 在 JMS 向导页面中,请完成以下操作:
    1. Connection 区域,请指定 JMS 连接设置。
    2. Initial Context 字段中,指定作为名为 javax.naming.Context.INITIAL_CONTEXT_FACTORY 属性的字符串值传递给 JNDI javax.naming.InitialContext 构造器的完全限定类名字符串。
    3. Connection Factory 字段中,为工厂指定 JNDI 名称。这将传递给 javax.naming.InitialContext 中的 lookup() 方法,以创建 javax.jms.QueueConnectionFactory 或 javax.jms.TopicConnectionFactory 实例。
    4. Destination Name 字段中,指定要监视的主题或队列。
      • 可以指定一个常规主题或队列(比如,工作流处理的进入或退出),或特殊处理跟踪主题。
    5. Destination Type 字段中,指定跟踪目标是主题还是队列。
    6. (可选)在 Message Selector 字段中,输入一个值作为消息过滤器。查阅 Using Message Selector Filters 以获得更多技巧。
    7. 如果希望 SOAtest 使用 JMS QueueBrowser API,以便跟踪 JMS 队列上传递的消息(而无需从队列中移除它们),则启用 Leave messages on the queue 选项。这允许 SOAtest 在不影响事务的情况下获得对这些消息的可见性。

      注意:将消息留在队列上

      关于讨论此选项的可能引起的复杂问题以及如何避免它们,请查阅 JMS Queue Options

    8. 在 JNDI 属性表中,指定要应用于该属性的任何其他 JNDI 属性。
  3. 单击 Next。SOAtest 将启动监视消息,该消息匹配上一个向导页面中指定的设置。如果运行另一个向总线发送消息的应用程序,这些消息将在此面板中被注意到。
  4. 在准备停止监视的时候,单击 Finish。然后,SOAtest 将基于已验证消息创建测试用例。

监视中间信息

除了通过监视触及 ESBs 或中间件系统中的 JMS 端点的事务消息自动生成功能测试之外,还可以可视化和跟踪作为测试触发的事务的一部分发生的流程内 JMS 消息,然后对它们进行分析以进行验证。

关于更多详情,请查阅 Event Monitoring - ESBs, Java Apps, Databases, and other Systems

  • No labels