本主题解释如何通过侦听异步服务器响应来配置和应用支持异步 HTTP 测试的回调工具。
本章包含:
了解回调工具
SOAtest 支持异步 HTTP 测试,包括 Parlay、Parlay- x、SCP(SOAP 会话协议)、WS-Addressing、定制协议、JMS、TIBCO、WebSphere MQ 和 SonicMQ。配置回调工具之后,SOAtest 将设置一个服务器来管理回调消息。它使用您在工具配置中指定的键来识别传入的消息。
配置回调工具
在开始之前,确保本地 SOAtest 服务器正在运行。可以右键单击 SOAtest Server 视图中的 Server 节点并选中Start Server来启动服务器。
如果工作空间中 SOAtest 服务器视图不可见,请选择 Parasoft> Show View> SOAtest Server。
- 确保有来自 SOAP 客户端工具的 SOAP 调用。
- 选择主测试套件节点,并单击 Add test or output 按钮。将显示添加测试向导。
- 从添加测试向导中选择 Standard Test> Call Back Tool ,然后单击 Finish 按钮。将在测试套件中显示 Call Back Tool test 节点。
- 双击 Call Back Tool 测试节点。回调工具工作空间将显示以下选项:
- Data Source: (只有在将数据源添加到测试套件中时才可用)选择具有要用作回调值的所需参数的数据源。
- Call Back URL: 显示回调工具的服务器位置。只适用于 HTTP 协议。
- Timeout (sec): 指定延迟的长度(以秒为单位),在此之后,SOAtest 应该考虑您的请求超时。
- Protocol: 指定要使用的异步协议。
- Parlay: Parlay 协议。
- Parlay X: Parlay X 协议。
- SCP: SCP 协议。
- WS-Addressing: WS-Addressing 协议。
- Custom: 启用 HTTP 上的自定义消息关联。回调工具将在回调 URL 中获取与指定 Xppath 上元素的文本值匹配的任何消息。例如,假设您有以下消息:
<root>
<id>2</id>
<name>Java</name>
</root>
您可以定义/root/id
的 Xpath 值为2
。Xpath 将选择 id 元素。然后,回调工具将检查文本内容是否匹配配置值2
。回调工具不会接收到id
元素具有不同文本值的任何接收到的消息。 - No correlation: 选择此选项以使用 http://localhost:9080/servlet/NoCorrelationCallBackHandler中的第一个消息。如果选择了这个“协议”,并且该位置没有消息,那么测试将在超时后失败。
- JMS: 针对 JMS 协议。如果选择 JMS 作为协议,将提供其他选项。有关更多详情,请查阅 Configuring JMS options for the Call Back Tool。
- TIBCO: 针对 TIBCO 协议。有关更多详情,请查阅 Configuring TIBCO options for the Call Back Tool。
- WebSphere MQ: 针对 WebSphere MQ 协议。
- SonicMQ: 针对 SonicMQ 协议。
- Key Set: 显示回调消息中使用的键和值。如果选择 JMS 作为协议,则这些选项不可用。
- Key: 密钥将根据所选择的协议而变化。
- 对于 Parlay,用于确定唯一回调消息的键是 sessionID 和 requestNumber。有关 Parlay 规格说明/API 的更多消息,请查阅 http://www.parlay.org。
- 对于 Parlay X,用于确定唯一回调消息的键是 correlator。
- 对于 SCP,用于确定唯一回调消息的键是 conversationID。有关 SCP 规格说明/API 的更多消息,请查阅 http://dev2dev.bea.com/technologies/webservices/SOAPConversation.jsp。
- 对于 WS-Addressing,用于确定唯一回调消息的键是 MessageID。有关 WS-Addressing 规格说明的更多消息,请查阅 http://www-106.ibm.com/developerworks/library/specification/ws-add/
- XPath: (仅适用于自定义)双击以输入 XPath。
- Value: (不适用于 JMS)双击以输入固定值或参数化值(如果数据源可用)。
- Key: 密钥将根据所选择的协议而变化。
- 右键单击 Call Back Tool 测试节点并选择 Add Output。将显示 Add Output 向导。
- 从 Add Output 向导中选择所需的工具,为来自服务器的回调消息创建输出。例如,您可以选择 Diff 工具来对来自服务器的回调消息创建一个回归控件。
为回调工具配置 TIBCO 选项
如果 TIBCO 被选择作为回调工具的协议,则 TIBCO Properties 将面板显示在工具配置面板的底部。SOAtest 可以在本地 TIBCO 守护进程或远程守护进程上侦听。也就是说,总线守护进程可能在本地机器或其他地方运行。可使用以下选项:
- Timeout 字段表示 SOAtest 应该阻塞(等待)的时间,直到消息在指定的 Reply Subject 值上可用。
- Daemon: 指定服务器名称或服务器的 IP 后跟冒号(:)和端口号(比如,10.10.32.34:7500 或 host_name:7500)。
- Network: 指定传输对象所在的网络。 网络参数由至多以下三个部分组成,这些部分以分号(;)进行分隔:
network
;multicast groups
;send address
(比如lan0; 224.1.1.1; 244.1.1.6
)。 有关更多信息,请参阅 TIBCO Rendezvous 文档的网络选择部分。 - Service: 指定 TIBCO 的服务名称。
当通过编程语言 API 之一生成和访问 TIBCO 消息时,可以将内容放在命名字段下。内容(SOAP 消息、XML、文本等)必须放在 TIBCO 消息“字段”下。若要从消息检索所需的内容,则必须提供 Reply Field Name 。字段名是由应用程序生成一个 TIBCO 消息,所以决定该字段是什么,一个需要知道应用程序所使用的字段名(如果不知道,发送 TIBCO 消息的应用程序源代码应该包括字段名)。
Message Delivery 字段指示回调工具应在总线程上查找何种类型的消息。这应该与消息发送方建立的交付类型相对应。
Field Name 上的其他信息可以在 TIBCO Rendezvous Concepts> Fundamentals> Messages and Data> Fields下的 TIBCO Rendezvous 文档中找到。
有关 Reply subject 字段和其在 TIBCO 中意义的更多信息,请参阅 TIBCO Rendezvous Concepts> Fundamentals> Names and Subject-Based Addressing下的 TIBCO 文档。
为回调工具配置 JMS 选项
如果 JMS 被选择作为回调工具的协议,则 JMS Properties 将面板显示在回调工具工作空间的底部。可使用以下选项:
Connection Settings
Connection Settings 包括 JNDI Initial Context的 Settings 和 Properties 选项卡。
Properties 选项卡是可选项,它允许执行传递给 JNDI javax.naming.InitalContext 构造器的其他属性(除了在设置选项卡中指定的提供程序 URL 和初始上下文工厂属性)。属性值可以通过单击 Add 并完成 Add JMS 属性对话框以进行添加,也可以设置为固定值、参数化值、脚本化值或唯一值(一个自动生成的随机唯一值,没有两个测试调用将使用同一个值)。
Settings 选项卡包含以下内容:
- 如果为 JMS 连接创建了共享属性,则将提供一个下拉菜单,您可以从中选择 Use Local Settings 或 Use Shared Property。
- 如果选择 Use Shared Property,则将显示第二个下拉菜单,您可以从中选择 SOAP 客户端工具将使用的所需全局 JMS 设置。关于全局 JMS 设置的更多详情,请查阅 Global JMS Connection Properties。
- 如果选择 Use Local Settings,或者如果没有指定任何共享属性,则可以配置连接设置的剩余部分。
- Provider URL: 指定传递给 JNDI javax.naming.InitialContext 构造器名为 javax.naming.Context.PROVIDER_URL 属性的值。
- Initial Context: 指定作为名为 javax.naming.Context.INITIAL_CONTEXT_FACTORY 属性的字符串值传递给 JNDI javax.naming.InitialContext 构造器的完全限定类名字符串。
- Connection Factory: 传递给 javax.naming.InitialContext 中的 lookup() 方法以创建 javax.jms.QueueConnectionFactory 或 javax.jms.TopicConnectionFactory 实例。
除了设置选项卡,连接设置还包括:
- Queue or Topic Connection Authentication: 允许提供用户名和密码来创建队列连接。选择 Perform Authentication 复选框,输入 Username 和 Password 以对请求进行身份验证。如果未使用正确的用户名和密码,则不会对请求进行身份验证。此处提供的用户名和密码传递给 javax.jms.QueueConnectionFactory 类中的 createQueueConnection() 方法,以便获得 javax.jms.QueueConnection 实例。
Queue/Topic
Queue/Topic 设置包括以下选项:
- JMS Address: 指定将消息发送到何处的队列名称(如果使用点到点)或主题名称(如果使用发布和订阅)。
Messaging Model
指定如何在应用程序之间发送消息。选择 Point to Point 或 Publish and Subscribe。
传入的消息相关性
传入的消息相关设置包含以下选项:
- 选择 Match incoming JMSCorrelationID with 后,术语 JMSCorrelationID = '[correlationId]’ 将附加到选择器表达式后,其中 correlationId 从消息属性部分中的 JMSCorrelationID 属性检索到。该选项只在此属性添加到消息属性部分时才可启用。实际上,这会导致测试阻塞,直到具有指定关联 id 的消息在队列(或主题)中可用,并且它只检索特定的消息,而不检索队列(或主题)中的任何消息。如果没有监视选择器条件的消息,测试将在超时量过期后超时。
- 可以使用固定值、参数化值(来自数据源)或脚本化值指定标准。
- 其他选择器表达术语:(可选)输入一个值作为消息过滤器。关于指定选择器的提示,请查阅 Using Message Selector Filters。