本主题解释如何通过侦听异步服务器响应来配置和应用支持异步 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 

  1. 确保有来自 SOAP 客户端工具的 SOAP 调用。
  2. 选择主测试套件节点,并单击 Add test or output 按钮。将显示添加测试向导。
  3. 从添加测试向导中选择 Standard Test> Call Back Tool ,然后单击 Finish 按钮。将在测试套件中显示 Call Back Tool test 节点。
  4. 双击 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,用于确定唯一回调消息的键是 sessionIDrequestNumber。有关 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)双击以输入固定值或参数化值(如果数据源可用)。
  5. 右键单击 Call Back Tool 测试节点并选择 Add Output。将显示 Add Output 向导。
  6. 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 SettingsUse 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 PointPublish and Subscribe

传入的消息相关性

传入的消息相关设置包含以下选项:

  • 选择 Match incoming JMSCorrelationID with 后,术语 JMSCorrelationID = '[correlationId]’ 将附加到选择器表达式后,其中 correlationId 从消息属性部分中的 JMSCorrelationID 属性检索到。该选项只在此属性添加到消息属性部分时才可启用。实际上,这会导致测试阻塞,直到具有指定关联 id 的消息在队列(或主题)中可用,并且它只检索特定的消息,而不检索队列(或主题)中的任何消息。如果没有监视选择器条件的消息,测试将在超时量过期后超时。
    • 可以使用固定值、参数化值(来自数据源)或脚本化值指定标准。
  • 其他选择器表达术语:(可选)输入一个值作为消息过滤器。关于指定选择器的提示,请查阅 Using Message Selector Filters
  • No labels