...
对于出站消息传递, MultiPartMessage
由单个部分构造,该部分将请求消息包装为“text/xml”类型。用户可以通过部件内容 ID 字段指定部件的“Content-ID”头字段。对于入站消息传递,JMS 和 SonicMQ 传输都可以使用多个部分解析 MultiPartMessage。
为 SonicMQ 创建新的测试
若要配置 SOAtest 来创建访问 SonicMQ 的测试,请完成以下操作:
- 正常完成 WSDL 测试创建向导(有关详细信息,请查阅 Creating Tests From a WSDL )。
- 双击将使用 SonicMQ 的测试的测试节点。
- 在右侧 GUI 面板中,打开 Transport 选项卡,然后从 Transport 下拉菜单选择 SonicMQ 。各种选项将显示在 Transport 下拉菜单下:
- Connection Settings
- Queue/Topic
- Messaging Model
- Message Exchange Pattern
- Message Type
- Request Message Properties
- Response Message Correlation
- 按照以下部分的描述配置所需的选项。
配置 SonicMQ 选项
从合适工具的 Transport 选项卡内的 Transport 下拉菜单选中 SonicMQ 之后,将在 Transport 选项卡的左窗格显示以下选项:
- Connection Settings
- Queue/Topic
- Messaging Model
- Message Exchange Pattern
- Message Type
- Part Content ID
- Request Message Properties
- Response Message Correlation
Anchor | ||||
---|---|---|---|---|
|
Connection Settings 包含 Settings 和 Properties 选项。属性选项卡是可选项,它允许执行传递给 JNDI javax.naming.InitalContext 构造器的其他属性;除了在 Settings 选项卡中指定的 Provider URL 和 Initial Context factory 属性。Settings 选项卡包含:
...
- Keep-Alive Connection: 选择通知测试是否共享或关闭当前连接。共享连接被返回到连接池,以便在整个测试套件中使用。连接池的生命圈如下所示:
- 对于单个测试,其将在测试执行结束被销毁。
- 对于测试套件,它在测试套件执行结束时被销毁。
Anchor | ||||
---|---|---|---|---|
|
Queue/Topic 设置包括以下选项:
- JMS Destination: 指定将消息发送到何处的队列名称(如果使用点到点)或主题名称(如果使用发布和订阅)。
- JMS ReplyTo: 指定从何处获得响应消息的队列名称(如果使用点到点)或主题名称(如果使用发布和订阅)。如果选中的是 Temporary 而不是 Form,则这可以是临时队列。
Anchor | ||||
---|---|---|---|---|
|
指定如何在应用程序之间发送消息。选择 Point to Point 或 Publish and Subscribe。
Anchor | ||||
---|---|---|---|---|
|
指定是 SOAtest 接收响应还是 Virtualize 接收响应。如果选择 Get Response ,SOAtest 或 Virtualize 发送消息并接收响应。如果选择 Get Response ,SOAtest 或 Virtualize 只发送消息不接收响应。
...
此选项不可与 Match response JMSCorrelationID with the request JMSMEssageID 混合使用,因为 JMS 规范要求供应商在消息发送后生成 JMSMessageID。因此,没有办法使用该关联(选择器)在响应目的地上创建使用者,直到消息设置好并且 JMSMessageID 可用之后。
Anchor | ||||
---|---|---|---|---|
|
允许从下拉菜单中选择消息类型。SonicMQ 消息是一个 Java 对象,它包含在 SonicMQ 客户机之间传输的数据。可使用以下消息类型:
- progress.message.jclient.MultipartMessage
Anchor | ||||
---|---|---|---|---|
|
一个 Sonic MultipartMessage 可以有多个部分。每个部分都有自己的名称(ID)和内容。SOAtest 和 Virtualize 支持使用单个部件发送 MultipartMessages 消息。 此字段指定部件名称,内容由请求区域定义,如表单输入、文字、文字 XML(SOAtest)等。SOAtest 和 Virtualize 支持接收包含多个部件的 MultipartMessages,并将所有部件内容以 XML 格式输出到工具的响应输出。
Anchor | ||||
---|---|---|---|---|
|
可选项。它允许要设置到 javax.jms.Message 对象的任何其他属性值,然后将其发送到队列或发布到主题。这些包括预定义属性,这些属性被设置为使用一个与 javax.jms.Message 或 setStringProperty() 方法提供的任何自定义属性。
Anchor | ||||
---|---|---|---|---|
|
响应信息关联设置包括以下选项:
- Match response JMSCorrelationID with request JMSMessageID: 如果选择该选项,术语 JMSCorrelationID = '[msgId]’ 将被附加到选择器表达式之后,其中 msgId 是从传出(请求)javax.jms.Message(使用 getJMSMessageID() 方法)中动态生成的。实际上,这会导致工具阻塞,直到具有指定关联 id 的消息在队列(或主题)中可用,并且它只检索特定的消息,而不检索队列(或主题)中的任何消息。如果没有监视选择器条件的消息,工具将在超时量过期后超时。
- Match response JMSCorrelationID with request JMSCorrelationID: 如果选择该选项,术语 JMSCorrelationID = '[correlationId]’ 将附加到选择器表达式后,其中 correlationId 从消息属性部分中的 JMSCorrelationID 属性检索到。该选项只在此属性添加到消息属性部分时才可启用。实际上,这会导致工具阻塞,直到具有指定关联 id 的消息在队列(或主题)中可用,并且它只检索特定的消息,而不检索队列(或主题)中的任何消息。如果没有监视选择器条件的消息,工具将在超时量过期后超时。
Additional Selector Expression Terms: (可选)输入一个值作为消息过滤器。有关指定选择器的提示, 请查阅 使用消息选择器过滤器。
使用 SonicMQ 为客户端输出消息对象
可以添加消息对象输出给使用 SonicMQ 传输的工具。例如,连接到使用 SonicMQ 工具的扩展工具将有权访问响应 SonicMQ 消息。在 ObjectMessage 用例中,可以使用 getter
和 equals()
方法来验证响应,从而创建回归控制。此外,您还可以将 Diff 工具链接到响应流量,如果响应是一个 ObjectMessage,则 SOAtest 或 Virtualize 将会把插入的可序列化对象转换为 XML 格式并执行 XML 差异比较。这样做,您可以使用数据库值,忽略 Xpath 差异,等。
...