前提条件 

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

使用向导

  1. 在可用的创建向导中选择 Traffic> Generate Parameterized Messages 选项。有关更多详情,请查阅以下章节:Adding a New .tst File to an Existing ProjectAdding a New Test Suite

    添加项目、虚拟资产和响应程序套件

  2. 完成通讯报文向导的第一页:
    1. 指定通讯报文文件的位置。
    2. 如果需要,更改字符编码
    3. 如果希望使用之前模板中保存的分组设置填充向导,则输入该模板所处的位置。查阅 使用配置模板重用和共享向导设置 以获得关于在 SOAtest 中创建和使用模板的更多详情 使用配置模板重用和共享向导设置 ,和关于在 Virtualize 中创建和使用模板的更多详情。

    4. 单击 Next

  3. 在 Parasoft 数据资源库设置页面中,指定要使用哪个数据资源库来存储数据,以参数化测试客户端或消息响应程序,然后单击 Next 



  4. 完成消息格式和分组策略页面,然后单击 Next


    1. 验证 Request message format 和 Response message format 是否设置为正确的格式。如果没有,则为其选择合适的格式。

      SOAtest Virtualize 尝试根据通讯报文文件中的第一条消息来识别请求和响应的消息格式。一个通讯报文文件中的所有请求都应该具有一种格式,同一个文件中的所有响应都应该具有一种格式。请求格式可能与响应格式不同。如果未检测到消息格式,则将选择纯文本。

    2. 如果希望配置可用于所选格式(如,适用于 EDI 或自定义格式)的任何转换选项,请单击该格式右侧的 Conversion Options 按钮,并进行所需更改。 



    3. 指定所需的消息分组选项(有关更多详情,请查阅以下框),然后单击 Next

      可用选项包括:

      Based on operation/type基于操作或消息类型的分组消息。对于包含可以通过操作或格式的消息类型(如,SOAP 主体下的元素名,纯 XML 消息中的根元素名或指定消息格式的消息类型)明确标识的消息的服务通讯报文,这一点很有用。将为通讯报文文件内发现的每个操作/类型生成一个响应程序。如果选择该选项,Virtualize 将推荐应用分组启发式, 它是根据其对通讯报文文件的分析来建议的。可以更改预先选定的启发式。若要了解启发式的更多信息,请查阅 了解按操作类型分组的启发式Based on similar requests基于请求消息结构的分组信息。这告诉 Virtualize 去分析请求消息结构和将请求/响应分组到响应程序,以便每个响应程序包含与具有类似结构的请求相关联的响应。当消息具有相同的 DOM 树模型时,它们被认为是“相似的”,即使存在不同的值。该选项用于优化并简化规则,以将请求关联到每个消息响应程序内的响应。

      Based on similar responses基于响应消息结构的分组消息。这告诉 Virtualize 去分析响应消息结构和将请求/响应对分组到响应程序,以便每个响应程序包含与具有类似结构的响应。当消息具有相同的 DOM 树模型时,它们被认为是“相似的”,即使存在不同的值。

      None:没有分组。将为通讯报文文件中的每个响应消息生成一个响应程序。如果希望每个消息响应程序中都有一个请求/响应对,请使用该选项。

  5. 在消息分组审查页面,检查有关找到的操作和消息的信息。 

    展示的列类型取决于应用到分组策略。 

    每个表行表示定义一个组的标准。将为每个表行生成一个组。将会每个组生成一个响应程序。 

    相关标准将按它们在表中出现的顺序(从上至下)进行处理。 URL 路径和参数将根据记录类型中的字段进行参数化。字段将拥有一个自动生成的名称,并将在数据重用(Data Reuse,在向导后)页面可见。有关如何创建这些分组的更多详情,请查阅 了解按操作类型分组的启发式

  6. 使用可用控件对分组标准进行添加、更改、重新排序和删除操作。 查阅 自定义分组标准 以获得关于在 SOAtest 中配置分组标准的更多详情。查阅 自定义分组标准 以获得关于在 Virtualize 中配置分组标准的更多详情。如果更改该标准,请确保执行单击  Regroup 。

  7. 如果选择了所有 Autoconfig 框,并且您希望 Virtualzie 自动为指定的分组配置消息响应程序, 则可以跳过以下步骤

    如果希望指定任何以下任务,则禁用要自定义的每个消息组的 Autoconfig ,单击 Next,然后配置请求映射,如 定制请求匹配和关联中所述:

    自定义应使用哪些参数值来确定虚拟资产的响应消息。 

    更改自动请求/响应对匹配 

    指定 WSDL 或 Schema

    当消息组中存在多个请求(它们的路径、参数,或者主题是不同的)时,通常可使用自动配置。如果 Autoconfig 框是灰色的,意味着自动配置不适用于该分组;关于为什么无法自动配置特定组的更多详情,请查阅该项的工具提示。



    关于面板顶部列出的任何项(处理对、未处理对、不匹配组的消息,等等)的更多详情,请单击其相关链接。



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



    如果要指定 WSDL/schema,则启用 Configure WSDL/Schema,然后在下一页面中指定合适的值。



    指定 WSDL 或 schema 的优点包括:

    生成的表单输入模型将基于该 WSDL/Schema,在您编辑和维护结果表单输入时,该模式提供了丰富的类型。

    变更指导助手(如 变更管理中所述)帮助让您的资产与不断发展的服务和不断变化的环境条件保持同步。

    如果注意到生成的表单输入和其数据参数化与原始信息不匹配,则这表示,该消息并不完全匹配 WSDL/Schema 或者映射到原始消息失败。如果遇到这样的问题,应该省略 WSDL/Schema 以确保生成的表格输入模式完全匹配通讯报文消息。

  8. 在数据重用页面中,配置希望导入的通讯报文如何重用或影响现有数据。
  9. 在导出模板页面,指定模板导出设置(如果需要),然后单击 Next。 

    (仅限 MQ 和 JMS)在下一个 SOAtest 向导页中指定连接设置。这些设置将应用到创建此通讯报文的工具。有关更多详情,请查阅 Configuring MQ Options  Configuring JMS Options

  10. 单击 完成

