本主题提供有关在“从通讯报文生成参数化消息”向导中完成请求匹配向导页的详细信息。此页面允许您重新映射请求/响应对,自定义用于确定虚拟资产的响应消息的参数值,并指定与此消息关联的 WSDL 或模式。

本章包含:

重新映射请求/响应对

如果希望重新映射请求/响应对,请按需断开/重新连接 Request/Response Pairs 选项卡中的映射。例如,如果响应 3 实际上与请求 2 相关,则可以这样表示:



连接的消息将在生成的消息响应器和数据存储库中使用。断开连接(或未表示)的消息不会。如果不希望在消息响应器或数据存储库中使用消息,则可以删除该消息块或断开连接。

若要查看消息细节,请选择相关的消息块。



自定义相关性

如果想自定义参数值是用来确定响应消息的虚拟资产,请确保已清除 Autoconfig 框,然后在显示在随后的向导页面(页面向导将为每个消息组)中的 Request Correlation 选项卡中指定所需的相关选项。 Request Correlation 选项卡自动填充以下关联(如果适用),并允许您自定义初始关联:

如果没有指定模板,页面的初始状态将显示从当前通讯报文文件自动生成的数据源关联。

如果指定了模板,页面的初始状态将显示模板中定义的数据源关联。在这种情况下,数据源关联不会自动从当前通讯报文文件生成。

禁用请求关联以创建单响应响应器

对于没有数据源关联或只有一个响应的组,您可能希望创建一个总是返回相同响应的响应器。为此,清除 Request Correlation 选项卡顶部的 Enable Request Correlation 框。

了解如何使用相关性

这里指定的任何自定义关联都用于在生成的响应器中配置数据源关联。例如,假设您将 Xpath 指定为一个请求体关联(在 Request correlation 选项卡中):
 



Xpath 将在生成的响应程序的数据源相关选项卡中使用,如下所示。
 



注意,如果需要,可以自定义自动生成的数据源列名。

又例如,假设您指定了以下请求 URL 路径关联



在生成的响应程序的 Data Source Correlation 选项卡中将使用以下内容:
 

修改初始关联

您可以使用各个相关部分中可用的控件来修改自动配置的配置。如果您修改了设置,但希望将页面恢复到初始状态,只需单击 Restore Default 按钮。

如果多次指定相同的列名(例如,在 URL 参数和 URL 路径中),则将会设置一个值;前面的值将被重写。

请求体关联性

Virtualize 将为每个操作/组生成一个基于“name”的 XPath;这将用于设置该操作的响应程序相关性。例如,如果 SOAP 主体下的元素名是“SubmitOrder”,那么将 XPath 表达式设置为响应器相关部分,如下所示:

 local-name(/*/*[local-name(.)="Body"]/*)="SubmitOrder".

注意,当消息不是 XML 时,X©Path 和参数选择应用于请求消息的转换 XML 版本。

对于属于同一操作的每组消息,将相互比较请求,以确定不同请求之间的参数。Virtualize 的通讯报文自动配置将自动分析请求元素中的差异,然后使用该分析的结果为该操作/组中可用的响应生成 Xpath 表达式。目标是为每个不同的请求元素自动生成响应。如果通讯报文是 SOAP Envelope,那么只要消息共享相同的操作元素(这是 SOAP 主体下的第一个元素),就允许存在结构差异。如果通讯报文是通用 XML,那么只要消息具有相同的根节点,就允许存在结构差异。

如果希望覆盖向导页面中显示的初始配置,请使用可用控件指定要使用的 Xpath 和列名。
 


为了匹配而忽略某些值

有时候,出于匹配的目的,最好忽略某些值(例如时间戳)。Virtualize 根据下面的正则表达式自动配置为忽略时间戳: 

[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}([.][0-9]{1,3})?(([+-][0-9]{2}:[0-9]{2})|Z)?

如果想查看、修改或添加排除,请单击页面底部的 Exclusions 按钮,然后编辑表中的值。元素名称指定为精确匹配或使用通配符(*)来匹配所有内容。根据正则表达式指定值。
 


如果您 总是 想为了匹配目的而忽略某些值,则可以在 Preferences> Parasoft> Traffic File Processing 区域中输入它们一次,并在每次从通讯报文创建参数化虚拟资产时应用它们。有关更多详情,请查阅 Traffic File Processing Settings

请求 URL 参数关联

对于请求 URL 参数,如果属于消息组的调用中的 URL 参数有任何差异(例如不同数量的参数、不同的参数(名称)或不同的参数值),则 Virtualize 的自动配置将根据这些差异自动配置相关关系。

例如,假设特定消息组的调用中有以下参数:

countryCode=US&brandCode=HG

countryCode=Uk&brandCode=HG&channelCode=3

countryCode=US

countryCode=UK

brandCode=HG

根据参数的不同,Virtualize 将自动为这个消息组配置 3 个数据源相关行:countryCode、brandCode 和 channelCode。

如果希望覆盖向导页面中显示的初始配置,请使用可用控件指定要使用的参数和列名。
 

请求 URL 路径关联性

对于 URL 路径,如果属于组的调用中的 URL 路径有任何差异,则 Virtualize 的通讯报文自动配置将根据这些差异自动配置相关关系。

例如,假设特定消息组的调用中有以下路径:

/customer/123/account/1920384

/customer/203/account/4922434

/customer/302/account/7349463

根据段 1 和段 3 中的差异(使用基于 0 的索引),Virtualize 将为这个消息组添加 2 个数据源相关行:一个用于路径索引 1,一个用于路径索引 3。

如果希望覆盖向导页面中显示的初始配置使用可用控件指定要用于关联的路径段。路径段可以与一个或多个数据源列名匹配,然后使用各种数据源列参数化。在打开的对话框中,指定要使用的路径段(可以单击相关的路径段或输入所需的路径索引),然后为数据源列指定一个名称。

请求数据头关联性

请求头关联不会在 Virtualize 的通讯报文自动配置过程中添加。如果想基于数据头信息值进行关联,请为要提取并匹配的请求值提供头信息,然后将其一一映射到数据源列中。提取到的值将与映射的数据源列匹配。


指定 WSDL 或模式

如果想为该通讯报文提供 WSDL 或模式,请在 WSDL/Schema 选项卡中输入它。指定 WSDL 或模式的优点包括:

  • 生成的表单输入模型将根据 WSDL/Schema,当您编辑和维护结果表单输入时,该模式提供了丰富的类型。
  • 变更指导助手(如 变更管理中描述)可以帮助您保持资产与不断发展的服务和不断变化的环境条件保持同步。

如果您注意到生成的表单输入及其数据参数化与原始消息不匹配,则说明消息没有完全匹配 WSDL/Schema,或者映射原始消息失败。如果遇到这样的问题,应该忽略 WSDL/Schema,以确保生成的表单输入模型完全匹配通讯报文消息。

如果不指定 WSDL 或模式和消息,请使用选择或扩展类型,请参阅 Understanding Choice/Extension Type Support

  • No labels