本主题解释如何在 SOAtest 和 Virtualize 中使用 Parasoft 变更指导助手。它描述了如何更新测试或服务虚拟化资产发送的请求或响应消息。
本章包含:
关于变更指导助手
变更指导助手可以自动识别服务变更(例如,重命名的操作、添加的元素或类型、变更空间名称等)如何影响现有测试或服务虚拟化资产发送的消息。它还基于一个更新现有测试或响应程序套件或新建的变更模板自动重构受影响的工具(单独地或者是批量)。查看和完善自动定义的映射来创建变更模板,这些映射解释了原始定义中的元素、操作、资源和模式与当前定义中的元素、操作、资源和模式之间的关系。这确保您的资产得到尽可能快速、准确和智能的更新。
Workflow
如果您怀疑服务已变更,则通常的工作流程为:
- 从 Parasoft 变更指导助手角度运行变更影响分析。
- 创建一个变更模板。
逐个应用变更模板(以解决变更影响分析报告的特定变更影响)或批量重构(以快速更新项目,套件等中所有受影响的工具),来更新现有套件或创建一个新的变更模板。
SOAtest 可以立即发现意外的服务变更:
- 更新首选的测试执行测试配置,以在执行测试时执行变更影响分析。
- 如果报告了变更影响:
- 创建一个变更模板。
- 逐个应用该变更模板(以解决变更影响分析报告的特定变更影响)或批量重构(以快速更新项目,套件等中所有受影响的工具),以更新现有测试套件或创建一个新套件。
测试影响分析
运行变更影响分析时,变更指导助手报告相关定义文件(例如 WSDL、架构、WADL、OpenAPI、Swagger、RAML)中的更改如何影响资产的信息。分析也可以:
将资产的消息与当前配置它们的服务定义进行比较。
资产的信息与其他服务定义进行比较。
分析的结果可帮助您评估更新资产信息所需的更改的范围和性质。
重构
确定应更新的内容后,可以应用更改模板来自动重构信息以适合修改后的服务定义。该模板可以以多种方式应用:
- 以 test-by-test or responder-by-responder basis
- 以一组选定的测试或响应体上
- 以适应的测试或者套件中的响应体
- 以所有测试或者套件中的响应体
变更模板定义
从服务目录自动生成变更模板,该服务目录会在变更影响分析期间填充。
一旦创建了变更模板,我们建议您查看并微调自动定义的映射,这些映射说明原始定义中的元素、操作、资源和模式与当前定义中的元素、操作之间的关系。
- 当自动分析确定一个定义中的某个项目与另一个定义中的某个项目相关的可能性很高时,我们会指出这一点并自动设置您准备应用的更改。这被称为“高概率匹配”映射。
- 如果分析发现原始服务与当前服务之间可能存在匹配,我们仍将预先配置该映射,但我们也会显示此匹配需要进行检查。
在图形化的更改模板编辑器中查看和更新自动定义的映射:
生成变更模板后,可以逐案应用(解决变更影响分析报告的特定变更影响)以及批量重构(以快速更新项目、套件等所有受影响的工具)
它涵盖哪些变化?
可以将变更指导助手应用于 SOAtest 中的消息传递工具(SOAP 客户端、 REST 客户端、 EDI 客户端、固定长度客户端、消息桩函数)。它也可以应用于 Virtualize 中的消息响应程序。如果将工具设置为限制成 WSDL 或 Schema,或者服务定义中指定了 RAML、WADL(SOAtest)或 OpenAPI 、 Swagger,则变更指导助手会对表单输入指定的消息进行操作。如果服务定义指定了 RAML,WADL(SOAtest)或 OpenAPI 、 Swagger,则它将对 JSON 表单指定的消息进行操作。 如果以一种不支持的格式指定工具信息,则会在分析和重构时跳过该信息。用 Parasoft 搜索和替换来更新格式、工具中其他非信息字段中的值或变更指导助手不支持的工具中的值。请参阅
以下各章:
- SOAtest: 使用搜索替换工具更新工具值
- Virtualize: 使用搜索替换工具更新工具值
变更指导助手 UI
变更指导助手透视图专门用于识别和解决变更影响。
打开变更指导助手透视图:
- 选择 Window> Perspective> Open Perspective> Parasoft Change Advisor。
此透视图提供:
- The standard asset explorer: 以便您可以选择要分析或重构的资产(应用下面描述的工具栏按钮)。
Toolbarbuttons: 添加了三个按钮:Run (用于重新运行变更影响分析以检查资产是否已正确重构) Perform Change Impact Analysis (如下所述), and Refactor Using a Change Template (如下所述)。
- The Service Catalog view: 它存储有关每个服务的不同版本的信息,以及定义一个服务版本的结构与另一个服务版本的结构进行比较的变更模板。
- The Properties view: 提供变更模板编辑器中选择的项目的详细信息。
- The Change Impact progress view: 报告变更影响分析的进度和结果。
- The Quality Tasks view: 您可以在此处查看便更影响并使用可用的变更模板重构相关工具。
通过变更影响分析识别变更
关于变更影响分析
变更影响分析比较了最初用于构建工具信息的服务定义
- 相同服务定义(与原始定义文件的 URL 相同)的活动版本。
- 不同的服务定义(与原始定义文件用不同的 URL)。
变更影响分析仅报告与您正在分析的工具相关的变更。例如,如果服务不再包含工具从未使用过的可选元素,则不会报告更改影响。
在 SOAtest 中运行变更影响分析的典型用例是:
- 如果您怀疑服务已更改,请从变更指导助手运行它以识别更改的内容,并查看解决该更改所需的更新的范围和性质。
- 如果您不希望有任何更改,请在正常测试执行的同时运行它。这样,如果测试失败,则可以立即确定该失败是否与服务更改有关。
运行变更影响分析
从变更指导助手运行变更影响分析:
- 在资源管理器中,指示要分析的资产。您可以选择单个工具、套件、项目等。如果同时安装了 SOAtest 和 Virtualize,请选择 .tst files 或者.pva files。
- 在变更指导助手工具栏中,单击 Perform Change Impact Analysis 按钮。
- 完成打开的对话框:
- To analyze vs. existing definition(s): 如果要分析所有选定资产与其相关服务定义的实时版本,请选择第一个按钮,然后单击 Finish。
- To analyze vs. a different definition: 如果要分析选定资产和相关服务定义的其他版本,请选择第二个按钮,指定当前和更新的服务定义的位置,然后单击 Finish。
例如,假设您选择了一个包含基于 3 种不同服务定义的资产的套件。用 Scan the selected assets against their current service description 选项进行分析,将所有这些资产与其相关服务定义的当前版本进行比较。如果选择 Scan the selected assets against a specified service description,并且指定这些资产使用的3个服务定义中的1个的现有和更新版本的位置,则该分析将仅实用于用该指定服务的资产描述。基于其他两个定义的资产将不进行分析。
查看分析结果
在运行分析时,报告分析进度显示在进度视图以及控制台视图中。注意如果资产报告为 "skipped",则表明它没有以受支持的格式(例如,表单输入)指定信息。
分析结果将在质量任务视图中报告。变更影响布局可以帮助您查看变更影响。如果质量视图尚未使用此布局,则可以在结果视图中单击 Change Impact Layout 工具栏按钮来启用它:
您也可以从该视图的下拉菜单中打开此布局。
结果顺序为服务、套件、位置和更改类型:
探索变更影响
要打开其信息需要更新的工具:
- 右击变更影响信息然后选择 View Associated Editor.
要查看工具在项目中的位置,请执行以下操作:
- 右击变更影响信息然后选择 Show Source in Explorer。
使用变更模板进行重构
变更模板按照所述创建Defining a Change Template。应用更改模板有两种方法:
- At the change-impact level: 将其应用于变更影响分析报告的特定变更影响。如果您只是进行了变更影响分析并且想要逐一查看和处理所报告的影响,通常会使用此方法。
- At the project or suite level: 执行批处理在浏览器中选择的套件、工具或项目。如果您想要快速地将更改模板应用到一组资产中,那么通常会使用这种方法。
应用一个变更模板:
- 通过以下方式之一打开重构向导:
- 右键单击结果视图中的影响,然后选择 Refactor Using Change Template.
- 在资源管理器中,选择要更新的资产的节点,然后选择 Refactor Using Change Template。如果同时安装了 SOAtest 和 Virtualize,请选择 .tst files 或者 .pva files。
- 如下所示完成向导的第一页,然后单击 Next。
- Service name: 指定要重构其信息的服务的名称。
- Version: 指定要重构其信息的服务版本。此处显示的版本名称是在服务目录视图中显示的版本名称。
- Update Parasoft assets to use service version: 指定更新的消息将对应的服务版本。此处显示的版本名称是在服务目录视图中显示的版本名称。
- By applying the change template: 指定要应用的更改模板的名称,以便为上述指定的服务版本更新消息。
- Service name: 指定要重构其信息的服务的名称。
在向导的第二页中,指示要将更新的资产保存在何处。默认设置是将更新的资产保存在新位置,以便您创建一组新的测试或响应体,而不是覆盖原始资产。
重构将更新变更模板中定义的消息。禁用删除操作的工具,但不会删除。
定义一个变更模板
创建一个变更模板
更改模板指定如何将元素、操作、资源和模式(XML 或 JSON)从一个服务版本映射到另一个服务版本。定义变更模板后,就可以将其应用于更新受服务变更影响的资产:纠正变更影响分析后报告的特定变更影响,或者对选定的工具,套件或项目执行批量更新。例如,如果在更改模板中将 FundPrepaid 映射到 FundPrepaidRequest,则应用此模板会将所选工具消息中的 FundPrepaid 更新为 FundPrepaidRequest。
从 Parasoft 变更指导助手角度创建、检查和修改变更模板。
创建一个变更模板:
- 如果尚未这样做,请按照Identifying Changes with Change Impact Analysis中所述进行变更影响分析。
- 确保服务目录显示已更改的服务,并包含原始服务定义和当前服务定义的版本信息。
- 要将服务添加到目录,请在服务目录视图中的任意位置上单击鼠标右键,选择 Add Service to Catalog,填写可用字段(这些字段根据所选的工件类型而有所不同),然后单击 Finish。
- 要将版本添加到目录,请右键单击相关服务,选择 Add Version to Catalog, 然后指定必要的版本详细信息。
要重命名服务或版本,请右键单击其服务目录节点,然后选择适当的 Rename 命令。此处指定的名称将在使用变更模板进行重构向导中使用。
- 请进行下列其中一项操作:
- 选择 File> New > Change Template。
- 在服务目录中,选择原始版本和新版本的节点,右键单击所选内容,然后选择合适的 Add Change Template 命令。
- 在服务目录中,右键单击原始版本的 Change Templates,然后选择 Add ChangeTemplate。
- 在打开的向导中:
- 指定有关变更模板的基本信息。
- 注意如果同时安装 SOAtest 和 Virtualize,则将看到一个为客户端或响应体创建更改模板的选项。如果希望此变更模板定义如何在 SOAtest 信息传递客户端工具中更新请求,请选择 Client。如果希望此变更模板定义如何在 Virtualize 信息传递响应体工具中更新请求,请选择 Responder。
- 单击 Next。
- 指定将要创建的更改模板文件的名称和位置。
- 单击 Finish。
- 指定有关变更模板的基本信息。
然后将创建一个更改模板,并在更改模板编辑器中将其打开。
查看和修改更改模板
更改模板会根据 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 的模板图标描述
以下图标用于在变更模板编辑器中标记 XML 项目:
图标 | 说明 |
---|---|
全部 | |
任何类型 | |
属性 | |
选择 | |
复合型 | |
元件 | |
枚举 | |
Operation | |
操作方式 | |
简单类型 |
变更 JSON 的模板图标说明
以下图标用于在变更模板编辑器中标记 JSON 项目:
图标 | 说明 |
---|---|
任何类型 | |
数组 | |
数组项 | |
布尔型 | |
枚举 | |
枚举值 | |
整数、数 | |
物品容器 | |
空值 | |
物体 | |
物体属性 | |
一个 | |
属性集合 | |
字符串 |
Sharing Change Templates
如果您的团队想要共享变更模板,请共享包含该模板的项目,或者将该模板从一个工作空间复制到另一个工作空间。
教程
有关使用变更指导助手的教程,请参见 随着服务的变化更新测试。