本主题介绍如何从通讯报文日志中捕获的通讯报文中创建固定的消息响应器。
章节目录:
从通讯报文中创建固定消息虚拟资产
请求和响应的 HTTP 头必须包含 XML 或 JSON 内容类型的 Content-Type 头。例如:
Content-Type: application/json; charset=UTF-8
Content-Type: text/xml; charset=UTF-8
消息必须格式正确,以便能够从通讯报文中自动成功创建响应器。
当从通讯报文中创建消息响应器时,保持控制台视图可见会很有帮助。此视图将显示在处理通讯报文文件时生成的任何警告、错误和信息消息。
若从通讯报文文件自动创建和部署“固定消息”消息响应器,请完成以下内容:
- 在可用的创建向导中选择通讯报文 > 生成固定消息选项。
- 有关访问该向导的详情,请参阅添加项目、虚拟资产和响应器套件。
- 点击下一步并选择以下选项:
- 在文件路径字段中指定通讯报文文件的路径。
- 根据需要选择字符编码下拉菜单中的字符编码。
- (可选)指定服务定义文件。提供服务定义有助于 Virtualize 创建更好的消息分组。
- 在“响应策略”部分中选择默认响应器模式(请参阅Response Strategies)。
- (可选)启用储存每个响应请求,自动填充响应器的请求模板。如果您计划为响应器生成内联表达式,这一步骤将非常有用(请参阅提取请求值以填充响应)。
- 点击下一步并指定消息分组选项(请参阅Messaging Group Options)。
- 如果指定了服务定义,则可以在消息组创建选项部分启用约束选项。如果启用此选项,则只对服务定义文件中定义的消息组进行分组。所有其他消息将被忽略。如果禁用此选项,Virtualize 将对通讯报文文件中出现的所有消息进行分组。约束选项默认启用。
- 如果指定了服务定义,则可以在消息组创建选项部分启用空白组选项。如果启用此选项,即使通讯报文文件不包含符合分组标准的消息,也仍会根据服务定义创建分组。禁用该选项后,将不会创建无消息的分组。空白组选项默认禁用。
- (仅限 MQ 和 JMS)点击下一步并指定 MQ 或 JMS 连接设置。
- 点击下一步,填写消息分组审查界面中的选项(请参阅Message Grouping Review Screen)。
- 点击下一步,然后在部署虚拟资产界面中指定要创建的虚拟资产的名称和部署路径。更多信息,请参阅配置单个虚拟资产部署设置。
- 点击完成,创建资产。对于 XML 消息,可以点击下一步配置动态消息(可选)。
- 动态消息使用从传入消息中提取的数据来参数化响应消息或头元素。您可以针对每个要参数化的操作完成配置动态消息界面的设置。完成每个界面的设置后,点击下一步进行下一步操作。有关如何配置动态消息的详情,请参阅Completing the Configure Dynamic Messages Wizard。
- 点击完成。
之后,Virtualize 将创建消息响应器并将它们部署到本地 Virtualize 服务器。
请求消息将根据在消息集中检测到的不同操作进行分组分析。每个操作都会产生一个消息响应器。对于 SOAP 消息,直接使用 Body 下的元素名作为操作名。对于纯 XML,根元素用于确定操作。
响应策略
响应策略确定要配置的消息组的默认响应器模式。您可以在向导的另一个屏幕中更改单个消息组的响应器模式,但此选项配置添加到套件中的响应器的基线行为。可以指定以下其中一种响应策略。
关联 | 此选项以多响应模式生成响应器。在此模式下,将根据请求相关性发送响应消息。更多信息,请参阅多响应。 在某些情况下,向导可能会回退到序列响应或字面量模式。如果 Virtualize 未检测到相关条件,则可能会发生这种情况。如果需要返回到备用模式,则如果在通讯报文文件中检测到同一请求的不同响应,则 Virtualize 将使用序列响应模式(请参阅序列响应)。如果所有响应都相同,则 Virtualize 将回退到字面量响应模式(请参阅字面量)。 |
---|---|
序列 | 此选项以序列响应模式生成响应器。更多信息,请参阅序列响应。 |
单个响应 | 此选项将从消息组中选择单个消息对,并以字面量模式生成响应器。请参阅字面量。 |
消息分组选项
您可以指定以下消息组选项。
无 | 没有分组。为通讯报文文件中的每个响应消息生成一个响应器。如果想让每个请求/响应对位于单独的消息响应器中,请使用此选项。 |
---|---|
基于操作/类型 | 根据操作或消息类型对消息进行分组。这对包含可通过操作或格式消息类型(即 SOAP 体下的元素名称、纯 XML 消息中的根元素名称或指定消息格式的消息类型)明确识别的消息的服务通讯报文而言非常有用。为在通讯报文文件中发现的每个操作/类型生成一个响应器。 |
基于类似请求 | 根据请求消息结构对消息进行分组。这告诉 Virtualize 分析请求消息结构并将请求/响应分组到响应器中,以便每个响应器将包含与具有类似结构的请求相关的响应。当消息具有相同的 DOM 树模型时,即使它们具有不同的值,也会被认为“类似”。此选项用于优化和简化将请求与每个消息响应器中的响应关联的规则。 |
基于类似响应 | 根据响应消息结构对消息进行分组。这告诉 Virtualize 分析响应消息结构并将请求/响应对分组到响应器中,以便每个响应器将包含具有类似结构的响应。当消息具有相同的 DOM 树模型时,即使它们具有不同的值,也会被认为“类似”。此选项用于生成为数据源参数化优化的消息响应器。由于消息响应器中的所有响应都是类似的,因此更容易为每个响应器生成数据源,以创建数据源驱动的资产。 |
消息分组审查界面
消息分组审查界面中的列以应用的分组策略为准。每个表行表示定义一个组的标准。为每个表行生成一个组。将为每个组生成一个响应器。有关使用此界面的完整信息,请参阅“自定义分组标准”部分。
关联性标准将按它们在表中的显示顺序(从上到下)进行处理。有关如何创建这些分组的详情,请参阅了解按操作类型分组的启发式方法。
您可以使用控件添加、修改、重新排序和删除分组标准。如果更改标准,请确保在继续前点击重组。
自动配置选项允许 Virtualize 为指定的分组自动配置消息响应器。禁用自动配置选项可为每个消息组手动配置消息响应器(请参阅Configuring Request Mapping Options)。
当消息组中有多个请求且路径、参数或主体存在差异时,自动配置通常可用。如果自动配置框灰显,则表示此分组不可使用“自动配置”;有关为何无法自动配置特定分组的详情,请参阅相关项的工具提示。
有关面板顶部列出项(已处理对、未处理对、与分组不匹配的消息等)的详情,请点击相关超链接。
若要查看与特定响应器相关的消息和/或更改响应器和数据集名称,请点击计数列中的相关行。
配置请求映射选项
“请求匹配”界面允许您重新映射请求/响应对,并自定义用于确定虚拟资产的响应消息的参数值。有关在“请求匹配”界面中配置选项的完整详情,请参阅定制请求匹配和关联章节。
完成“配置动态消息”向导
对于请求消息中的每个操作,Virtualize 都显示一个配置动态消息向导页面。响应选项卡显示响应消息的所有可能元素,并允许您使用从传入请求消息中提取的值对这些元素进行参数化。传输消息头选项卡允许参数化头部的值和属性。
若要参数化响应或传输消息头选项卡中的值,请完成以下内容:
- 选择应该使用提取值的项。
- 如果要对响应消息中的元素进行参数化,请在响应选项卡左侧窗格中的响应树中选择相应元素。
- 如果要参数化头部的值或属性,请在传输消息头选项卡中选择响应的传输和类别。如果想参数化一个尚未显示的头部值,可立即添加。
- 选择参数化,然后选择使用数据源向导。
- 在打开的向导中,完成以下内容:
- 在这一页的顶部,选择要从中提取值的传入请求消息,然后指定是否要从消息体或消息头中提取值。
- 使用面板左侧的控件,指示要提取的内容并将其添加到面板右侧。右侧面板列出了为提取内容配置的值,并显示了将存储这些值的数据源列的名称(如果保留默认设置)。
- (可选项)如果希望指定额外选项(比如,如果希望更改用来存储值的列名,则希望值保存到可写数据源汇总,或者希望值存储到现有变量),或者,如果希望修改高级 Xpath 设置,则选择右侧表中合适的元素并点击修改。接下来,根据需求配置选项,然后点击 OK。可用选项在每个提取元素的选项中说明。
点击完成结束向导配置后,XML 数据库工具(或用于头部的数据头部数据库工具)将自动添加到生成的消息响应器中。
这些工具已经配置为执行向导中指定的提取内容(${} 符号将用于访问参数化的值)。例如,请注意以下消息响应器如何设置为使用从消息请求中提取并保存到 titleKeyword 列中的值:
如果想修改提取内容,请打开工具的配置面板,然后按照 XML 数据库和Header 数据库中的描述自定义可用设置。
部署虚拟资产
如果在虚拟资产文件夹中创建 .pva,则在向导完成时,虚拟资产将自动部署到本地 Virtualize 服务器。否则,您可以随时将其部署到本地或远程服务器。
有关部署过程和选项的详情说明,请参阅部署虚拟资产。
自定义虚拟资产
有关如何自定义消息响应器行为的详情,请参阅消息响应器概要。