本主题概述了如何从六里那个日志中捕获的通讯报文中创建参数化的消息响应程序。本章包含:

前提条件

  • 您的团队必须安装并运行数据存储库服务器。有关详细信息,请查阅 安装远程数据库服务器
  • 消息内容必须格式正确。SOAP 消息响应程序必须只有一个顶级 XML 元素。
  • 数据存储库不支持具有混合类型的 JSON 数组的参数化。如果 JSON 数组不是混合类型,那么 CTP 将假设数组中的所有元素都与第一个元素的类型相同。

监视控制台视图

当从通讯报文中创建测试和/或消息响应器时,保持控制台视图可见是很有帮助的。此视图将显示在处理通讯报文文件时生成的任何警告、错误和信息消息。

使用向导

  1. 在可用的创建向导中选择 Traffic> Generate Parameterized Messages 选项。有关添加响应程序的基本信息,请参阅 添加项目、虚拟资产和响应程序套件 。  

  2. 在通讯报文向导中指定以下信息:
    1. 指定通讯报文文件的位置。
    2. 如果需要,请更改字符编码。
    3. 如果要用保存在模板中的前一组设置填充向导,请输入该模板的位置。查阅 使用配置模板重用和共享向导设置 以获得 Virutalize 中创建和使用模板的更多详情。

  3. 单击 Next 并在 Parasoft 数据存储库设置屏幕中指定用于存储数据的数据存储库:
    • 在 Server 字段中,指定要连接到远程服务器还是嵌入式服务器。如果选择远程服务器, PortUserPassword 字段将自动被填充,并且可根据需要进行调整。
    • 如果选择嵌入式服务器, PortUserPassword 字段将变灰。 

    • Repository name 字段中,选择或输入要使用的资源库的名称。如果输入新存储库的名称,将创建该存储库。
    • 定义存储库连接时,可以通过单击 Validate检查连接。 

  4. 单击 Next 并在消息格式 和分组策略 屏幕中配置设置。

    1. 验证 Request message format 和 Response message format 是否设置为正确的格式。Virtualize 将尝试根据通讯报文文件中的第一条消息来标识请求和响应的消息格式。单个通讯报文文件中的所有请求都应具有一种格式,而同一文件中的所有响应都应具有一种格式。请求格式可能不同于响应格式。如果未检测到消息格式,则将选择纯文本。

    2. 转换选项可用于某些格式,如 EDI 或自定义格式。单击 Conversion Options 按钮并进行所需的更改。 

    3. 选择消息分组选项。有关更多详情,请查阅 Message Grouping Options 。

  5. 单击 Next 并在消息分组审阅屏幕中审阅有关操作和邮件的信息。有关更多详情,请查阅 Message Grouping Review Screen 。
  6. 单击 Next如果为每个组启用了 Autoconfig 选项,则将打开数据重用屏幕,您可以跳过下一步。
  7. 如果在前一个屏幕中禁用了 Autoconfig 选项,则需要在请求匹配屏幕中手动配置请求匹配选项。请查阅 Configuring Request Mapping Options。 
  8. 在数据重用屏幕中配置导入的通信量应如何重用或它应如何影响现有数据。有关更多详情,请查阅 Configuring Data Reuse Options 。  
  9. 单击 Next 并在最终选项屏幕中指定任何其他配置:
    • 启用有效负载部分中的 Form 或 Literal 选项,将向导配置为以 Form 或 Literal 模式创建消息。有关更多详情,请查阅 表单输入 或 文字 。   
    • 可启用 Export configuration data into a reusable template 选项,并指定文件名和位置以将在此向导中使用的设置保存为模板。关于创建和使用模板的更多详情,请查阅 使用配置模板重用和共享向导设置 。

  10. 单击 Finish

Results

将添加带有参数化元素以及预先配置的响应器关联和数据源关联的消息响应器。除非消息是 XML 或 JSON 太大,以致性能受到影响,否则这些工具将默认表单输入/表单 JSON 视图。在这些情况下将使用文字输入模式。

(对于新数据存储库)将添加具有适用数据集和录制类型的新数据存储库。每个通过分析通讯报文确定的消息组将添加一个数据集。

(对于现有数据存储库)将向现有存储库添加新的数据集和记录类型。

将为每个添加的数据集添加存储库数据源,并将每个测试客户端和消息响应程序配置为使用相关的数据源。

如果在虚拟资产文件夹中创建 .pva,则在向导完成时,虚拟资产将自动部署到本地 Virtualize 服务器。否则,可以手动将其部署到本地或远程服务器。

有关如何编辑和扩展存储在数据存储库中的数据的详细信息,请参阅 查看和修改资源库结构和内容

请注意,通讯报文文件中存在的自定义传输头和任何 SOAP 头(例如,WS-Security 头)不会自动配置到生成的资产或数据存储库数据集中。您可以在生成的消息响应程序中指定它们(有关详细信息,请参阅 消息响应程序概要 )。

消息分组选项

