Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents
maxLevel1

Info

本主题解释用于从流量中创建虚拟资产的高级界面。该界面可在 本主题解释用于从通讯报文中创建虚拟资产的高级界面。该界面可在 CTP 连接到 9.10 或更高版本的 Virtualize 时使用。有关使用 Virtualize 9.9.x 从流量中创建虚拟资产的更多详情,请查阅 从通讯报文中创建虚拟资产的更多详情,请查阅 创建虚拟资产 1

概要

CTP 的 "create from traffic” 功能允许从记录的 HTTP/S、JMS 或 MQ 流量中快速创建参数化的虚拟资产,这减少了定义复杂响应所需的时间和精力。它还促进了数据的编辑和扩展,因此在一个环境中捕获的数据(例如,功能测试)可以很容易地在其他环境中重用(例如,性能测试、开发、安全测试等通讯报文中快速创建参数化的虚拟资产,这减少了定义复杂响应所需的时间和精力。它还促进了数据的编辑和扩展,因此在一个环境中捕获的数据(例如,功能测试)可以很容易地在其他环境中重用(例如,性能测试、开发、安全测试等)。

每次通过向导时,CTP 都会创建一个虚拟资产(.pva)文件,其中包含消息响应器,该响应器使用在 Parasoft 数据存储库服务器上创建的存储库中的值自动参数化。然后,可以独立于虚拟资产操作数据值。 

CTP 的 create from traffic 功能目的在于处理 JSON 或 XML 格式消息。若要使用其他报文格式(比如,EDI、纯文本等)从流量文件中创建虚拟资产,则使用 格式消息。若要使用其他报文格式(比如,EDI、纯文本等)从通讯报文文件中创建虚拟资产,则使用 Virtualize 桌面上的 "Generate Parameterized Messages” 向导。

前提条件

从流量中创建虚拟资产需要:从通讯报文中创建虚拟资产需要:

  • 9.10 或更高版本的 Virtualize 连接到 CTP(有关更多详情,请查阅 将 Virtualize 服务器和/或 SOAtest 服务器与 CTP 集成 )。
  • 一个受支持的流量文件,存储在要创建虚拟资产的 一个受支持的通讯报文文件,存储在要创建虚拟资产的 Virtualize 服务器上的 recorded_traffic 文件夹下。可接受格式包括:
    • 日志是由 Virtualize 消息代理或录制代理产生的(有关更多详情,请查阅 配置消息代理 )。
    • 使用网络嗅探工具在网络级别捕获的消息跟踪或日志。
    • 通过让应用程序记录其流量获得的 通过让应用程序记录其通讯报文获得的 HTTP 日志。
  • Parasoft 数据资源库服务器运行并连接到 CTP(请查阅 测试数据助手设置 以获得更多详情)。
Info
title注意
  • 消息内容必须是格式良好的(比如,如果是 XML,则它必须是格式良好的);否则,自动从流量中创建消息响应程序可能失败。SOAP XML,则它必须是格式良好的);否则,自动从通讯报文中创建消息响应程序可能失败。SOAP 消息必须只有一个顶级 XML 元素。 

  • 不支持混合类型 JSON 数组的参数化。如果 JSON 数组不是混合类型,那么 CTP 将假设数组中的所有元素都与第一个元素的类型相同。


创建虚拟资产 

若要从流量中创建虚拟资产,请完成以下内容:若要从通讯报文中创建虚拟资产,请完成以下内容:

  1. 在左窗格中,选择要添加新虚拟资产的服务器或文件夹。
  2. 从页面级操作菜单选择 Create Virtual Asset 。
  3. (可选)修改新建虚拟资产的名称。
  4. 设置为 Create From Traffic
  5. 如果要应用模板文件(存储在 Virtualize 服务器的 traffic_templates 文件夹)中保存的设置,则选择 Apply a template file,然后选择要应用的模板文件。  如果应用模板,则将从设置中预先填充后续向导页面中的设置。可以根据需求在不影响模板的情况下修改设置。还可以在新模板中捕获修改后的设置。  

  6. Repository server下,选择要存储相关数据的数据资源库服务器。
  7. Repository name下,选择或输入要存储相关数据的资源库的名称,然后单击 Next

  8. 在下一向导页面,检查推荐的分组策略,如果需要调整它,然后单击 Next。有关可用分组策略的详细信息,请查阅 了解分组策略。这里是一个快速概述的选项:
    • HTTP 方法:确定是否处理该消息。  
    • URL 路径:确定是否处理该消息。 
    • URL 参数:确定是否处理该消息。 
    • 请求体:Xpath 被用于确定是否处理该消息。

  9. 在下面的向导页面中,检查消息分组的结果。
    • 处理的请求/响应对的总数以及无效对的数量显示在顶部。
    • 显示的列类型取决于应用的分组策略。 
    • 每个表行表示定义组的标准。将为每个表行生成一个组。将为每个组生成一个响应程序。 

  10. 如果希望修改自动配置的请求关联和/或指定关联的 WSDL/模式,请展开相关的表行,然后配置关联和/或 WSDL/模式。查阅 Customizing Data Source Correlations 以获得关于如何配置关联的更多详情。


    Info
    title为什么指定 WSDL/模式?

    指定 WSDL 或模式可以确保数据定义是根据 WSDL/模式定制的,而不是根据流量推断的。此外,当您 模式定制的,而不是根据通讯报文推断的。此外,当您 Virtualize 桌面中使用这个虚拟资产时,还可以获得更丰富的编辑功能和变更顾问功能。

  11. 如果要保存在此向导中使用的设置,请选中 Export a reusable template 并指明所需的文件名。默认情况下,流量将被记录在当前服务器的 并指明所需的文件名。默认情况下,通讯报文将被记录在当前服务器的 recorded_traffic 文件夹中名为 %n_%d_%t.traffictemplate 的文件中(如果不存在,将创建它)。指定文件名称时,可以使用类似 %d (当前日期) %t (当前时间), %n (代理名称)和 %u (独特的基于时间的 id)的变量。  

  12. 单击 Create Asset

