响应器关联决定消息响应器工具接受和处理哪些消息。将发送到虚拟资产 URL 的不同消息路由到基于此处设置的特定的消息响应程序工具(每一个都处理不同的操作)。例如,其中一个消息响应程序工具可能响应到客户注册消息,另一个可能响应到支付消息,而还有一个可能作为默认的“catch all”函数,当其他选项都不匹配时使用该函数。

配置相关性

若要在 CTP 中配置响应器相关性,请完成以下内容:

  1. 在左窗格中,选择要配置其相关性的响应程序。
  2. 使用 Correlations 区域中的控件指定要应用哪些关联。您可以配置关联性的其中一个类型、多类型,或者配置为没有关联性。如果配置为没有关联系,则将处理消息中的所有内容。相关类型描述如下。

传输关联性

传输关联性允许您在消息中指定 HTTP 头、JSM 消息属性或 MQ 消息字段,这些字段将确定消息是否由此特定响应程序处理。

若要配置传输关联性:

  1. 选择 Transport headers 多选框。
  2. 单击 Add 按钮。将显示一个新的条目行。
  3. 输入要指定的传输关联的 NameValue 。如果想匹配包含此头文件(不管值被设置为什么)的所有消息,请使用 [*]:
     

请求体关联性

请求体关联性允许您在消息中指定 XPath,这将确定是否处理该消息。

若要配置请求体关联性,请完成以下内容:

  1. 选择 Request body 多选框。
  2. 单击 Add 按钮。将显示一个新的条目行,并打开 XPath 构建器。
  3. 提供 XPath 表达式来指示要匹配的请求体。您可以使用 XPath 构建器或使用功能 W3C 的标准 XPath 1.0 标准在 XPath 文本字段中输入 XPath(如 指定 XPath中所述)。
     
  4. 根据需要重复步骤 2 和步骤 3,直到指定了要匹配的所有 XPath。 

URL 路径关联性

URL 路径关联性允许您指定 URL 路径,这将确定是否处理该消息。URL 路径关联性应用于将通过 HTTP/HTTPs 访问的虚拟资产。

若要配置 URL 路径关联性:

  1. 选择 URL path 多选框。
  2. 指定要用于关联的路径。

例如,假定资产已在路径 http://myvirtserver:9080/MyAsset/MyPath 下部署,并且 /segment1/segment2/** 已在响应程序关联中指定。

以下 URL 将匹配此关联标准:

  • http://myvirtserver:9080/MyAsset/MyPath/segment1/segment2
  • http://myvirtserver:9080/MyAsset/MyPath/segment1/segment2/
  • http://myvirtserver:9080/MyAsset/MyPath/segment1/segment2/segment3?param1=value1&param2=value2

以下 URL 将不匹配:

  • http://myvirtserver:9080/MyAsset/MyPath/segment1/
  • http://myvirtserver:9080/MyAsset/MyPath/segment3/segment1/segment2