将创建和配置以下项:

例如,下面是一个使用数据资源库参数化的 REST 客户机示例:



下面是相应资源库的一部分:

现在可以使用广泛而多样的测试值范围运行这个参数化的、数据驱动的 REST 客户端,无需要求对工具本身进行任何的更改。相比编辑工具,您可以更改或扩展相关联的数据资源库值。

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

有关如何编辑和扩展数据资源库中存储的数据的更多详情,请查阅 查看和修改资源库结构和内容

注意,通讯报文文件中出现的自定义传输数据头和任何 SOAP Headers(例如,WS-Security Headers)都不会自动配置到生成的资产或数据资源库数据集中。可以在生成的消息响应程序中指定它们。

 (有关更多详情,请查阅 消息响应程序概要 )

部署虚拟资产

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

有关部署过程和选项的更多详细讨论,请查阅 部署虚拟资产 - 概要

自定义虚拟资产

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

 了解 Chioce/Extension 类型支持

如果在向导最后都没有输入一个 WSDL 或 schema 文件,则 Virtualize 将使用记录通讯报文的数据结构来创建数据资源库。当一个元素的数据结构在记录的通讯报文中发生了改变时,则该元素的类型很可能是底层模式中的一个选择。然而,向导不会明确支持 chioce 类型;它将元素的数据结构解释为所有可能的子元素的序列。

例如,假定一个元素的实际模式是这样的:


<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 向导:高级主题

以下主题提供了额外的细节,它将帮助您完成向导:

完成 SOAtest 向导:高级主题

以下主题提供了额外的细节,它将帮助您完成向导:

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

在该视频中,您将了解如何从消息代理记录的通讯报文中创建虚拟资产。