您可以在消息格式和分组策略屏幕中使用以下消息分组选项:

  • Based on operation/type: 根据操作或消息类型对消息进行分组。这对于包含可以通过操作或格式的消息类型(即,SOAP 主体下元素的名称、纯 XML 消息中根元素的名称或指定消息格式的消息类型)。为在通讯报文文件中发现的每个操作/类型生成一个响应器。如果选择此选项,Virtualize 将根据其对通讯报文文件的分析, 建议应用分组探索式。您可以更改预先选择的探索式。有关探索的更多信息,请参见 了解按操作类型分组的启发式

  • Based on similar requests: 根据请求消息结构对消息进行分组。这告诉 Virtualize 分析请求消息结构并将请求/响应分组到响应程序中,以便每个响应程序将包含与具有类似结构的请求相关的响应。当消息具有相同的 DOM 树模型时,即使它们具有不同的值,也会被认为是“相似的”。此选项用于优化和简化将请求与每个消息响应器中的响应关联的规则。
  • Based on similar responses: 根据响应消息结构对消息进行分组。这告诉 Virtualize 分析响应消息结构并将请求/响应对分组到响应程序中,以便每个响应程序将包含具有类似结构的响应。当消息具有相同的 DOM 树模型时,即使它们具有不同的值,也会被认为是“相似的”。

  • None:没有分组。为通讯报文文件中的每个响应消息生成一个响应器。如果希望每个请求/响应对位于单独的消息响应器中,请使用此选项。

消息分组审阅屏幕

消息分组审阅屏幕中的列基于应用的分组策略。每个表行表示定义组的标准。将为每个表行生成一个组。将为每个组生成一个响应程序。有关使用此屏幕的完整信息,请参阅 自定义分组标准 部分。 

相关条件将按它们在表中的显示顺序(从上到下)进行处理。有关如何创建这些分组的详细信息,请查阅 了解按操作类型分组的启发式

您可以 使用控件添加、修改、重新排序和删除分组条件。如果更改条件,请确保在继续之前单击 Regroup 。

这个 Autoconfig 选项允许 Virtualize 为指定组自动配置消息响应程序。禁用 Autoconfig 选项为每个消息组手动配置消息响应程序(请参阅 Configuring Request Mapping Options)。

当消息组中有多个请求且路径、参数或正文存在差异时,自动配置通常可用。如果 Autoconfig 框灰显,则表示此组不可用“自动配置”;有关无法自动配置特定组的原因的详细信息,请参阅该项的工具提示。

有关面板顶部列出的任何项(已处理对、未处理对、与组不匹配的消息等)的详细信息,请单击关联的超链接。

若要查看与特定响应程序关联的消息,和/或要更改响应程序和数据集名称,请单击 Count 列中的相关行。

配置请求映射选项

请求匹配屏幕允许 您重新映射请求/响应对,自定义用于确定虚拟资产的响应消息的参数值,并指定与此消息关联的 WSDL 或模式。有关在“请求匹配”屏幕中配置选项的完整详细信息,请参阅 定制请求匹配和关联 章节。

配置数据重用选项

定义的录制标识用于确定哪些数据是新的,哪些新录制与现有录制匹配。如果尚未为此数据集指定标识,则可以在数据树中添加/修改标识。树用绿色箭头图标指示标识字段。现有的数据集用注释标注。  配置数据重用和更新 章将讨论有关配置重用的完整详细信息。 

您可以控制通讯报文文件的数据将如何扩展和/或更新现有资源库数据集。 

还可以控制匹配的数据(匹配现有的录制类型,由标识定义)是否重新使用现有的录制类型或更新现有的录制。

  • 这个 Reuse 选项允许您重用/共享匹配的现有录制。这个 Update 选项允许您使用来自通讯报文的数据更新现有录制相对应的字段,并为新的录制类型添加新纪录。

  • Replace: 删除现有数据,然后添加新数据。

  • Merge: 在无需修改现有数据的情况下,导入新数据:

  • Update: 使用新数据更新匹配的录制,并根据需求创建新纪录。

  • Overwrite: 使用功能新数据更新匹配的录制(和匹配键),不创建任何额外的录制。

Infer constraints from 选项允许 Virtualize 确定存储库中存储的数据的特征。可以根据数据或服务定义推断约束。

部署虚拟资产

如果在虚拟资产文件夹中创建 .pva,则在向导完成时,虚拟资产将自动部署到本地虚拟化服务器。否则,您可以随时将其部署到本地或远程服务器。有关部署过程和选项的更多详情说明,请查阅 部署虚拟资产 - 概要

自定义虚拟资产

关于如何自定义消息响应程序行为的更多详情,请查阅 消息响应程序概要

了解选择/扩展类型支持

如果在向导的末尾没有输入 WSDL 或模式文件,Virtualize 将使用录制的通讯报文的数据结构来创建数据存储库。当一个元素的数据结构在录制的通讯报文中发生变化时,该元素的类型很可能是基础架构中的一个选项。但是,向导不显式地支持选择类型;它将元素的数据结构解释为所有可能的子元素的序列。例如,假设一个元素的实际架构如下:

<element name="parent">
    <complexType>
        <choice minOccurs="0" maxOccurs="unbounded">
            <element name="child1"/> 
            <element name="child2"/> 
            <element name="child3"/>
        </choice>
    </complexType> 
</element>

Virtualize 将使用以下数据结构表示元素:

<element name="parent">
    <complexType>
        <sequence>
            <element name="child1" minOccurs="0" maxOccurs="unbounded"/> 
            <element name="child2" minOccurs="0" maxOccurs="unbounded"/> 
            <element name="child3" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
    </complexType> 
</element>

尽管所录制的通讯报文可能具有以不同顺序出现的子元素(例如,响应消息中的一个“parent”有一个“child1”,然后再是“child2”,而另一个响应消息中的“parent”有一个“child2”,然后才是“child1”),Virtualize 将以固定顺序参数化消息数据。因此,在本例中,元素“child1”和“child2”在响应消息中的顺序始终相同。

完成 Virtualize 向导:高级话题

以下主题提供了帮助您完成向导的其他详细信息:

视频教程:从使用消息代理录制的通讯报文中创建虚拟资产

在本视频中,您将学习如何从一个使用消息代理录制的通讯报文创建一个虚拟资产。

  • No labels