本主题解释如何从通讯报文日志中捕获的通讯报文中创建固定的消息响应程序。
本章包含:
请求和响应的 HTTP 数据头必须包含包含 xml 或 json 内容类型的内容类型头。 例如:
消息内容必须是格式良好的;否则,自动从通讯报文中创建消息响应程序可能失败。 |
当从通讯报文中创建消息响应器时,保持控制台视图可见是很有帮助的。此视图将显示在处理通讯报文文件时生成的任何警告、错误和信息消息。 |
若从通讯报文文件自动创建和部署“固定消息”消息响应器,请完成以下内容:
可用选项包括: - None: 没有分组。为通讯报文文件中的每个响应消息生成一个响应器。如果希望每个请求/响应对位于单独的消息响应器中,请使用此选项。 - Based on operation/type: 根据操作或消息类型对消息进行分组。这对于包含可以通过操作或格式的消息类型(即,SOAP 主体下元素的名称、纯 XML 消息中根元素的名称或指定消息格式的消息类型)。为在通讯报文文件中发现的每个操作/类型生成一个响应器。 - Based on similar requests: 根据请求消息结构对消息进行分组。这告诉 Virtualize 分析请求消息结构并将请求/响应分组到响应程序中,以便每个响应程序将包含与具有类似结构的请求相关的响应。当消息具有相同的 DOM 树模型时,即使它们具有不同的值,也会被认为是“相似的”。此选项用于优化和简化将请求与每个消息响应器中的响应关联的规则。 - Based on similar responses: 根据响应消息结构对消息进行分组。这告诉 Virtualize 分析响应消息结构并将请求/响应对分组到响应程序中,以便每个响应程序将包含具有类似结构的响应。当消息具有相同的 DOM 树模型时,即使它们具有不同的值,也会被认为是“相似的”。此选项用于生成为数据源参数化优化的消息响应程序。由于消息响应器中的所有响应都是类似的,因此可以更容易地为每个响应器生成数据源,以创建数据源驱动的资产。 |
然后,Virtualize 创建消息响应器并将它们部署到本地虚拟化服务器。
请求消息将根据在消息集中检测到的不同操作进行分组分析。每个操作都会产生一个消息响应器。对于 SOAP 消息,直接使用 Body 下的元素名作为操作名。对于纯 XML,根元素用于确定操作。
对于 JSON 内容,将为从日志中读取的每个响应消息创建一个响应器。您将需要在 .pva 创建完成后配置所需的响应器相关标准。
“请求参数选择向导”将为在通讯报文文件中检测到的每个操作提供一个步骤。在这个步骤中,Virtualize 将为每个操作/组生成一个基于“name”的 XPath;这将用于设置该操作的响应程序相关性。例如,如果 SOAP 主体下的元素名是“SubmitOrder”,那么设置到响应器相关部分的 Xpath 表达式将类似于 local-name(/*/*[local-name(.)="Body"]/*)="SubmitOrder"
注意,当消息不是 XML 时,X©Path 和参数选择应用于请求消息的转换 XML 版本。
对于属于同一操作的每组消息,将相互比较请求,以确定不同请求之间的参数。
对于请求消息中的每个操作,Virtualize 都显示一个 Configure Dynamic Messages 向导页面。 Response 选项卡显示响应消息的所有可能元素,并允许您使用从传入请求消息中提取的值对这些元素进行参数化。 Transport Header 选项卡允许参数化数据头值和属性。
若要参数化 Response or Transport Header 选项卡中的值,请完成以下内容:
单击 Finish 完成向导后,XML 数据库工具(或数据头信息数据库工具,用于数据头信息)将自动添加到生成的消息响应器中。
这些工具已经配置为执行向导中指定的提取(${} 符号将用于访问参数化的值)。例如,请注意以下消息响应器如何设置为使用从消息请求中提取并保存到 titleKeyword 列中的值:
如果想修改提取,请打开工具的配置面板,然后按照 XML 数据库 和 Header 数据库中的描述自定义可用设置。
如果在虚拟资产文件夹中创建 .pva,则在向导完成时,虚拟资产将自动部署到本地虚拟化服务器。否则,您可以随时将其部署到本地或远程服务器。
有关部署过程和选项的更多详细讨论,请查阅 Deploying Virtual Assets。
关于如何自定义消息响应程序行为的更多详情,请查阅 消息响应程序概要。