本主题介绍如何在 SOAtest 和 Virtualize 中使用 Parasoft 变更指导助手。此外,还介绍了如何更新您的测试或服务虚拟化资产发送的请求或响应消息。
章节目录:
关于变更指导助手
变更指导助手自动识别现有测试和/或服务虚拟化资产发送的消息如何受到服务变更的影响(如重命名操作、添加元素或类型、修改命名空间等等)。它还基于一个更新现有测试或响应器套件或新建的变更模板自动重构受影响的工具(单独或是批量处理)。通过检查和精炼自动定义的映射创建变更模板,该映射阐述了原始定义中的元素和模式如何与当前定义中的元素/操作/资源和 schema 关联。这确保您的资产尽可能获得快速、准确和智能的更新。
工作流
如果怀疑某个服务发生了变化,常规的工作流程为:
- 从 Parasoft 变更指导助手透视图执行变更影响分析。
- 创建变更模板。
应用该变更模板——针对每种情况应用(解决变更影响分析报告的特定变更影响)或批量重构(快速更新项目、套件等涉及的所有受影响的工具)——来更新您的现有套件或创建新的套件。
SOAtest 可以在服务发生意外变化时立即进行捕获:
- 更新您的首选测试执行测试配置,以便在执行测试时进行变更影响分析。
- 如果报告了变更影响:
- 创建变更模板。
- 应用该变更模板——针对每种情况应用(解决变更影响分析报告的特定变更影响)或批量重构(快速更新项目、套件等涉及的所有受影响的工具)——来更新您的现有测试套件或创建新的测试套件。
变更影响分析
执行变更影响分析时,变更指导助手会报告资产消息如何受到相关定义文件(如 OpenAPI/Swagger、RAML、WADL、WSDL、Schema)变更的影响。分析的作用:
将资产消息与当前配置这些资产消息的服务定义进行比较。
将资产消息与不同的服务定义进行比较。
此分析结果有助于评估更新资产消息所需的变更的范围和性质。
重构
明确需要更新的内容后,就可以应用变更模板来自动重构消息,以适应修改后的服务定义。该模板有多种应用方式:
- 针对测试或响应器逐个应用
- 应用于一组选定的测试或响应器
- 应用于套件中所有适用的测试或响应器
变更模板定义
变更模板可从服务目录中自动生成,并在变更影响分析过程中填充。
创建变更模板后,我们建议您查看并调整自动定义的映射,这些映射解释了原始定义中的元素/操作/资源和 schema 与当前定义中的元素/操作/资源和 schema 之间的关联。
- 当自动分析发现某个定义中的项目很可能与另一个定义中的项目关联时,我们便会做出提示并自动设置相应变更,以便您在需要时可以应用。这类映射被视为“高概率匹配”。
- 如果分析发现原始服务和当前服务之间可能存在匹配,我们仍会预先配置该映射,但同时也会将其突出显示为需要审查的匹配项。
可在变更模板图形编辑器中审查和更新自动定义的映射:
生成变更模板后,可根据每种情况进行应用(解决变更影响分析报告的具体变更影响),也可批量重构(快速更新项目、套件等涉及的所有受影响的工具)。
具体涵盖哪些变更?
变更指导助手可应用于 SOAtest 中的消息工具(SOAP 客户端、REST 客户端、EDI 客户端、定长客户端、消息桩)。也可应用于 Virtualize 中的消息响应器。如果工具设置为受 WSDL 或 Schema 约束,或是服务定义指定了 OpenAPI/Swagger、RAML 或 WADL(SOAtest),则变更指导助手会对通过表单输入指定的消息执行操作。如果服务定义指定了 OpenAPI/Swagger、RAML 或 WADL,它就会对通过表单 JSON 指定的消息执行操作。 如果一个工具的消息在指定时使用了不支持的格式,那么在分析和重构过程中将跳过该消息。如需更新使用这类格式的值,这些工具中其他非消息字段中的值,或变更指导助手不支持的工具中的值,请使用 Parasoft 搜索和替换功能。请参阅使用搜索替换工具更新工具值。
针对定义文件的简单变更(元素重新排序、类型变更等)会自动更新。
变更指导助手用户界面
变更指导助手透视图专为识别和应对变更影响设计。
要打开变更指导助手透视图,请前往窗口 > 透视图 > 打开透视图 > Parasoft 变更指导助手。
该透视图提供:
- 标准资产浏览器:您可以选择需要分析或重构的资产(通过应用以下所述的工具栏按钮)。
工具栏按钮:添加了三个按钮:运行(用于重新运行变更影响分析,以检查资产是否已正确重构),执行变更影响分析(如下所述)以及使用变更模板重构(如下所述)。
- 服务目录视图:存储着每个服务不同版本的信息,以及定义了某个服务版本与另一个服务版本结构对比信息的变更模板。
- 属性视图: 提供在变更模板编辑器中所选项目的详细信息。
- 变更影响进程视图:报告变更影响分析的进程和结果。
- 质量任务视图:查看变更影响,并使用任何可用变更模板重构相关工具。
使用变更影响分析确定变更
关于变更影响分析
变更影响分析对比最初用于构建工具消息的服务定义和
- 相同服务定义(与原始定义文件的 URL 相同)的实时版本。
- 不同服务定义(与原始定义文件的 URL 不同)。
变更影响分析只会报告与您正在分析的工具相关的变更。例如,如果服务不再包含您的工具从未使用过的可选元素,则“不会”报告变更影响。
在 SOAtest 中执行变更影响分析的典型用例:
- 如果怀疑服务发生了变化,请从变更指导助手中运行变更影响分析,确定发生了哪些变化,并查看为处理相应变更所需进行的更新的范围和性质。
- 如果预计没有任何变化,则可以在执行常规测试的同时运行。这样,如果测试失败,您立刻就能确定失败是否与服务中的变更有关。
通过变更指导助手运行变更影响分析
若要通过变更指导助手运行变更影响分析:
- 在浏览器中,指定您想要分析的资产。您可以选择单个工具、套件、项目等。如果同时安装了 SOAtest 和 Virtualize,请选择 .tst 文件或 .pva 文件。
- 在变更指导助手工具栏中,点击执行变更影响分析。
- 完成弹出对话框中的设置:
- 与现有的定义进行对比分析:如需分析所有选定资产与其相关服务定义的实时版本,请启用第一个选项,然后点击完成。
- 与不同的定义进行对比分析:如果要分析选定资产与相关服务定义的不同版本,请启用第二个选项,指定当前与更新的服务定义的位置,然后点击完成。
例如,假设您选择了一个套件,其中包括基于三个不同服务定义的资产。根据当前的服务描述扫描所选资产选项的分析将比较所有这些资产与其相关服务定义的当前版本。如果您选择根据指定的服务描述扫描所选资产,并为这些资产使用的三个服务定义中一个服务定义的现有版本和更新版本的指定位置,则分析将仅应用于使用该指定服务描述的资产。基于其他两个定义的资产将不会被分析。
在常规测试执行期间运行变更影响分析
在常规测试执行期间运行变更影响分析有助于确定何时需要更新测试,以反映服务变更情况。在常规测试执行过程中运行变更影响分析(与资产的现有服务定义的当前版本对比):
- 配置您的首选执行测试配置,执行变更影响分析。可在执行> 变更影响选项卡中启用/禁用变更影响分析。
- 通过用户界面或命令行界面,使用相应的测试配置执行测试。
查看分析结果
运行分析后,进程视图和控制台视图中会报告分析进程。请注意,如果某个资产被报告为“跳过”,这表示该资产没有按支持的格式(例如表单输入)指定的消息。
质量任务视图会报告分析结果。您可以使用该视图提供的修改影响布局查看变更影响。如果质量任务视图尚未使用此布局,您可以点击结果视图工具栏中的变更影响布局来启用布局:
您还可以从该视图的下拉菜单中打开此布局。
分析结果将按服务、套件/位置和变更类型列出:
除质量任务视图外,分析结果还将在相关的 HTML 报告中报告。但请注意,测试结果上传到 DTP 时不会显示变更影响分析结果。
浏览变更影响
要打开需要更新消息的工具,请右键点击变更影响消息,选择查看查看相关编辑器。
要查看工具在项目中的位置,请右键点击变更影响消息,选择在浏览器中显示源。
使用变更模板进行重构
变更模板的创建方法如Defining a Change Template中所述。应用变更模板有两种方法:
- 应用于变更影响:将其应用于变更影响分析所报告的具体变更影响。当您刚刚执行了变更影响分析并打算逐一查看和处理报告的影响时,通常会用到这种方法。
- 应用于项目或套件:针对浏览器中所选套件、工具或项目执行批处理。如果需要将变更模板快速应用于一组资产,通常会使用这种方法。
应用变更模板:
- 通过以下方式之一打开重构向导:
- 右键点击结果视图中的影响,然后选择使用变更模板重构。
- 在浏览器中,选择要更新的资产节点,然后选择使用变更模板重构。如果同时安装了 SOAtest 和 Virtualize,请选择 .tst 文件或 .pva 文件。
- 如下所示完成向导第一页的设置,然后点击下一步。
- 服务名称:指定需要重构消息的服务名称。
- 版本:指定需要重构消息的服务版本。此处显示的版本名称即服务目录视图中显示的版本名称。
- 更新 Parasoft 资产使用服务版本:指定更新消息所对应的服务版本。此处显示的版本名称即服务目录视图中显示的版本名称。
- 通过应用变更模板:指定想要应用的变更模板的名称,为上面指定的服务版本更新消息。
- 服务名称:指定需要重构消息的服务名称。
在向导的第二页,指定保存更新资产的位置。默认情况下是将更新的资产保存在一个新的位置,这样您就可以创建一组新的测试或响应器,而不是覆盖原始资产。
重构操作将根据变更模板中的定义更新消息。用于已删除操作的工具将被禁用,但不会被删除。
定义变更模板
创建变更模板
变更模板规定了如何将一个服务版本中的元素/操作/资源和 Schema(XML 或 JSON)映射到另一个版本中的元素/操作/资源和 Schema。定义了变更模板后,就可将其用于更新受服务变更影响的资产:既可用于补救变更影响分析报告的特定变更影响,也可用于对所选工具、套件或项目执行批量更新。例如,如果在变更模板中将 FundPrepaid 映射到 FundPrepaidRequest,那么应用该模板将会在所选工具的消息中将 FundPrepaid 更新为 FundPrepaidRequest。
变更模板通过 Parasoft 变更指导助手透视图创建、查看和修改。
创建变更模板:
- 如果您还没有执行变更影响分析,请按照Identifying Changes with Change Impact Analysis中的说明执行。
- 确保服务目录显示已变更的服务,并包含原始服务定义和当前服务定义的“版本”。
- 如需将服务添加到目录中,右键点击服务目录视图中任意位置,选择添加服务到目录中,完成可填写的字段(根据所选工件类型而有所不同),然后点击完成。
- 如需将版本添加到目录中,右键点击相关服务,选择添加版本到目录中,然后指定必要的版本详细信息。
如需重命名服务或版本,请右键点击其服务目录节点,然后选择相应的重命名命令。此处指定的名称将在使用变更模板重构向导中使用。
- 请执行以下任一操作:
- 前往文件> 新建 > 变更模板。
- 在服务目录中,选择原始版本和新版本的节点,右键点击该选项,然后选择相应的添加变更模板命令。
- 在服务目录中,右键点击原始版本的变更模板节点,然后选择添加变更模板。
- 在打开的向导中:
- 指定变更模板的基本信息。
- 请注意,如果同时拥有 SOAtest 和 Virtualize,您将看到一个为客户端或响应器创建变更模板的选项。如果希望此变更模板定义如何在 SOAtest 消息传送客户端工具中更新请求,请选择客户端。如果希望此变更模板定义如何更新 Virtualize 消息响应器工具中的响应,请选择响应器。
- 点击下一步。
- 指定将要创建的变更模板文件的名称和位置。
- 点击完成。
- 指定变更模板的基本信息。
变更模板创建成功,并在变更模板编辑器中打开。
查看和修改变更模板
变更模板会根据 Parasoft 的启发式算法,自动将原始服务定义中的元素/操作/资源及其 Schema 映射到新的定义中:
- 如果原始版本和新版本中的项目完全或高概率匹配,相关项目将被映射并标记为绿色。
- 如果原始版本和新版本中的项目近似(但不确定)匹配,相关项目将被映射并标记为黄色。在最终确定和应用变更模板前,应审查这些项目。
- 如果在原始版本中没有检测到近似匹配的项目,则不会对其进行映射。
元素/操作/资源映射在映射元素/操作/资源选项卡中。
每个元素的 Schema 都映射在 映射 Schema 选项卡中。
在查看映射时,您可以使用编辑器顶部的过滤器,重点查看高概率匹配、需要审核的匹配或未匹配的项目。
在查看和修改变更模板时,您可以执行以下操作:
目的... | 操作... |
---|---|
指定两个未映射项为关联项。 | 选中两个项目,然后点击连接。 |
指定两个映射项为非关联项。 | 选中两个项目,然后点击断开连接。 |
为不匹配的项目指定默认值。 | 右键点击项目,选择为已添加元素 [item_name] 配置默认值,然后在打开的对话框中指定合适的值。 |
标明“需要审核的匹配”已被审查(将黄色的映射变为绿色)。 | 右键点击映射的任何区域,然后选择标记匹配 [mapping] 为已审查或标记匹配 [mapping] 和 和子匹配为已审查。 |
标明已审查未匹配项。 | 右键点击元素,然后选择标记 [item_name] 为已审查或标记 [item_name] 和子项为已审查。 |
映射时检查属性
在映射元素/操作/资源和 Schema 时,可以参考属性视图,了解映射项目的详细信息。例如:
XML 变更模板图标说明
以下图标用于标记变更模板编辑器中的 XML 项目:
图标 | 说明 |
---|---|
所有 | |
任何类型 | |
属性 | |
选择 | |
复杂类型 | |
元素 | |
枚举 | |
Operation | |
序列 | |
简单类型 |
JSON 变更模板图标说明
以下图标用于标记变更模板编辑器中的 JSON 项目:
图标 | 说明 |
---|---|
任何类型 | |
数组 | |
数组项 | |
Boolean | |
枚举 | |
枚举值 | |
整数/数字 | |
项目容器 | |
空 | |
对象 | |
对象属性 | |
OneOf | |
属性容器 | |
字符串 |
共享变更模板
如果您的团队想要共享变更模板,可以共享包含相应模板的项目,或是将模板从一个工作空间复制到另一个工作空间中。
教程
关于使用变更指导助手的教程,请参阅随着服务的变化更新测试。