...

  • 带有参数化元素以及预先配置的响应器关联和数据源关联的消息响应器。
  • (对于新数据存储库)具有适用数据集和记录类型的新数据存储库。每个通过分析流量确定的消息“组”将添加一个数据集。(对于新数据存储库)具有适用数据集和记录类型的新数据存储库。每个通过分析通讯报文确定的消息“组”将添加一个数据集。
  • (对于现有数据存储库)将向现有存储库添加新的数据集和记录类型。
  • 将为每个添加的数据集添加存储库数据源,并将消息响应器配置为使用该数据源。

Scroll pdf ignore
视频教程:从记录的流量创建虚拟资产

视频教程:从记录的通讯报文创建虚拟资产

在本教程中,学习如何从记录的流量创建虚拟资产。在本教程中,学习如何从记录的通讯报文创建虚拟资产。

Vimeo
Height500
Width800
URLhttps://player.vimeo.com/video/281498019

Anchor
grouping
grouping
了解分组策略

当从流量创建虚拟资产时,关联的 当从通讯报文创建虚拟资产时,关联的 Virtualize 服务器组按操作、按类型分组请求响应对。分组方法受 a) Virtualize 对给定流量的分析 对给定通讯报文的分析 b) 选择应用的分组标准的影响。自动选择推荐的分组策略;这些建议可以根据需要进行调整和覆盖。 

Virtualize 采用分两个阶段分析流量的方法:首先,它建议应该启用哪些分组策略,然后使用所选的策略将消息划分为组。当创建 采用分两个阶段分析通讯报文的方法:首先,它建议应该启用哪些分组策略,然后使用所选的策略将消息划分为组。当创建 PVA 时,为每个组生成一个响应器。

根据以下启发选择推荐的分组策略:

  • 在以下情况下,选择基于请求体的分组:
    • SOAP 流量通讯报文
    • 非 XML 报文格式
    • 非 HTTP 流量通讯报文
  • 在其他情况下,会选择基于 HTTP 方法和 URL 路径的分组。除非 HTTP 方法仅在所提供流量中的方法发生变化时才会选择。方法仅在所提供通讯报文中的方法发生变化时才会选择。

分组时,Virtualize 会:

  • 偏爱特定的,而不是一般的。Virtualize 生成尽可能特定的表达式,仅匹配该组中的所有消息(不匹配其他组中的消息)。这确保生成的响应程序正确地关联到相同的流量。生成尽可能特定的表达式,仅匹配该组中的所有消息(不匹配其他组中的消息)。这确保生成的响应程序正确地关联到相同的通讯报文。
  • 遵循分组顺序(HTTP 方法、URL 路径、URL参数,然后是请求主体内容)。例如,如果 URL 路径足以区分组,Virtualize 就不会为这些分组标准的每个步骤创建请求体关联,等等。

...

根据 HTTP 方法(POST、GET、PUT 等)拆分生成的消息响应器。启用此策略后,每个唯一的 HTTP 方法都会生成一个消息响应器。

例如,如果流量包含 例如,如果通讯报文包含 10 条 POST 消息和 15 条 GET 消息(无论顺序如何),Virtualize 将在生成的 PVA 中创建 2 个响应器:一个用于 POST 消息,一个用于 GET 消息(假设在组中进一步的分裂中没有触发其他分组策略)。

...

当基于此策略首次生成组时,将分析路径,以生成一组最能描述消息类型的路径表达式。 这种描述使用了一种内在主观的路径分析算法。它的目的是考虑 REST 服务中最常见的模式,但是可能需要调整生成的路径标准以获得最佳结果。

例如,如果流量包含以下 例如,如果通讯报文包含以下 HTTP URL 路径(为了简洁起见,省略了 HTTP 方法、URL 参数和其他因素)

...

根据 HTTP URL 参数的存在拆分生成的消息响应程序。每组一个或多个 URL 参数都会生成一个消息响应器。

例如,如果流量包含以下 例如,如果通讯报文包含以下 URL 参数

?oid=1&category=women
?oid=2&category=women
?oid=1&category=babies
?ssn=1234567890&state=CA&category=silver
?ssn=1234567891&state=CA&category=gold

...

Info
title例如

以下对介于传入消息中的 loanAmount 值和 ApprovalLists 数据源中的 Amount 列之间进行关联配置:

对于每个传入请求,loanAmount 将匹配到 Amount 列中的一行。然后,将使用来自同一行的其他列的值对响应进行参数化。


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

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


Info
title禁用数据源关联

如果希望处理消息中的所有内容,请选中 禁用数据源关联 选项禁用数据源关联。

...

    • 可以使用 XPath 构建器配置请求体关联,如 指定 XPath中所述,也可以在表中输入值
    • URL 参数和 URL 路径关联可以通过向适用的表添加行来配置。
    • 在配置相关性时,请注意,您可以输入数据源列的名称,或者从与此工具关联的数据源中可用列的列表中进行选择(在配置区域顶部的数据源列中进行选择)。在配置相关性时,请注意,你可以输入数据源列的名称,或者从与此工具关联的数据源中可用列的列表中进行选择(在配置区域顶部的数据源列中进行选择)。

Anchor
requestbody
requestbody
请求体关联性

...

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

...

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

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

/customer/123/account/1920384
/customer/203/account/4922434
/customer/302/account/7349463

...