响应器关联决定消息响应器工具接受和处理哪些消息。将发送到虚拟资产 URL 的不同消息路由到基于此处设置的特定的消息响应程序工具(每一个都处理不同的操作)。例如,其中一个消息响应程序工具可能响应到客户注册消息,另一个可能响应到支付消息,而还有一个可能作为默认的“catch all”函数,当其他选项都不匹配时使用该函数。
配置相关性
若要在 CTP 中配置响应器相关性,请完成以下内容:
- 在左窗格中,选择要配置其相关性的响应程序。
- 使用 Correlations 区域中的控件指定要应用哪些关联。您可以配置关联性的其中一个类型、多类型,或者配置为没有关联性。如果配置为没有关联系,则将处理消息中的所有内容。相关类型描述如下。
传输关联性
传输关联性允许您在消息中指定 HTTP 头、JSM 消息属性或 MQ 消息字段,这些字段将确定消息是否由此特定响应程序处理。
若要配置传输关联性:
- 选择 传输头信息 多选框。
- 单击 Add 按钮。将显示一个新的条目行。
- 输入要指定的传输关联的 Name 和 Value 。如果想匹配包含此头文件(不管值被设置为什么)的所有消息,请使用 [*]:
请求体关联性
请求体关联性允许您在消息中指定 XPath,这将确定是否处理该消息。
若要配置请求体关联性,请完成以下内容:
- 选择 请求体 多选框。
- 单击 Add 按钮。将显示一个新的条目行,并打开 XPath 构建器。
- 提供 XPath 表达式来指示要匹配的请求体。您可以使用 XPath 构建器或使用功能 W3C 的标准 XPath 1.0 标准在 XPath 文本字段中输入 XPath(如 指定 XPath中所述)。
- 根据需要重复步骤 2 和步骤 3,直到指定了要匹配的所有 XPath。
URL 路径关联性
URL 路径关联性允许您指定 URL 路径,这将确定是否处理该消息。URL 路径关联性应用于将通过 HTTP/HTTPs 访问的虚拟资产。
若要配置 URL 路径关联性:
- 选择 传输头信息 多选框。
- 指定要用于关联的路径。
例如,假定资产已在路径 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¶m2=value2
以下 URL 将不匹配:
- http://myvirtserver:9080/MyAsset/MyPath/segment1/
- http://myvirtserver:9080/MyAsset/MyPath/segment3/segment1/segment2
在 * 匹配 0 或更多字符以及 ** 匹配 0 或更多路径的地方可使用 Ant 风格的通配符。使用此格式:
- /**/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/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/EM/foo/bar/Entries |
URL 参数关联
URL 参数关联性允许您指定 URL 参数,这将确定是否处理该消息。URL 参数可以是重复的(您可以拥有设置为不同值的相同参数)。任何包含列出的参数和其他参数的请求都将相互关联。缺乏其中一条指定参数的消息将不匹配。URL 参数关联应用于将通过 HTTP/HTTPs 访问的虚拟资产。
若要配置 URL 参数关联性,请完成以下内容:
- 选择 URL 参数 多选框。
- 单击 Add 按钮。将显示一个新的条目行。
- 输入这个响应器应该匹配的参数名称和值。如果想匹配包含此参数名称(不管值被设置为什么)的所有消息,请使用 [*]。
- 根据需要重复步骤 2 和步骤 3,直到指定了要匹配的所有参数值。
例如,假定资产已在路径 http://myvirtserver:9080/MyAsset/MyPath
下部署,并且已在响应程序中指定以下 URL 参数:
参数名称 | 值 |
---|---|
param1 | value1 |
param2 | value2 |
以下请求 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 方法关联性:
- 选择 HTTP method 多选框。
- 指定要用于关联的 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”代表空格,但并非两者同时使用。