许多 SOAtest 用户在使用 Parasoft SOAtest 开发他们的测试套件时创建了数千个测试用例。当被测试的底层系统发生变化时,能够有效地维护这些测试是非常重要的。

本章节描述一些功能和建议,它们帮助在维护和更新大量测试时节省时间。

管理服务定义和模式变更

如果您正在使用服务定义或模式测试 web 服务,我们建议以下最佳实践:

  1. 使用表单输入并将测试约束为 WSDL/WADL/Schema/OpenAPI/Swagger/RAML 定义.。SOAP 客户端和消息传递客户端工具在 WSDL 选项卡(SOAP 客户端)中和 Schema 选项卡(消息传递客户端)中包括“约束”选项。REST 客户端还包括类似用于 WADLs 和 RAML/OpenAPI/Swagger 定义的选项。当选中该选项时,在会话(例如,在夜间测试期间从命令行执行测试时)中执行测试时将发生以下情况。第一,将从给定位置解析定义文件。第二,从表单输入和表单 JSON 视图生成的请求将自动符合最近解析的定义文件。  下面将提供关于此特性的更多细节。
  2. 针对端点 URLs,使用功能环境变量来管理全局变更,或在 SOAP 客户端中选择“WSDL”选项,以便根据 WSDL 自动更新 URL
  3. 使用变更顾问来识别请求更新的测试,然后通过应用变更模板更新可应用的测试
  4. 使用 Parasfot 搜索替换功能来更新工具值 ,如断言工具、差异工具、数据库工具中的 Xpath 值。
  5. 为 WSDL、WADL 和/或与您的测试相关的模式创建回归测试。SOAtest 测试套件向导包括创建除了功能测试外 WSDL/WADL 测试的选项。其中一个 WSDL/WADL 测试是回归测试,它捕获当前版本的 WSDL/WADL 并作为一个变更指示器;无论何时在服务器上修改定义文件,测试都将失败,并因此向您发出更改警告。
  6. 使用回归控制测试套件级别的更新功能

自动化表单输入更新

当选中 constrain 选项时,将会自动更新 SOAP 客户端、消息桩、消息传递客户端中的表单输入视图。同样,也会应用到约束为 WADL、RAML 或 OpenAPI/Swagger 定义的 REST 客户端。此操作通过“刷新”定义文件(通过单击其中一个工具上的 Refresh 按钮)来执行。Parasoft SOAtest 试图保留现有的表单输入设置,以便只需要进行极少的手动更改。Parasoft SOAtest 使用复杂的启发式来映射现有的测试数据。  

例如,在不影响现有元素的情况下,出现新元素并删除已删除的元素。同时,在任何可能的情况下,元素类型的更改都将尝试携带当前值。根据新的定义文件重新映射测试数据不会总是成功的。通常,对于模式文件定义的数据类型的更改,此过程更有可能成功,因为这些更改相对较小。然而,对于文件类型文档定义的操作更改,此过程极少可能成功,因为这些更改相对较大。

使用变更顾问、变更影响分析更新表单输入中指定的消息

有了变更顾问,您可以执行变更影响分析来验证服务定义(如,重命名操作、添加的元素或类型、修改的命名空间等)的变更是如何影响消息传递工具传递的消息的。  

该分析可以进行: 

  • 将创建 test 时访问的原始服务定义与相同服务定义的当前状态进行比较。

  • 将原始服务定义与不同服务定义文件进行比较。

此分析结果有助于评估更新测试所需的变更的范围和性质。一旦变更模板定义了新的服务如何映射到以前定义的服务上(通过您或其他团队成员,如架构师),则您便可应用该变更模板以自动更新测试,单个测试或者批量测试。 

有关更多详情,请查阅 使用变更顾问更新报文

自动更新差异工具回归控制

使用 XML 差异工具是对服务响应应用验证流行且有效的一种流行且有效的方式。它提供了捕获整个响应消息以对其进行完整性验证的便利,它允许通过右键单击选择 Update/Create Regression Controls,然后跟随向导在测试或测试套件级别上执行各种批量的更新机制。如果希望更有选择性地管理回归控制更新,则打开用于测试套件的编辑器,进入“执行选项”选项卡下的回归选项部分。在那儿,您可以选择在测试套件级别上更新回归控制时应该更新哪些测试。

使用搜索替换工具更新其他工具值

Parasoft 搜索替换功能帮助您识别和更新需要随着服务和环境的发展而更改的值。例如,如果元素或命名空间更改,您可以使用搜索和代替来更新断言工具、差异工具、数据库工具等等中受影响的 Xpath 值。

有关更多详情,请查阅 使用搜索替换工具更新工具值

更新测试的工作流

有了上述功能,测试人员将遵循以下步骤:

  1. 注意 WSDL/WADL/Schema 回归测试失败。
    • 如果差异表明请求消息结构中发生了变更,则可能需要进行测试更新。
    • 如果差异表明端点或消息/操作中的更改没有经过测试套件的测试,则更新回归控制并确保测试成功。
  2. 检查某些响应错误。
    • 他们所表明服务器拒绝的请求消息是因为与与其内容不匹配吗?如若如此,运行变更影响分析。
    • 否则,失败可能与服务期望的数据更改或引入服务的实际回归/漏洞有关。
  3. 根据需求更新受影响的工具。您可以:
    • 为简单更改启用自动表单输入更新。
    • 应用变更模板来覆盖更多复杂的改变(例如,处理重命名操作、添加的元素或类型、修改的命名空间等)。
    • 使用搜索替换功能更新其他工具值。
    • 根据需求自动更新差异工具中的回归控制。

管理变更的其他建议和实践

  • 在高波动性周期中测试服务时,使用 XML 断言器或 JSON 断言器代替差异回归控制。这允许您在与测试用例相关的消息的指定部分上配置验证,从而在服务器发展时最小化更新工作。
  • 可在测试套件级别定义和管理 SOAP 头文件。单击工具栏的“添加属性...”按钮并选择 Global Property> SOAP Headers 选项。注意,可以在该对话框中配置各种其他工件和配置,并在测试套件级别对其进行重复使用,以便减少重复,更好地管理更新活动。
  • 对测试资产执行大规模更新相对简单,而这些测试资产不包括在变更顾问和 Parasoft 搜索替换等功能中,但如果需要执行大量测试,高级用户可能会考虑直接执行 tst 文件内容上的所 Find/Replace All 操作。SOAtest 的 tst 文件以 XML 格式保存,可以在文本编辑器中打开 soa .tst 文件来执行此更新。要成功地做到这一点,最好的方法是搜索文件中的当前值(如此您便可在文件中定位到它),然后在编辑器中设计一个替换指令,执行所需的更改。请确保在直接编辑前已备份文件。
  • 遵循 测试创建最佳实践
  • No labels