在 * 匹配 0 或更多字符以及 ** 匹配 0 或更多路径的地方可使用任何风格的通配符。使用此格式:

  • /**/abc 匹配 /abc 或 /this/that/abc
  • /abc/** 匹配 /abc 或 /abc/this/that/theother
  • /ab** 不匹配 /abc/d(它被解释为您使用了单个星号 /ab*);不匹配 /absolutely
  • /**bc 不匹配 /0/abc(它被解释为您使用了单个星号 /*bc);不匹配 /abc

示例 1:**/service/*

匹配不匹配

service/Repository
org/web/service/Entries
org/something/else/tools/stiff/service/Entries

org/web/service/foo/bar/Entries 

示例 2:org/parasoft/virtualize/**

匹配不匹配
org/parasoft/virtualize/tools/service

org/parasoft/virtualize/stuff

 org/parasoft/somethingelse

示例 3:org/parasoft/**/EM/*

匹配不匹配

org/parasoft/EM/Entries
org/parasoft/virtualize/soatest/tools/EM/Entries

 org/parasoft/EM/foo/bar/Entries

URL 参数关联

URL 参数关联性允许您指定 URL 参数,这将确定是否处理该消息。URL 参数可以是重复的(您可以拥有设置为不同值的相同参数)。任何包含列出的参数和其他参数的请求都将相互关联。缺乏其中一条指定参数的消息将不匹配。URL 参数关联应用于将通过 HTTP/HTTPs 访问的虚拟资产。

若要配置 URL 参数关联性,请完成以下内容:

  1. 选择 URL parameter 多选框。
  2. 单击 Add 按钮。将显示一个新的条目行。
  3. 输入这个响应器应该匹配的参数名称和值。如果想匹配包含此参数名称(不管值被设置为什么)的所有消息,请使用 [*]。
     
  4. 根据需要重复步骤 2 和步骤 3,直到指定了要匹配的所有参数值。


例如,假定资产已在路径 http://myvirtserver:9080/MyAsset/MyPath 下部署,并且已在响应程序中指定以下 URL 参数:

参数名称

param1 

value1
param2value2


以下请求 URL 将匹配此关联标准:

  • http://myvirtserver:9080/MyAsset/MyPath?param1=value1&m2=value2
  • http://myvirtserver:9080/MyAsset/MyPath?param1=value1&m2=value2&m3=value3
  • http://myvirtserver:9080/MyAsset/MyPath?param2=value2&m1=value1&m3=value3

以下 URL 将不会映射到此响应程序:

  • http://myvirtserver:9080/MyAsset/MyPath?param1=value1&m2=someothervalue&m3=value3
  • http://myvirtserver:9080/MyAsset/MyPath?param1=value1&m3=value3

HTTP 方法关联性

HTTP 方法关联性允许您指定 URL 方法,这将确定是否处理该消息。HTTP 路径关联性应用于将通过 HTTP/HTTPs 访问的虚拟资产。

若要配置 URL 方法关联性:

  1. 选择 HTTP method 多选框。
  2. 指定要用于关联的 HTTP 方法。
     

例如,如果选择 GET、POST 和 PUT,则响应程序将匹配具有方法 GET、POST 或 PUT 的 HTTP 请求。具有 CONNECT、DELETE、HEAD 等的 HTTP 请求将不匹配。

数据源关联性

在上面的响应器关联被处理之后,将传入消息中的值(按字面意思匹配或与表达式匹配)与数据源中的值进行比较,响应程序使用匹配的行数据来创建响应消息。如果没有找到匹配指定传入消息值的数据源行,则 Virtualize(使用默认的容错设置)将继续使用匹配的响应程序关联为响应器搜索响应程序套件。

例如,以下对介于传入消息中的 loanAmount 值和 ApprovalLists 数据源中的 Amount 列之间进行关联配置:

对于每个传入请求,loanAmount 将匹配到 Amount 列中的一行。然后,将使用来自同一行的其他列的值对响应进行参数化。

在配置相关性时,请注意,您可以输入数据源列的名称,或者从与此工具关联的数据源中可用列的列表中进行选择(在配置区域顶部的数据源列中进行选择)。

这显示了所选数据源:

这显示了该数据源中可用的列:

容错选项

在启用数据源关联性时,Virtualize 使用数据源关联性中指定的标准,尝试将传入消息中的值与数据源值进行匹配。如果没有匹配特定传入消息值的数据源,则将其视为数据源关联故障。

在启用 Continue searching for a matching responder if data source correlation fails (默认设置)并且此响应程序的数据源关联失败时,Virutalize 将使用匹配的响应程序关联继续为响应程序搜索响应程序套件。只有在下列情况下才会报错:

  • 没有响应程序满足响应程序关联性标准,或者
  • 响应程序套件中的另一个响应程序匹配响应程序相关性,但其数据源相关性出现故障,且其数据源相关性容错选项被禁用。

如果禁用 Continue searching for a matching responder if data source correlation fails ,并且此响应程序的数据源关联出现故障,则将立即报告一个错误,并且 Virtualize 将停止对匹配响应程序的继续搜索。

请求体

此区域允许您指定一个或多个 Xpath 来运行传入消息,以便提取一个或多个值。提取到的值将与映射的数据源列匹配。

您可以直接在 XPath 字段中输入 Xpath,或者使用如 指定 XPath中所述的 XPath 构造器添加它们。

URL 参数

此区域适用于通过 HTTP/HTTPS 访问的资产。指定要在请求 URL 中查询的一个或多个 URL 参数。参数值将与映射的数据源列匹配。

如果使用多个列进行关联,则必须对每个列行的值进行解码或编码。如果所有值都进行了编码,则它们必须是以同一种方式进行的,即用额外标记或“%20”代表空格,但并非两者同时使用。

在不存在/空字段和参数上进行匹配

数据源关联会在请求中不存在的字段上进行匹配。关于更多详情,请查阅 Virtualize 用户指南。

URL 路径

此区域适用于通过 HTTP/HTTPS 访问的资产。可以根据路径段索引配置数据源值映射。

例如。假定如下:

  • 资产部署在路径 http://myvirtserver:9080/MyAsset/MyPath
  • 传入请求具有 http://myvirtserver:9080/MyAsset/MyPath/[somedynamicvalue]/B/C模式

如果希望在 [somedynamicvalue] 段下获取值,并将其与数据源列进行匹配,则指定 2 作为 URL 路径索引。计数包含资产部署中使用的路径段,并从 0 开始。

如果希望匹配来自 URL http://myvirtserver:9080/MyAsset/MyPath/A/[somedynamicvalue]/C的动态值,则使用索引值 3。

如果使用多个列进行关联,则必须对每个列行的值进行解码或编码。如果所有值都进行了编码,则它们必须是以同一种方式进行的,即用额外标记或“%20”代表空格,但并非两者同时使用。

  • No labels