...
如果 JMS 配置没有 SOAtest 或 Virtualize 可以查询 ConnectionFactory 实例的 JNDI 提供程序,请遵循 JMS Messaging without JNDI中的指导说明。或者,你可以设置简单的文件系统 中的指导说明。或者,您可以设置简单的文件系统 JNDI 提供程序。 此类提供程序的 .jars 和文档可从 Oracle Java 站点获得。设置文件系统提供程序非常简单,下载部分包含了文档。 一旦提供程序准备就绪,请如 Configuration for Popular JMS Providers 中所描述使用简单的 Java 代码块来创建 ConnectionFactory 实例,以便使用主机和端口作为参数连接到 JMS 服务器。对于本产品使用的主题和队列(Topics and Queues)也应该这样做。
...
属性 选项卡是可选项,它允许执行传递给 JNDI javax.naming.InitalContext 构造器的其他属性(除了在设置选项卡中指定的提供程序 URL 和初始上下文工厂属性)。属性值可以通过单击 Add 并完成 Add JMS 属性对话框以进行添加,也可以设置为固定值、参数化值、脚本化值或唯一值(一个自动生成的随机唯一值,没有两个工具调用将使用同一个值)。
设置 选项卡包含以下内容:
- 如果为 JMS 连接创建了共享属性,则将提供一个下拉菜单,你可以从中选择 连接创建了共享属性,则将提供一个下拉菜单,您可以从中选择 Use Local Settings 或 Use Shared Property。
- 如果选择 Use Shared Property,则将显示第二个下拉菜单,你可以从中选择工具将使用的所需全局 ,则将显示第二个下拉菜单,您可以从中选择工具将使用的所需全局 JMS 设置。关于全局 JMS 设置的更多详情,请查阅 添加全局测试组件属性。
- 如果选择 Use Local Settings,或者如果没有指定任何共享属性,则可以配置连接设置的剩余部分。
...
- TextMessage: 用于发送包含 java.lang.String 的消息。如果只希望发送简单的文本文档,则这一点非常有用。如果正在通过 JMS 执行 SOAP,那么你输入到 SOAP,那么您输入到 TextMessage 的字符串应该为 SOAP Envelope。
- BytesMessage: 用于发送包含未编译字节流的消息。消息的接收方根据其认为合适的方式解释字节。如果正在通过 JMS 执行 SOAP,那么你输入到 SOAP,那么您输入到 ByteMessage 的字符串应该组成 SOAP Envelope。数据以其最基本表现形式发送。在 JMS 节点只对转发/路由数据感兴趣,而数据的内容对它们并不重要时,这一点也很有用。它经常与 TextMeassage 一起使用。
- 当 Parasoft 首选项中编码为 UTF-8(默认)时,可以使用 Method 选项来控制字符串如何从响应 BytesMessages 中提取。下拉菜单中的两个方法与 BytesMessage JMS API 中的两个可用方法相对应(有关更多详情,请查阅 Oracle Java 文档)。
- 如果在首选项中选择了不同编码,则 SOAtest 或 Virtualize 将总是在响应消息上调用 BytesMessage.readBytes() ,以便说明不同的字符编码。
- StreamMessage: 用于发送原始值流。如果正在通过 JMS 执行 SOAP,那么你输入到 SOAP,那么您输入到 StreamMessage 的字符串应该是 SOAP Envelope。
- ObjectMessage: 用于发送 Java Serializable。应该使用 Scripting 输入视图来返回 Java Serializable。此对象将在运行时被获取并粘贴到 ObjectMessage 中。
- MapMessage: 用于发送一组 name-value 对。该值只会是 java 原始类型或其各自的包装类、字符串或字节数组。MapMessage 对象的复杂性之一是:即使插入值作为字符串(使用 setString()),但如果该值可以强制转换为整数型,那么也可以调用 getInt() 并获得整数型的值。
...
可以添加消息对象输出给使用 JMS 传输的消息传递客户机。还可以将传入的 JMS 消息输出添加到使用 JMS 传输的回调工具中。可以链接扩展工具,例如,使用 JMS 的消息传递客户机,以便访问响应 JMS 消息。在 ObjectMessage 用例中,可以使用 getter
和 equals()
方法来验证响应,从而创建回归控制。此外,你还可以将 方法来验证响应,从而创建回归控制。此外,您还可以将 Diff 工具链接到响应流量,如果响应是一个 ObjectMessage,则 SOAtest 将会把插入的可序列化对象转换为 XML 格式并执行 XML 差异比较。这样做,你可以使用数据库值,忽略 差异比较。这样做,您可以使用数据库值,忽略 Xpath 差异,等。
要做到这一点,请完成以下步骤:
...
例如,通过输入 username==John
,只有包含 "John” 作为用户名的消息才会被发送。如果字段保留为空,则可以接收任何消息。
这是用来处理消息选择器过滤器的一些提示:
可以根据变量、环境变量和数据源值参数化其他选择器表达术语值。引用变量变量和环境变量的语法为 可以根据变量、环境变量和数据源值参数化其他选择器表达术语值。引用变量和环境变量的语法为 ${myVariableName}。引用 XML 数据库值和数据源值的语法为:${myColumnName}.例如,可以使用 JMSCorrelationID ='${myColumnName}。
- 如果要根据内容过滤事件消息,那么可以将如 XML 转换器的工具链接到其 XML 事件输出。
- 选择器字段链接到名为 "message selectors”的 JMS 功能。指定表达式在创建 javax.jms.MessageConsumer 的时候传递给 javax.jms.Session 对象。JMS 规范定义的选择器表达式可以应用于 JMS 消息数据头和属性,但不可应用于消息主体内容。
- 在点到点的消息传递中,该表达式被传递给 javax.jms.QueueSession 类的 createReceiver() 方法中。在发布和订阅消息传递中,其被传递给 javax.jms.TopicSession 类的 create-Subscriber() 方法中。
表达式语法是 SQL92 的子集。例如,如果表达式为
fruit = 'apple'
或JMSCorrelationID = '123456
',
则只有具有属性fruit
值定义为apple
或 JMS 数据头 JMSCorrelationID 值设置为123456
才会被获取。- 关于更多信息,请参考 Oracle Java 站点上的 Java Message Service Specification。
...
- 请保持连接 JNDI 连接设置 Provider URL 字段中的连接 URL。
- 保留 Initial Context 字段为空。
- 在 Connection Factory 字段中指定完全限定 MOM 连接工厂类名。该类名应该表示实现 javax.jms.ConnectionFactory 的类。
- 在 Sonic 和 TIBCO 的案例中,你可以遵循与 的案例中,您可以遵循与 JNDI 提供程序 URL 相同的模式(请查阅 Progress Sonic MQ/ESB and TIBCO EMS 以获得更多详情)。
...