本主题解释了在 SOAtest 和 Virtualize 中如何使用功能 Parasoft 变更指导助手。它描述了如何更新测试或服务虚拟化资产发送的请求或响应消息。
本章包含:
变更指导助手自动识别现有资产和/或服务虚拟化资产发送的消息是如何受到服务变更影响的(如,重命名操作、添加元素或类型、修改命名空间等等)。它还基于一个更新现有测试或响应程序套件或新建的变更模板自动重构受影响的工具(单独地或者是批量)。通过检查和精炼自动定义的映射创建变更模板,该映射阐述了原始定义中的元素、操作、资源和模式是如何与当前定义中的元素、操作、资源和模式关联的。这确保您的资产得到尽可能快速、准确和智能的更新。
变更指导助手取决于一个名为 EMF Compare 的 Eclipse 插件。 该插件将在完整的 SOAtest 安装中安装,但不是在从更新站点或插件安装程序安装 SOAtest 时安装。 可以使用 Eclipse 更新站点机制安装 EMF Compare 插件;该更新站点位于 http://download.eclipse.org/modeling/emf/compare/updates/releases/2.0 |
如果您怀疑某个服务已经更改,典型的工作流是:
根据具体情况(解决变更影响分析报告的特定变更影响)或批量重构(快速跨项目、套件等更新所有受影响的工具)应用该变更模板,以更新现有套件或创建新的套件。
SOAtest 可以在服务发生意外更改时立即捕捉到这些更改:
运行变更影响分析时,变更指导助手报告资产的消息是如何受到相关定义文件中(比如,WSDL, schema, WADL, OpenAPI/Swagger, RAML)变更的影响的。该分析可以:
将资产消息与当前配置它们的服务定义进行比较。
将资产的消息与不同的服务定义进行比较。
此分析结果有助于评估更新资产消息所需更改的范围和性质。
确定应该更新什么之后,可以应用变更模板自动重构消息,以适应修改的服务定义。该模板可以通过以下几种方式应用:
变更模板可以从服务目录中自动生成,该服务目录在变更影响分析过程中填充。
一旦创建了变更模板,我们建议查看并微调自动定义的映射,该映射阐述了原始定义中的元素、操作、资源和模式是如何与当前定义中的元素、操作、资源和模式关联的。
在图表变更模板编辑器中审查和更新自动定义的映射:
一旦生成了变更模板,则可以应用于一个案例一个案例的基础上(解决变更影响分析报告的特定变更影响),以及批量重构(以快速更新跨项目、跨套件等的所有受影响的工具)。
可以将变更指导助手应用于 SOAtest中的消息传递工具(SOAP 客户机、REST 客户机、EDI 客户机、固定长度客户机、消息桩函数)。也可以应用于 Virtualize 中的消息响应程序。如果设置工具让其受 WSDL 或 Schema 约束,或如果服务定义指定了 RAML, WADL (SOAtest), 或 OpenAPI/Swagger,则变更指导助手对通过表单输入指定的消息进行操作。如果服务定义指定了 RAML, WADL (SOAtest), 或 OpenAPI/Swagger,则它会对通过表单 JSON 指定的消息进行操作。 如果工具消息是使用不支持的格式指定的,则分析和重构期间将跳过它。若要使用这些格式对这些工具中其他非消息字段的值或 Change Advisor 不支持的工具中的值,请使用 Parasoft 搜索替换工具。请查阅
以下章节:
变更指导助手透视图专门设计来识别和处理变更影响。
若要打开 Change Advisor 透视图:
该透视图提供了:
工具栏按钮:添加了三个按钮:Run (用来重新运行变更影响分析以检查资产是否被正确重构) Perform Change Impact Analysis (如下所述),以及 Refactor Using a Change Template (如下所述)。
变更影响分析比较了最初用于构造工具消息的服务定义和这两种定义。
变更影响分析将只报告与正在分析的工具相关联的变更。例如,如果服务不再包含工具从未使用的可选元素,则将不会报告变更影响。
在 SOAtest 中运行变更影响分析的典型用例包括:
若要从变更指导助手中运行变更影响分析:
例如,假定您选择了一个套件,其中包含基于 3 个不同服务定义的资产。分析的 Scan the selected assets against their current service description 选项将对所有这些资产与及其相关服务定义进行比较。如果选择 Scan the selected assets against a specified service description,并且指定了这些资产其中 1 个使用的 3 个服务定义的现有版本和更新版本,则分析将只被应用于使用该特定服务说明的资产。基于另外 2 个定义的资产将不会被分析。
分析运行时,分析进展将报告在进展视图和控制台视图中。注意,如果资产报告为“跳过”,说明它没有以受支持的格式(比如,表单输入)指定消息。
分析的结果将报告在质量任务视图中。提供了一个变更影响布局,以帮助您审查变更影响。如果质量视图早就没有使用这个布局了,则可以在结果视图中单击 Change Impact Layout 工具栏按钮。
也可以从视图的下拉菜单中打开该布局。
结果根据服务、套件/位置和更改类型进行组织:
若要打开需要更新消息的工具:
若要查看工具在项目中的位置:
变更模板是根据 Defining a Change Template所描述创建的。应用变更模板有两种方法:
若要应用变更模板:
在向导的第二页,指明要将更新的资产保存在何处。默认将其保存在新位置,以便创建一组新的测试或响应程序,而不是重写原始测试。
重构将更新更改模板中定义的消息。用于删除操作的工具将被禁用,但不会被删除。
变更模板指定如何将元素、操作、资源和模式(XML 或 JSON)从一个服务版本映射到另一个服务版本中。一旦定义了变更模板,便可将其用于更新受服务变更影响的资产:可以纠正变更影响分析后报告的特定变更影响,也可以对选定的工具、套件或项目执行批量更新。例如,如果将 FundPrepaid 在变更模板中映射到 FundPrepaidRequest ,那么应用该模板将在所选定工具的消息中将 FundPrepaid 更新到 FundPrepaidRequest 中。
变更模板在 Parasoft Change Advisor 透析图中创建、审查和修改。
若要创建变更模板:
若要重命名服务或版本,右键单击其 Service Catalog 节点,然后选择合适的 Rename 命令。将在使用变更模板进行重构(Refactor Using a Change Template)向导中使用此处指定的名称。
注意,如果同时安装了 SOAtest 和 Virtualize, Operations 节点将分为两个节点: • Client View: 适用于 SOAtest 消息传递客户端(涵盖了请求参数) • Responder View: 适用于 Virtualize 消息响应程序(涵盖了响应参数) |
然后将创建一个更改模板并在变更模板编辑器中打开。
根据 Parasoft 的试探法,变更模板自动将元素、操作、资源和其模式从原始服务定义中映射到新的服务定义中。
元素、操作、资源映射在 Map Elements/Operations/Resources 选项卡中。
每个元素的模式被映射在 Map Schemas 选项卡中。
审查映射时,可以使用编辑器顶部的可用筛选器以专注于高度匹配,需要审查的匹配或不匹配的项目。
审查和修改变更模板时,可以执行以下操作:
为实现这一目标... | 这样做... |
---|---|
指定两个未映射项相互关联。 | 选中这两个项,然后点击 Connect。 |
指定两个映射项不相互关联。 | 选中这两个项,然后点击 Disconnect。 |
指定不匹配项的默认值。 | 右键单击该项,选择 Configure Default Value for Added [item_name],然后在打开的对话框汇总指定合适的值。 |
指明已经检查了“需要审查的匹配”(将黄色映射转换为绿色映射)。 | 右键单击映射的任何区域,然后选择 Mark Match [mapping] as Reviewed ,或者选择 Mark Match [mapping] and Child Matches as Reviewed。 |
指明已经检查了不匹配的项。 | 右键单击该元素,然后选择 Mark [item_name] as Reviewed ,或者选择 Mark [item_name] and Children as Reviewed。 |
映射元素、操作、资源和模式时,可以参考属性视图了解要映射的项的更多详细信息。例如:
以下图标用于标记变更模板编辑器中的 XML 项目。
图标 | 说明 |
---|---|
所有 | |
任何类型 | |
属性 | |
选择 | |
复杂类型 | |
元素 | |
枚举 | |
操作 | |
顺序 | |
简单类型 |
以下图标用于标记变更模板编辑器中的 JSON 项目。
图标 | 说明 |
---|---|
任何类型 | |
数组 | |
数组项目 | |
布尔类型 | |
枚举类型 | |
枚举值 | |
整数/数字类型 | |
项目容器 | |
Null | |
对象 | |
对象属性 | |
OneOf | |
属性容器 | |
字符串类型 |
如果团队希望共享变更模板,可以共享包含该模板的项目,也可以将模板从一个工作空间复制到另一个工作空间。
有关使用变更指导助手的教程,请查阅 随着服务的变化更新测试。